| Index: core/frame/PRESUBMIT.py
|
| diff --git a/core/frame/PRESUBMIT.py b/core/frame/PRESUBMIT.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..eba4c2f66424070ec1a33f4ddb8ae72efd61c7ba
|
| --- /dev/null
|
| +++ b/core/frame/PRESUBMIT.py
|
| @@ -0,0 +1,57 @@
|
| +# Copyright 2014 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.
|
| +
|
| +"""Blink frame presubmit script
|
| +
|
| +See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
|
| +for more details about the presubmit API built into gcl.
|
| +"""
|
| +
|
| +
|
| +def _RunUseCounterChecks(input_api, output_api):
|
| + for f in input_api.AffectedFiles():
|
| + if f.LocalPath().endswith('UseCounter.cpp'):
|
| + useCounterCpp = f
|
| + break
|
| + else:
|
| + return []
|
| +
|
| + largestFoundBucket = 0
|
| + maximumBucket = 0
|
| + # Looking for a line like "case CSSPropertyGrid: return 453;"
|
| + bucketFinder = input_api.re.compile(r'.*CSSProperty.*return\s*([0-9]+).*')
|
| + # Looking for a line like "static int maximumCSSSampleId() { return 452; }"
|
| + maximumFinder = input_api.re.compile(
|
| + r'static int maximumCSSSampleId\(\) { return ([0-9]+)')
|
| + for line in useCounterCpp.NewContents():
|
| + bucketMatch = bucketFinder.match(line)
|
| + if bucketMatch:
|
| + bucket = int(bucketMatch.group(1))
|
| + largestFoundBucket = max(largestFoundBucket, bucket)
|
| + else:
|
| + maximumMatch = maximumFinder.match(line)
|
| + if maximumMatch:
|
| + maximumBucket = int(maximumMatch.group(1))
|
| +
|
| + if largestFoundBucket != maximumBucket:
|
| + if input_api.is_committing:
|
| + message_type = output_api.PresubmitError
|
| + else:
|
| + message_type = output_api.PresubmitPromptWarning
|
| +
|
| + return [message_type(
|
| + 'Largest found CSSProperty bucket Id (%d) does not match '
|
| + 'maximumCSSSampleId (%d)' %
|
| + (largestFoundBucket, maximumBucket),
|
| + items=[useCounterCpp.LocalPath()])]
|
| +
|
| + return []
|
| +
|
| +
|
| +def CheckChangeOnUpload(input_api, output_api):
|
| + return _RunUseCounterChecks(input_api, output_api)
|
| +
|
| +
|
| +def CheckChangeOnCommit(input_api, output_api):
|
| + return _RunUseCounterChecks(input_api, output_api)
|
|
|