Commit a81bed50 authored by Yi Su's avatar Yi Su Committed by Commit Bot

Remove JavaScript const/let/lambda presubmit check for iOS9.

iOS9 is not supported by Chrome iOS and iGSA anymore, the presubmit check
for risky ES6 grammar(const/let/lambda) can be removed now.

Change-Id: I5a35d54097dbd215393aaba78868107befdc93b6
Reviewed-on: https://chromium-review.googlesource.com/c/1329249Reviewed-by: default avatarDirk Pranke <dpranke@chromium.org>
Reviewed-by: default avatarEugene But <eugenebut@chromium.org>
Commit-Queue: Yi Su <mrsuyi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606867}
parent 77b7b359
...@@ -2717,70 +2717,6 @@ def _CheckNoDeprecatedJs(input_api, output_api): ...@@ -2717,70 +2717,6 @@ def _CheckNoDeprecatedJs(input_api, output_api):
return results return results
def _CheckForRiskyJsArrowFunction(line_number, line):
if ' => ' in line:
return "line %d, is using an => (arrow) function\n %s\n" % (
line_number, line)
return ''
def _CheckForRiskyJsConstLet(input_api, line_number, line):
if input_api.re.match('^\s*(const|let)\s', line):
return "line %d, is using const/let keyword\n %s\n" % (
line_number, line)
return ''
def _CheckForRiskyJsFeatures(input_api, output_api):
maybe_ios_js = [r"^(ios|components|ui\/webui\/resources)\/.+\.js$"]
# 'ui/webui/resources/cr_components are not allowed on ios'
not_ios_filter = (r".*ui\/webui\/resources\/cr_components.*", )
file_filter = lambda f: input_api.FilterSourceFile(f, white_list=maybe_ios_js,
black_list=not_ios_filter)
results = []
for f in input_api.AffectedFiles(file_filter=file_filter):
arrow_error_lines = []
const_let_error_lines = []
for lnum, line in f.ChangedContents():
arrow_error_lines += filter(None, [
_CheckForRiskyJsArrowFunction(lnum, line),
])
const_let_error_lines += filter(None, [
_CheckForRiskyJsConstLet(input_api, lnum, line),
])
if arrow_error_lines:
arrow_error_lines = map(
lambda e: "%s:%s" % (f.LocalPath(), e), arrow_error_lines)
results.append(
output_api.PresubmitPromptWarning('\n'.join(arrow_error_lines + [
"""
Use of => (arrow) 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/styleguide/web/es6.md#Arrow-Functions
""" % f.LocalPath()
])))
if const_let_error_lines:
const_let_error_lines = map(
lambda e: "%s:%s" % (f.LocalPath(), e), const_let_error_lines)
results.append(
output_api.PresubmitPromptWarning('\n'.join(const_let_error_lines + [
"""
Use of const/let keywords detected in:
%s
Please ensure your code does not run on iOS9 because const/let is not fully
supported.
https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/es6.md#let-Block_Scoped-Variables
https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/es6.md#const-Block_Scoped-Constants
""" % f.LocalPath()
])))
return results
def _CheckForRelativeIncludes(input_api, output_api): def _CheckForRelativeIncludes(input_api, output_api):
# Need to set the sys.path so PRESUBMIT_test.py runs properly # Need to set the sys.path so PRESUBMIT_test.py runs properly
import sys import sys
...@@ -3119,7 +3055,6 @@ def _CommonChecks(input_api, output_api): ...@@ -3119,7 +3055,6 @@ def _CommonChecks(input_api, output_api):
results.extend(_CheckJavaStyle(input_api, output_api)) results.extend(_CheckJavaStyle(input_api, output_api))
results.extend(_CheckIpcOwners(input_api, output_api)) results.extend(_CheckIpcOwners(input_api, output_api))
results.extend(_CheckUselessForwardDeclarations(input_api, output_api)) results.extend(_CheckUselessForwardDeclarations(input_api, output_api))
results.extend(_CheckForRiskyJsFeatures(input_api, output_api))
results.extend(_CheckForRelativeIncludes(input_api, output_api)) results.extend(_CheckForRelativeIncludes(input_api, output_api))
results.extend(_CheckWATCHLISTS(input_api, output_api)) results.extend(_CheckWATCHLISTS(input_api, output_api))
results.extend(input_api.RunTests( results.extend(input_api.RunTests(
......
...@@ -1391,54 +1391,6 @@ class ForwardDeclarationTest(unittest.TestCase): ...@@ -1391,54 +1391,6 @@ class ForwardDeclarationTest(unittest.TestCase):
self.assertEqual(4, len(warnings)) self.assertEqual(4, len(warnings))
class RiskyJsTest(unittest.TestCase):
def testArrowWarnInIos9Code(self):
mock_input_api = MockInputApi()
mock_output_api = MockOutputApi()
mock_input_api.files = [
MockAffectedFile('components/blah.js', ["shouldn't use => here"]),
]
warnings = PRESUBMIT._CheckForRiskyJsFeatures(
mock_input_api, mock_output_api)
self.assertEqual(1, len(warnings))
mock_input_api.files = [
MockAffectedFile('ios/blee.js', ['might => break folks']),
]
warnings = PRESUBMIT._CheckForRiskyJsFeatures(
mock_input_api, mock_output_api)
self.assertEqual(1, len(warnings))
mock_input_api.files = [
MockAffectedFile('ui/webui/resources/blarg.js', ['on => iOS9']),
]
warnings = PRESUBMIT._CheckForRiskyJsFeatures(
mock_input_api, mock_output_api)
self.assertEqual(1, len(warnings))
def testArrowsAllowedInChromeCode(self):
mock_input_api = MockInputApi()
mock_input_api.files = [
MockAffectedFile('chrome/browser/resources/blah.js', 'arrow => OK here'),
]
warnings = PRESUBMIT._CheckForRiskyJsFeatures(
mock_input_api, MockOutputApi())
self.assertEqual(0, len(warnings))
def testConstLetWarningIos9Code(self):
mock_input_api = MockInputApi()
mock_output_api = MockOutputApi()
mock_input_api.files = [
MockAffectedFile('components/blah.js', [" const foo = 'bar';"]),
MockAffectedFile('ui/webui/resources/blah.js', [" let foo = 3;"]),
]
warnings = PRESUBMIT._CheckForRiskyJsFeatures(
mock_input_api, mock_output_api)
self.assertEqual(2, len(warnings))
class RelativeIncludesTest(unittest.TestCase): class RelativeIncludesTest(unittest.TestCase):
def testThirdPartyNotWebKitIgnored(self): def testThirdPartyNotWebKitIgnored(self):
mock_input_api = MockInputApi() mock_input_api = MockInputApi()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment