Commit a8227262 authored by mlamouri's avatar mlamouri Committed by Commit bot

Add PRESUBMIT check for deprecated IPC_ENUM_TRAITS().

BUG=414725

Review URL: https://codereview.chromium.org/577643003

Cr-Commit-Position: refs/heads/master@{#295112}
parent b651946e
...@@ -251,6 +251,10 @@ _BANNED_CPP_FUNCTIONS = ( ...@@ -251,6 +251,10 @@ _BANNED_CPP_FUNCTIONS = (
), ),
) )
_IPC_ENUM_TRAITS_DEPRECATED = (
'You are using IPC_ENUM_TRAITS() in your code. It has been deprecated.\n'
'See http://www.chromium.org/Home/chromium-security/education/security-tips-for-ipc')
_VALID_OS_MACROS = ( _VALID_OS_MACROS = (
# Please keep sorted. # Please keep sorted.
...@@ -1276,6 +1280,7 @@ def _CommonChecks(input_api, output_api): ...@@ -1276,6 +1280,7 @@ def _CommonChecks(input_api, output_api):
results.extend(_CheckUserActionUpdate(input_api, output_api)) results.extend(_CheckUserActionUpdate(input_api, output_api))
results.extend(_CheckNoDeprecatedCSS(input_api, output_api)) results.extend(_CheckNoDeprecatedCSS(input_api, output_api))
results.extend(_CheckParseErrors(input_api, output_api)) results.extend(_CheckParseErrors(input_api, output_api))
results.extend(_CheckForIPCRules(input_api, output_api))
if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()): if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()):
results.extend(input_api.canned_checks.RunUnitTestsInDirectory( results.extend(input_api.canned_checks.RunUnitTestsInDirectory(
...@@ -1373,6 +1378,30 @@ def _CheckForInvalidOSMacros(input_api, output_api): ...@@ -1373,6 +1378,30 @@ def _CheckForInvalidOSMacros(input_api, output_api):
'Possibly invalid OS macro[s] found. Please fix your code\n' 'Possibly invalid OS macro[s] found. Please fix your code\n'
'or add your macro to src/PRESUBMIT.py.', bad_macros)] 'or add your macro to src/PRESUBMIT.py.', bad_macros)]
def _CheckForIPCRules(input_api, output_api):
"""Check for same IPC rules described in
http://www.chromium.org/Home/chromium-security/education/security-tips-for-ipc
"""
base_pattern = r'IPC_ENUM_TRAITS\('
inclusion_pattern = input_api.re.compile(r'(%s)' % base_pattern)
comment_pattern = input_api.re.compile(r'//.*(%s)' % base_pattern)
problems = []
for f in input_api.AffectedSourceFiles(None):
local_path = f.LocalPath()
if not local_path.endswith('.h'):
continue
for line_number, line in f.ChangedContents():
if inclusion_pattern.search(line) and not comment_pattern.search(line):
problems.append(
'%s:%d\n %s' % (local_path, line_number, line.strip()))
if problems:
return [output_api.PresubmitPromptWarning(
_IPC_ENUM_TRAITS_DEPRECATED, problems)]
else:
return []
def CheckChangeOnUpload(input_api, output_api): def CheckChangeOnUpload(input_api, output_api):
results = [] results = []
......
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