| Index: ui/resources/resource_check/ico_files.py
 | 
| diff --git a/ui/resources/resource_check/ico_files.py b/ui/resources/resource_check/ico_files.py
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..26bd36788c9d8f46bf4eb8c91b86a06d83d83d5f
 | 
| --- /dev/null
 | 
| +++ b/ui/resources/resource_check/ico_files.py
 | 
| @@ -0,0 +1,57 @@
 | 
| +# Copyright 2016 The Chromium Authors. All rights reserved.
 | 
| +# Use of this source code is governed by a BSD-style license that can be
 | 
| +# found in the LICENSE file.
 | 
| +
 | 
| +"""Presubmit script for Chromium browser resources.
 | 
| +
 | 
| +See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
 | 
| +for more details about the presubmit API built into depot_tools, and see
 | 
| +http://www.chromium.org/developers/web-development-style-guide for the rules
 | 
| +we're checking against here.
 | 
| +"""
 | 
| +
 | 
| +import os
 | 
| +import sys
 | 
| +
 | 
| +class IcoFiles(object):
 | 
| +  """Verifier of ICO files for Chromium resources.
 | 
| +  """
 | 
| +
 | 
| +  def __init__(self, input_api, output_api):
 | 
| +    """ Initializes IcoFiles with path."""
 | 
| +    self.input_api = input_api
 | 
| +    self.output_api = output_api
 | 
| +
 | 
| +    tool_path = input_api.os_path.join(input_api.PresubmitLocalPath(),
 | 
| +        '../../../tools/resources')
 | 
| +    sys.path.insert(0, tool_path)
 | 
| +
 | 
| +  def RunChecks(self):
 | 
| +    """Verifies the correctness of the ICO files.
 | 
| +
 | 
| +    Returns:
 | 
| +        An array of presubmit errors if any ICO files were broken in some way.
 | 
| +    """
 | 
| +    results = []
 | 
| +    affected_files = self.input_api.AffectedFiles(include_deletes=False)
 | 
| +    for f in affected_files:
 | 
| +      path = f.LocalPath()
 | 
| +      if os.path.splitext(path)[1].lower() != '.ico':
 | 
| +        continue
 | 
| +
 | 
| +      # Import this module from here (to avoid importing it in the highly common
 | 
| +      # case where there are no ICO files being changed).
 | 
| +      import ico_tools
 | 
| +
 | 
| +      repository_path = self.input_api.change.RepositoryRoot()
 | 
| +
 | 
| +      with open(os.path.join(repository_path, path), 'rb') as ico_file:
 | 
| +        errors = list(ico_tools.LintIcoFile(ico_file))
 | 
| +        if errors:
 | 
| +          error_string = '\n'.join('    * ' + e for e in errors)
 | 
| +          results.append(self.output_api.PresubmitError(
 | 
| +              '%s: This file does not meet the standards for Chromium ICO '
 | 
| +              'files.\n%s\n    Please run '
 | 
| +              'tools/resources/optimize-ico-files.py on this file. See '
 | 
| +              'chrome/app/theme/README for details.' % (path, error_string)))
 | 
| +    return results
 | 
| 
 |