Merge from Chromium at DEPS revision 225410

This commit was generated by merge_to_master.py.

Change-Id: Ifa1539ca216abb163295ee7a77f81bb67f52e178
diff --git a/build/android/buildbot/OWNERS b/build/android/buildbot/OWNERS
index 45995ad..ab6eed4 100644
--- a/build/android/buildbot/OWNERS
+++ b/build/android/buildbot/OWNERS
@@ -3,3 +3,4 @@
 cmp@chromium.org
 ilevy@chromium.org
 yfriedman@chromium.org
+navabi@chromium.org
diff --git a/build/android/buildbot/bb_device_steps.py b/build/android/buildbot/bb_device_steps.py
index 4c99591..64f9e09 100755
--- a/build/android/buildbot/bb_device_steps.py
+++ b/build/android/buildbot/bb_device_steps.py
@@ -76,6 +76,21 @@
 RunCmd = bb_utils.RunCmd
 
 
+def _GetRevision(options):
+  """Get the SVN revision number.
+
+  Args:
+    options: options object.
+
+  Returns:
+    The revision number.
+  """
+  revision = options.build_properties.get('got_revision')
+  if not revision:
+    revision = options.build_properties.get('revision', 'testing')
+  return revision
+
+
 # multiprocessing map_async requires a top-level function for pickle library.
 def RebootDeviceSafe(device):
   """Reboot a device, wait for it to start, and squelch timeout exceptions."""
@@ -126,14 +141,16 @@
       cmd.append('--num_retries=1')
     RunCmd(cmd)
 
-def RunChromeDriverTests(_):
+def RunChromeDriverTests(options):
   """Run all the steps for running chromedriver tests."""
   bb_annotations.PrintNamedStep('chromedriver_annotation')
   RunCmd(['chrome/test/chromedriver/run_buildbot_steps.py',
           '--android-packages=%s,%s,%s' %
            (constants.PACKAGE_INFO['chromium_test_shell'].package,
             constants.PACKAGE_INFO['chrome_stable'].package,
-            constants.PACKAGE_INFO['chrome_beta'].package)])
+            constants.PACKAGE_INFO['chrome_beta'].package),
+          '--revision=%s' % _GetRevision(options),
+          '--update-log'])
 
 def InstallApk(options, test, print_step=False):
   """Install an apk to all phones.
@@ -145,13 +162,6 @@
   """
   if print_step:
     bb_annotations.PrintNamedStep('install_%s' % test.name.lower())
-  # TODO(gkanwar): Quick hack to make sure AndroidWebViewTest.apk is replaced
-  # before AndroidWebView.apk is. This can be removed once the bots cycle.
-  args = ['--apk', '%s.apk' % test.test_apk]
-  if options.target == 'Release':
-    args.append('--release')
-
-  RunCmd(['build/android/adb_install_apk.py'] + args, halt_on_failure=True)
 
   args = ['--apk', test.apk, '--apk_package', test.apk_package]
   if options.target == 'Release':
