| Index: build/android/pylib/android_commands.py
 | 
| diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py
 | 
| index 9146c020f00e6231c6d70ef3360b61bb98a62774..3df37b9b4143e53fc50665ab5251fdfc07d6f691 100644
 | 
| --- a/build/android/pylib/android_commands.py
 | 
| +++ b/build/android/pylib/android_commands.py
 | 
| @@ -220,6 +220,8 @@ class AndroidCommands(object):
 | 
|      self._logcat_tmpoutfile = None
 | 
|      self._pushed_files = []
 | 
|      self._device_utc_offset = None
 | 
| +    self._potential_push_size = 0
 | 
| +    self._actual_push_size = 0
 | 
|      self._md5sum_build_dir = ''
 | 
|      self._external_storage = ''
 | 
|      self._util_wrapper = ''
 | 
| @@ -708,8 +710,6 @@ class AndroidCommands(object):
 | 
|      Returns:
 | 
|        True if the md5sums match.
 | 
|      """
 | 
| -    assert os.path.exists(local_path), 'Local path not found %s' % local_path
 | 
| -
 | 
|      if not self._md5sum_build_dir:
 | 
|        default_build_type = os.environ.get('BUILD_TYPE', 'Debug')
 | 
|        build_dir = '%s/%s/' % (
 | 
| @@ -723,7 +723,6 @@ class AndroidCommands(object):
 | 
|        assert _HasAdbPushSucceeded(self._adb.SendCommand(command))
 | 
|        self._md5sum_build_dir = build_dir
 | 
|  
 | 
| -    self._pushed_files.append(device_path)
 | 
|      hashes_on_device = _ComputeFileListHash(
 | 
|          self.RunShellCommand(MD5SUM_LD_LIBRARY_PATH + ' ' + self._util_wrapper +
 | 
|              ' ' + MD5SUM_DEVICE_PATH + ' ' + device_path))
 | 
| @@ -746,9 +745,15 @@ class AndroidCommands(object):
 | 
|  
 | 
|      All pushed files can be removed by calling RemovePushedFiles().
 | 
|      """
 | 
| +    assert os.path.exists(local_path), 'Local path not found %s' % local_path
 | 
| +    size = int(cmd_helper.GetCmdOutput(['du', '-sb', local_path]).split()[0])
 | 
| +    self._pushed_files.append(device_path)
 | 
| +    self._potential_push_size += size
 | 
| +
 | 
|      if self.CheckMd5Sum(local_path, device_path):
 | 
|        return
 | 
|  
 | 
| +    self._actual_push_size += size
 | 
|      # They don't match, so remove everything first and then create it.
 | 
|      if os.path.isdir(local_path):
 | 
|        self.RunShellCommand('rm -r %s' % device_path, timeout_time=2 * 60)
 | 
| @@ -761,6 +766,15 @@ class AndroidCommands(object):
 | 
|      output = self._adb.SendCommand(push_command, timeout_time=30 * 60)
 | 
|      assert _HasAdbPushSucceeded(output)
 | 
|  
 | 
| +  def GetPushSizeInfo(self):
 | 
| +    """Get total size of pushes to the device done via PushIfNeeded()
 | 
| +
 | 
| +    Returns:
 | 
| +      A tuple:
 | 
| +        1. Total size of push requests to PushIfNeeded (MB)
 | 
| +        2. Total size that was actually pushed (MB)
 | 
| +    """
 | 
| +    return (self._potential_push_size, self._actual_push_size)
 | 
|  
 | 
|    def GetFileContents(self, filename, log_result=False):
 | 
|      """Gets contents from the file specified by |filename|."""
 | 
| 
 |