| 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
|
|
|