
This CL also enforces that content/public API does not use const interfaces through a PRESUBMIT check. Bug: 908139 Change-Id: I11bb671c3e7d38b5bba9f2ee3bf3a0593618be84 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1677016 Reviewed-by: Avi Drissman <avi@chromium.org> Commit-Queue: Lucas Gadani <lfg@chromium.org> Cr-Commit-Position: refs/heads/master@{#672300}
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
# Copyright 2018 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""Content public presubmit script
|
|
|
|
See https://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
|
|
for more details about the presubmit API built into gcl.
|
|
"""
|
|
|
|
def _CheckConstInterfaces(input_api, output_api):
|
|
# Matches 'virtual...const = 0;', 'virtual...const;' or 'virtual...const {}'
|
|
pattern = input_api.re.compile(r'virtual[^;]*const\s*(=\s*0)?\s*({}|;)',
|
|
input_api.re.MULTILINE)
|
|
|
|
files = []
|
|
for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile):
|
|
if not f.LocalPath().endswith('.h'):
|
|
continue
|
|
|
|
contents = input_api.ReadFile(f)
|
|
if pattern.search(contents):
|
|
files.append(f)
|
|
|
|
if len(files):
|
|
return [output_api.PresubmitError(
|
|
'Do not add const to content/public '
|
|
'interfaces. See '
|
|
'https://www.chromium.org/developers/content-module/content-api',
|
|
files) ]
|
|
|
|
return []
|
|
|
|
def CheckChangeOnUpload(input_api, output_api):
|
|
results = []
|
|
results.extend(_CheckConstInterfaces(input_api, output_api))
|
|
return results
|
|
|
|
|
|
def CheckChangeOnCommit(input_api, output_api):
|
|
results = []
|
|
results.extend(_CheckConstInterfaces(input_api, output_api))
|
|
return results
|