diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/frame/PRESUBMIT.py')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/frame/PRESUBMIT.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/chromium/third_party/WebKit/Source/core/frame/PRESUBMIT.py b/chromium/third_party/WebKit/Source/core/frame/PRESUBMIT.py new file mode 100644 index 00000000000..eba4c2f6642 --- /dev/null +++ b/chromium/third_party/WebKit/Source/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) |