@@ -362,9 +372,7 @@
     link_rel_path: Link path relative to |dir_to_upload|.
     gs_url: Google storage URL.
   """
-  revision = options.build_properties.get('got_revision')
-  if not revision:
-    revision = options.build_properties.get('revision', 'testing')
+  revision = _GetRevision(options)
   bot_id = options.build_properties.get('buildername', 'testing')
   randhash = hashlib.sha1(str(random.random())).hexdigest()
   gs_path = '%s/%s/%s/%s' % (gs_base_dir, bot_id, revision, randhash)
diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py
index dd4de0c..9f5c2df 100644
--- a/build/android/pylib/android_commands.py
+++ b/build/android/pylib/android_commands.py
@@ -830,6 +830,10 @@
 
       device_hash_tuples = [h for h in device_hash_tuples if HostHas(h.path)]
 
+    if len(host_hash_tuples) > len(device_hash_tuples):
+      logging.info('%s files do not exist on the device' %
+                   (len(host_hash_tuples) - len(device_hash_tuples)))
+
     # Constructs the target device path from a given host path. Don't use when
     # only a single file is given as the base name given in device_path may
     # differ from that in host_path.
@@ -895,10 +899,8 @@
     # TODO(craigdh): Replace this educated guess with a heuristic that
     # approximates the push time for each method.
     if len(changed_files) > MAX_INDIVIDUAL_PUSHES or diff_size > 0.5 * size:
-      # We're pushing everything, remove everything first and then create it.
       self._actual_push_size += size
       if os.path.isdir(host_path):
-        self.RunShellCommand('rm -r %s' % device_path, timeout_time=2 * 60)
         self.RunShellCommand('mkdir -p %s' % device_path)
       Push(host_path, device_path)
     else:
diff --git a/build/android/pylib/constants.py b/build/android/pylib/constants.py
index 163d47c..a8c0a08 100644
--- a/build/android/pylib/constants.py
+++ b/build/android/pylib/constants.py
@@ -33,13 +33,13 @@
         'com.google.android.apps.chrome.tests'),
     'chrome_beta': PackageInfo(
         'com.chrome.beta',
-        'com.chrome.beta.Main',
+        'com.google.android.apps.chrome.Main',
         '/data/local/chrome-command-line',
         'chrome_devtools_remote',
         None),
     'chrome_stable': PackageInfo(
         'com.android.chrome',
-        'com.android.chrome.Main',
+        'com.google.android.apps.chrome.Main',
         '/data/local/chrome-command-line',
         'chrome_devtools_remote',
         None),
diff --git a/build/android/pylib/gtest/filter/content_browsertests_disabled b/build/android/pylib/gtest/filter/content_browsertests_disabled
index e4821aa..fd2e012 100644
--- a/build/android/pylib/gtest/filter/content_browsertests_disabled
+++ b/build/android/pylib/gtest/filter/content_browsertests_disabled
@@ -38,6 +38,11 @@
 # https://codereview.chromium.org/14304004/. Investigate more.
 DomSerializerTests.*
 
+# http://crbug.com/297230
+DumpAccessibilityTreeTest.AccessibilityCanvas
+RendererAccessibilityTest.DetachAccessibilityObject
+RendererAccessibilityTest.EditableTextModeFocusEvents
+
 # http://crbug.com/187500
 RenderViewImplTest.*
 RendererAccessibilityTest.EditableTextModeFocusNotifications
diff --git a/build/android/pylib/gtest/filter/ui_unittests_disabled b/build/android/pylib/gtest/filter/ui_unittests_disabled
index 57db61f..73ed951 100644
--- a/build/android/pylib/gtest/filter/ui_unittests_disabled
+++ b/build/android/pylib/gtest/filter/ui_unittests_disabled
@@ -32,6 +32,7 @@
 TextEliderTest.ElideEmail
 TextEliderTest.ElideEmailMoreSpace
 TextEliderTest.ElideRectangleText
+TextEliderTest.ElideRectangleTextCheckLineWidth
 TextEliderTest.ElideRectangleTextLongWords
 TextEliderTest.ElideRectangleTextPunctuation
 TextEliderTest.ElideTextEllipsis
diff --git a/build/android/test_runner.py b/build/android/test_runner.py
index 5f0ec20..d7fbdaf 100755
--- a/build/android/test_runner.py
+++ b/build/android/test_runner.py
@@ -36,9 +36,6 @@
 from pylib.utils import run_tests_helper
 
 
-_SDK_OUT_DIR = os.path.join(constants.DIR_SOURCE_ROOT, 'out')
-
-
 def AddCommonOptions(option_parser):
   """Adds all common options to |option_parser|."""
 
@@ -223,8 +220,7 @@
   option_parser.add_option(
       '--test-apk', dest='test_apk',
       help=('The name of the apk containing the tests '
-            '(without the .apk extension; e.g. "ContentShellTest"). '
-            'Alternatively, this can be a full path to the apk.'))
+            '(without the .apk extension; e.g. "ContentShellTest").'))
   option_parser.add_option('--coverage-dir',
                            help=('Directory in which to place all generated '
                                  'EMMA coverage files.'))
@@ -260,19 +256,14 @@
   if not options.test_apk:
     error_func('--test-apk must be specified.')
 
-  if os.path.exists(options.test_apk):
-    # The APK is fully qualified, assume the JAR lives along side.
-    options.test_apk_path = options.test_apk
-    options.test_apk_jar_path = (os.path.splitext(options.test_apk_path)[0] +
-                                 '.jar')
-  else:
-    options.test_apk_path = os.path.join(_SDK_OUT_DIR,
-                                         options.build_type,
-                                         constants.SDK_BUILD_APKS_DIR,
-                                         '%s.apk' % options.test_apk)
-    options.test_apk_jar_path = os.path.join(
-        _SDK_OUT_DIR, options.build_type, constants.SDK_BUILD_TEST_JAVALIB_DIR,
-        '%s.jar' %  options.test_apk)
+
+  options.test_apk_path = os.path.join(constants.GetOutDirectory(),
+                                       constants.SDK_BUILD_APKS_DIR,
+                                       '%s.apk' % options.test_apk)
+  options.test_apk_jar_path = os.path.join(
+      constants.GetOutDirectory(),
+      constants.SDK_BUILD_TEST_JAVALIB_DIR,
+      '%s.jar' %  options.test_apk)
 
   return instrumentation_test_options.InstrumentationOptions(
       options.tool,
@@ -337,7 +328,8 @@
     options.uiautomator_jar = options.test_jar
   else:
     options.uiautomator_jar = os.path.join(
-        _SDK_OUT_DIR, options.build_type, constants.SDK_BUILD_JAVALIB_DIR,
+        constants.GetOutDirectory(),
+        constants.SDK_BUILD_JAVALIB_DIR,
         '%s.dex.jar' % options.test_jar)
   options.uiautomator_info_jar = (
       options.uiautomator_jar[:options.uiautomator_jar.find('.dex.jar')] +