Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: PRESUBMIT.py

Issue 2576253002: ES6 Style: add presubmit prompt about => in code that might run on iOS9 (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | PRESUBMIT_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: PRESUBMIT.py
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index da46670970c7c4a7bb7c5b42566b0d60a6491044..861990ec8f339db39782df0d25d135abc5f8a416 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1925,7 +1925,7 @@ def _CheckSingletonInHeaders(input_api, output_api):
return []
-def _CheckNoDeprecatedCompiledResourcesGYP(input_api, output_api):
+def _CheckNoDeprecatedCompiledResourcesGyp(input_api, output_api):
"""Checks for old style compiled_resources.gyp files."""
is_compiled_resource = lambda fp: fp.endswith('compiled_resources.gyp')
@@ -1969,7 +1969,7 @@ _DEPRECATED_CSS = [
( "-webkit-repeating-radial-gradient", "repeating-radial-gradient" ),
]
-def _CheckNoDeprecatedCSS(input_api, output_api):
+def _CheckNoDeprecatedCss(input_api, output_api):
""" Make sure that we don't use deprecated CSS
properties, functions or values. Our external
documentation and iOS CSS for dom distiller
@@ -2004,7 +2004,7 @@ _DEPRECATED_JS = [
( "__defineSetter__", "Object.defineProperty" ),
]
-def _CheckNoDeprecatedJS(input_api, output_api):
+def _CheckNoDeprecatedJs(input_api, output_api):
"""Make sure that we don't use deprecated JS in Chrome code."""
results = []
file_inclusion_pattern = (r".+\.js$",) # TODO(dbeam): .html?
@@ -2022,6 +2022,27 @@ def _CheckNoDeprecatedJS(input_api, output_api):
return results
+def _CheckForRiskyJsFeatures(input_api, output_api):
+ maybe_ios_js = (r"^(ios|components|ui\/webui\/resources)\/.+\.js$", )
+ file_filter = lambda f: input_api.FilterSourceFile(f, white_list=maybe_ios_js)
+
+ arrow_lines = []
+ for f in input_api.AffectedFiles(file_filter=file_filter):
+ for lnum, line in f.ChangedContents():
+ if ' => ' in line:
+ arrow_lines.append((f.LocalPath(), lnum))
+
+ if not arrow_lines:
+ return []
+
+ return [output_api.PresubmitPromptWarning("""
+Use of => operator detected in:
+%s
+Please ensure your code does not run on iOS9 (=> (arrow) does not work there).
+https://chromium.googlesource.com/chromium/src/+/master/docs/es6_chromium.md#Arrow-Functions
+""" % "\n".join(" %s:%d\n" % line for line in arrow_lines))]
+
+
def _AndroidSpecificOnUploadChecks(input_api, output_api):
"""Groups checks that target android code."""
results = []
@@ -2070,18 +2091,19 @@ def _CommonChecks(input_api, output_api):
results.extend(_CheckForAnonymousVariables(input_api, output_api))
results.extend(_CheckCygwinShell(input_api, output_api))
results.extend(_CheckUserActionUpdate(input_api, output_api))
- results.extend(_CheckNoDeprecatedCSS(input_api, output_api))
- results.extend(_CheckNoDeprecatedJS(input_api, output_api))
+ results.extend(_CheckNoDeprecatedCss(input_api, output_api))
+ results.extend(_CheckNoDeprecatedJs(input_api, output_api))
results.extend(_CheckParseErrors(input_api, output_api))
results.extend(_CheckForIPCRules(input_api, output_api))
results.extend(_CheckForWindowsLineEndings(input_api, output_api))
results.extend(_CheckSingletonInHeaders(input_api, output_api))
- results.extend(_CheckNoDeprecatedCompiledResourcesGYP(input_api, output_api))
+ results.extend(_CheckNoDeprecatedCompiledResourcesGyp(input_api, output_api))
results.extend(_CheckPydepsNeedsUpdating(input_api, output_api))
results.extend(_CheckJavaStyle(input_api, output_api))
results.extend(_CheckIpcOwners(input_api, output_api))
results.extend(_CheckMojoUsesNewWrapperTypes(input_api, output_api))
results.extend(_CheckUselessForwardDeclarations(input_api, output_api))
+ results.extend(_CheckForRiskyJsFeatures(input_api, output_api))
if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()):
results.extend(input_api.canned_checks.RunUnitTestsInDirectory(
« no previous file with comments | « no previous file | PRESUBMIT_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698