Update from chromium https://crrev.com/301725/

This updates DEPS to reflect changes in 301725 /
90a7c4e3fdeb82a18e17f24e56345b9086a8308b, imports changes, and adds
a patch file for our ui/gl/gl_surface modifications.

Review URL: https://codereview.chromium.org/669813003
diff --git a/build/all.gyp b/build/all.gyp
index f421983..c58abf6 100644
--- a/build/all.gyp
+++ b/build/all.gyp
@@ -64,8 +64,6 @@
         ['OS=="android"', {
           'dependencies': [
             '../content/content_shell_and_tests.gyp:content_shell_apk',
-            '../mojo/mojo.gyp:mojo_shell_apk',
-            '../mojo/mojo_base.gyp:mojo_test_apk',
             '<@(android_app_targets)',
             'android_builder_tests',
             '../android_webview/android_webview.gyp:android_webview_apk',
@@ -355,6 +353,7 @@
         }],
         ['OS=="win"', {
           'dependencies': [
+            '../chrome/chrome.gyp:app_installer',
             '../chrome/chrome.gyp:crash_service',
             '../chrome/chrome.gyp:installer_util_unittests',
             # ../chrome/test/mini_installer requires mini_installer.
@@ -1180,6 +1179,9 @@
               'type': 'none',
               'dependencies': [
                 '../base/base.gyp:base_unittests',
+                # TODO(jackhou): Ensure that app_installer builds on trybots
+                # and waterfall, then de-comment here.
+                #'../chrome/chrome.gyp:app_installer',
                 '../chrome/chrome.gyp:browser_tests',
                 '../chrome/chrome.gyp:sync_integration_tests',
                 '../chrome/chrome.gyp:crash_service',
diff --git a/build/android/buildbot/bb_device_steps.py b/build/android/buildbot/bb_device_steps.py
index 6a7c90b..d113842 100755
--- a/build/android/buildbot/bb_device_steps.py
+++ b/build/android/buildbot/bb_device_steps.py
@@ -73,9 +73,14 @@
       'org.chromium.android_webview.shell',
       'AndroidWebViewTest',
       'webview:android_webview/test/data/device_files'),
+    I('ChromeSyncShell',
+      'ChromeSyncShell.apk',
+      'org.chromium.chrome.browser.sync',
+      'ChromeSyncShellTest',
+      None),
     ])
 
-VALID_TESTS = set(['chromedriver', 'chrome_proxy', 'gpu', 'sync',
+VALID_TESTS = set(['chromedriver', 'chrome_proxy', 'gpu',
                    'telemetry_perf_unittests', 'ui', 'unit', 'webkit',
                    'webkit_layout', 'python_unittests'])
 
@@ -184,14 +189,6 @@
   bb_annotations.PrintNamedStep('chrome_proxy')
   RunCmd(['tools/chrome_proxy/run_tests'] + args)
 
-def RunChromeSyncShellTests(options):
-  """Run the chrome sync shell tests"""
-  test = I('ChromeSyncShell',
-           'ChromeSyncShell.apk',
-           'org.chromium.chrome.browser.sync',
-           'ChromeSyncShellTest',
-           'chrome:chrome/test/data/android/device_files')
-  RunInstrumentationSuite(options, test)
 
 def RunTelemetryPerfUnitTests(options):
   """Runs the telemetry perf unit tests.
@@ -532,7 +529,6 @@
       ('chrome_proxy', RunChromeProxyTests),
       ('gpu', RunGPUTests),
       ('python_unittests', RunPythonUnitTests),
-      ('sync', RunChromeSyncShellTests),
       ('telemetry_perf_unittests', RunTelemetryPerfUnitTests),
       ('ui', RunInstrumentationTests),
       ('unit', RunUnitTests),
diff --git a/build/android/buildbot/bb_run_bot.py b/build/android/buildbot/bb_run_bot.py
index 28ccfba..38678d1 100755
--- a/build/android/buildbot/bb_run_bot.py
+++ b/build/android/buildbot/bb_run_bot.py
@@ -116,7 +116,6 @@
 def GetBotStepMap():
   compile_step = ['compile']
   chrome_proxy_tests = ['chrome_proxy']
-  chrome_sync_shell_tests = ['sync']
   python_unittests = ['python_unittests']
   std_host_tests = ['check_webview_licenses', 'findbugs']
   emma_coverage_tests = [x for x in std_host_tests if x is not 'findbugs']
@@ -168,7 +167,7 @@
         H(compile_step + std_host_tests, target_arch='ia32')),
       B('fyi-builder-rel', H(std_build_steps,  experimental)),
       B('fyi-tests', H(std_test_steps),
-        T(std_tests + chrome_sync_shell_tests + python_unittests,
+        T(std_tests + python_unittests,
                       ['--experimental', flakiness_server,
                       '--coverage-bucket', CHROMIUM_COVERAGE_BUCKET,
                       '--cleanup'])),
diff --git a/build/android/pylib/gtest/filter/content_unittests_disabled b/build/android/pylib/gtest/filter/content_unittests_disabled
index 4427849..925a7d1 100644
--- a/build/android/pylib/gtest/filter/content_unittests_disabled
+++ b/build/android/pylib/gtest/filter/content_unittests_disabled
@@ -1,8 +1,5 @@
 # List of suppressions
 
-# crbug.com/104950
-DeviceOrientationProviderTest.ObserverNotRemoved
-DeviceOrientationProviderTest.StartFailing
 # crbug.com/139095
 RenderWidgetTest.OnMsgPaintAtSize
 # crbug.com/147549
diff --git a/build/android/pylib/gtest/setup.py b/build/android/pylib/gtest/setup.py
index c3af91f..5581fbc 100644
--- a/build/android/pylib/gtest/setup.py
+++ b/build/android/pylib/gtest/setup.py
@@ -122,6 +122,7 @@
       '--config-variable', 'fastbuild', '0',
       '--config-variable', 'icu_use_data_file_flag', '1',
       '--config-variable', 'libpeer_target_type', 'static_library',
+      '--config-variable', 'v8_use_external_startup_data', '0',
       '--config-variable', 'lsan', '0',
       # TODO(maruel): This may not be always true.
       '--config-variable', 'target_arch', 'arm',
diff --git a/build/build_config.h b/build/build_config.h
index 5534846..b07660d 100644
--- a/build/build_config.h
+++ b/build/build_config.h
@@ -4,7 +4,8 @@
 
 // This file adds defines about the platform we're currently building on.
 //  Operating System:
-//    OS_WIN / OS_MACOSX / OS_LINUX / OS_POSIX (MACOSX or LINUX) / OS_NACL
+//    OS_WIN / OS_MACOSX / OS_LINUX / OS_POSIX (MACOSX or LINUX) /
+//    OS_NACL (NACL_SFI or NACL_NONSFI) / OS_NACL_SFI / OS_NACL_NONSFI
 //  Compiler:
 //    COMPILER_MSVC / COMPILER_GCC
 //  Processor:
@@ -18,6 +19,14 @@
 #if defined(__native_client__)
 // __native_client__ must be first, so that other OS_ defines are not set.
 #define OS_NACL 1
+// OS_NACL comes in two sandboxing technology flavors, SFI or Non-SFI.
+// PNaCl toolchain defines __native_client_nonsfi__ macro in Non-SFI build
+// mode, while it does not in SFI build mode.
+#if defined(__native_client_nonsfi__)
+#define OS_NACL_NONSFI
+#else
+#define OS_NACL_SFI
+#endif
 #elif defined(ANDROID)
 #define OS_ANDROID 1
 #elif defined(__APPLE__)
diff --git a/build/common.gypi b/build/common.gypi
index 708e12c..b32ca54 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -346,6 +346,10 @@
       # by the GYP command line or by ~/.gyp/include.gypi.
       'component%': 'static_library',
 
+      # /analyze is off by default on Windows because it is very slow and noisy.
+      # Enable with GYP_DEFINES=win_analyze=1
+      'win_analyze%': 0,
+
       # Set to select the Title Case versions of strings in GRD files.
       'use_titlecase_in_grd%': 0,
 
@@ -1004,6 +1008,14 @@
         }, {
           'optimize_jni_generation%': 0,
         }],
+
+        # TODO(baixo): Enable v8_use_external_startup_data
+        # http://crbug.com/421063
+        ['android_webview_build==0 and android_webview_telemetry_build==0 and chromecast==0', {
+          'v8_use_external_startup_data': 0,
+        }, {
+          'v8_use_external_startup_data': 0,
+        }],
       ],
 
       # Set this to 1 to enable use of concatenated impulse responses
@@ -1108,6 +1120,7 @@
     'chroot_cmd%': '<(chroot_cmd)',
     'system_libdir%': '<(system_libdir)',
     'component%': '<(component)',
+    'win_analyze%': '<(win_analyze)',
     'enable_resource_whitelist_generation%': '<(enable_resource_whitelist_generation)',
     'use_titlecase_in_grd%': '<(use_titlecase_in_grd)',
     'use_third_party_translations%': '<(use_third_party_translations)',
@@ -1205,6 +1218,7 @@
     'video_hole%': '<(video_hole)',
     'enable_load_completion_hacks%': '<(enable_load_completion_hacks)',
     'support_pre_M6_history_database%': '<(support_pre_M6_history_database)',
+    'v8_use_external_startup_data': '<(v8_use_external_startup_data)',
 
     # Whether or not we are building the Athena shell.
     'use_athena%': '0',
@@ -1354,9 +1368,6 @@
     # Enable new NPDevice API.
     'enable_new_npdevice_api%': 0,
 
-    # Enable EGLImage support in OpenMAX
-    'enable_eglimage%': 1,
-
     # .gyp files or targets should set chromium_code to 1 if they build
     # Chromium-specific code, as opposed to external code.  This variable is
     # used to control such things as the set of warnings to enable, and
@@ -1460,9 +1471,6 @@
     # Compile d8 for the host toolset.
     'v8_toolset_for_d8': 'host',
 
-    # Use the chromium skia by default.
-    'use_system_skia%': '0',
-
     # Use brlapi from brltty for braille display support.
     'use_brlapi%': 0,
 
@@ -2753,11 +2761,6 @@
           }],
         ],
       }],
-      ['enable_eglimage==1', {
-        'defines': [
-          'ENABLE_EGLIMAGE=1',
-        ],
-      }],
       ['asan==1', {
         'defines': [
           'ADDRESS_SANITIZER',
@@ -2804,8 +2807,42 @@
                 'DebugInformationFormat': '1',
               }
             }
-          }],
-        ],  # win_z7!=0
+          }],  # win_z7!=0
+          ['win_analyze', {
+            'defines!': [
+              # This is prohibited when running /analyze.
+              '_USING_V110_SDK71_',
+            ],
+            'msvs_settings': {
+              'VCCLCompilerTool': {
+                # Set WarnAsError to false to disable this setting for most
+                # projects so that compilation continues.
+                'WarnAsError': 'false',
+                # When win_analyze is specified add the /analyze switch.
+                # Also add /WX- to force-disable WarnAsError for projects that
+                # override WarnAsError.
+                # Also, disable various noisy warnings that have low value.
+                'AdditionalOptions': [
+                  '/analyze',
+                  '/WX-',
+                  '/wd6011',  # Dereferencing NULL pointer
+                  '/wd6312',  # Possible infinite loop: use of the constant
+                    # EXCEPTION_CONTINUE_EXECUTION in the exception-filter
+                  '/wd6326',  # Potential comparison of constant with constant
+                  '/wd28159', # Consider using 'GetTickCount64'
+                  '/wd28204', # Inconsistent SAL annotations
+                  '/wd28251', # Inconsistent SAL annotations
+                  '/wd28252', # Inconsistent SAL annotations
+                  '/wd28253', # Inconsistent SAL annotations
+                  '/wd28196', # The precondition is not satisfied
+                  '/wd28301', # Inconsistent SAL annotations
+                  '/wd6340',  # Sign mismatch in function parameter
+                  '/wd28182', # Dereferencing NULL pointer
+                ],
+              },
+            },
+          }],  # win_analyze
+        ],
       }],  # OS==win
       ['chromecast==1', {
         'defines': [
@@ -2933,6 +2970,9 @@
       ['enable_load_completion_hacks==1', {
         'defines': ['ENABLE_LOAD_COMPLETION_HACKS=1'],
       }],
+      ['v8_use_external_startup_data==1', {
+       'defines': ['V8_USE_EXTERNAL_STARTUP_DATA'],
+      }],
     ],  # conditions for 'target_defaults'
     'target_conditions': [
       ['<(use_openssl)==1', {
diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn
index 64abdf3..d4629ea 100644
--- a/build/config/BUILD.gn
+++ b/build/config/BUILD.gn
@@ -31,7 +31,6 @@
   # TODO(brettw) most of these need to be parameterized.
   defines = [
       "CHROMIUM_BUILD",
-      "ENABLE_EGLIMAGE=1",
       "V8_DEPRECATION_WARNINGS",  # Don't use deprecated V8 APIs anywhere.
   ]
 
diff --git a/build/go/rules.gni b/build/go/rules.gni
index 79453d1..ab703d6 100644
--- a/build/go/rules.gni
+++ b/build/go/rules.gni
@@ -53,8 +53,9 @@
       rebase_path("//", root_build_dir),
       "-I" + rebase_path("//"),
       " -L" + rebase_path(target_out_dir) +
+      " -L" + rebase_path(root_build_dir + "/obj/third_party/libevent") +
       " -l" + static_library_name +
-      " -lstdc++ -lpthread -lm -lglib-2.0",
+      " -lstdc++ -lpthread -lm -lglib-2.0 -levent",
       "test", "-c",
     ] + rebase_path(invoker.sources, build_dir)
   }
diff --git a/build/install-build-deps.sh b/build/install-build-deps.sh
index a0f11db..36dd9c4 100755
--- a/build/install-build-deps.sh
+++ b/build/install-build-deps.sh
@@ -105,7 +105,7 @@
           libpulse-dev libsctp-dev libspeechd-dev libsqlite3-dev libssl-dev
           libudev-dev libwww-perl libxslt1-dev libxss-dev libxt-dev libxtst-dev
           mesa-common-dev openbox patch perl php5-cgi pkg-config python
-          python-cherrypy3 python-crypto python-dev python-openssl
+          python-cherrypy3 python-crypto python-dev python-opencv python-openssl
           python-psutil rpm ruby subversion ttf-dejavu-core ttf-indic-fonts
           ttf-kochi-gothic ttf-kochi-mincho wdiff xfonts-mathml zip
           $chromeos_dev_list"
diff --git a/build/isolate.gypi b/build/isolate.gypi
index 17bf3c7..467bdaa 100644
--- a/build/isolate.gypi
+++ b/build/isolate.gypi
@@ -85,6 +85,7 @@
         '--config-variable',
           'internal_gles2_conform_tests=<(internal_gles2_conform_tests)',
         '--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)',
+        '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)',
         '--config-variable', 'lsan=<(lsan)',
         '--config-variable', 'libpeer_target_type=<(libpeer_target_type)',
         '--config-variable', 'use_openssl=<(use_openssl)',
diff --git a/build/slave/OWNERS b/build/slave/OWNERS
index c367f57..f562c92 100644
--- a/build/slave/OWNERS
+++ b/build/slave/OWNERS
@@ -1,15 +1,11 @@
 set noparent
 agable@chromium.org
 agable@google.com
-bevc@chromium.org
-bevc@google.com
 cmp@chromium.org
 cmp@google.com
 dpranke@chromium.org
 iannucci@chromium.org
 iannucci@google.com
-ilevy@chromium.org
-ilevy@google.com
 johnw@chromium.org
 johnw@google.com
 maruel@chromium.org
@@ -18,7 +14,7 @@
 mmoss@google.com
 pschmidt@chromium.org
 pschmidt@google.com
+stip@chromium.org
+stip@google.com
 szager@chromium.org
 szager@google.com
-xusydoc@chromium.org
-xusydoc@google.com