Skip to content

Commit

Permalink
cc: Add presubmit that IPC should be updated with mojo
Browse files Browse the repository at this point in the history
IPC serialization is still used by Android WebView in production so must
still be maintained. But most chromium developers only test on chrome.
This has already caused a bug.

Add a simple presubmit that warns when mojo files are modified, but
ipc ParamTraits files are not.

Bug: 748155
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I114d836a21ff541f38fb53012fbbeeadb3d3d46b
Reviewed-on: https://chromium-review.googlesource.com/602052
Reviewed-by: enne <enne@chromium.org>
Commit-Queue: Bo Liu <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492357}
  • Loading branch information
Bo Liu authored and Commit Bot committed Aug 7, 2017
1 parent 13b9afd commit 67e76f0
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions cc/PRESUBMIT.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,25 @@ def CheckForUseOfWrongClock(input_api,
else:
return []

def CheckIpcUpdatedWithMojo(input_api, output_api):
"""Make sure IPC is updated whenever Mojo serialization is updated"""
def match_ipc(affected_file):
match = re.match(r'.*_param_traits.*', affected_file.LocalPath())
return match is not None

def match_mojo(affected_file):
mojo_patterns = (r'.*_struct_traits.*', r'.*\.mojom$', r'.*\.typemap$')
matches = (re.match(pattern, affected_file.LocalPath())
for pattern in mojo_patterns)
return any(matches)

ipc_files = input_api.AffectedFiles(file_filter=match_ipc)
mojo_files = input_api.AffectedFiles(file_filter=match_mojo)
if mojo_files and not ipc_files:
return [output_api.PresubmitPromptOrNotify(
'Make sure to update IPC ParamTraits along with mojo types.\n\n'),]
return []

def CheckChangeOnUpload(input_api, output_api):
results = []
results += CheckAsserts(input_api, output_api)
Expand All @@ -315,6 +334,7 @@ def CheckChangeOnUpload(input_api, output_api):
results += CheckNamespace(input_api, output_api)
results += CheckForUseOfWrongClock(input_api, output_api)
results += FindUselessIfdefs(input_api, output_api)
results += CheckIpcUpdatedWithMojo(input_api, output_api)
return results

def PostUploadHook(cl, change, output_api):
Expand Down

0 comments on commit 67e76f0

Please sign in to comment.