summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/frame/PRESUBMIT.py
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/frame/PRESUBMIT.py')
-rw-r--r--chromium/third_party/WebKit/Source/core/frame/PRESUBMIT.py57
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)