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