Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Side by Side Diff: PRESUBMIT.py

Issue 577643003: Add PRESUBMIT check for deprecated IPC_ENUM_TRAITS(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@web_app_information
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Top-level presubmit script for Chromium. 5 """Top-level presubmit script for Chromium.
6 6
7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
8 for more details about the presubmit API built into gcl. 8 for more details about the presubmit API built into gcl.
9 """ 9 """
10 10
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 'Do not introduce new v8::Extensions into the code base, use', 244 'Do not introduce new v8::Extensions into the code base, use',
245 'gin::Wrappable instead. See http://crbug.com/334679', 245 'gin::Wrappable instead. See http://crbug.com/334679',
246 ), 246 ),
247 True, 247 True,
248 ( 248 (
249 r'extensions[\\\/]renderer[\\\/]safe_builtins\.*', 249 r'extensions[\\\/]renderer[\\\/]safe_builtins\.*',
250 ), 250 ),
251 ), 251 ),
252 ) 252 )
253 253
254 _IPC_ENUM_TRAITS_DEPRECATED = (
255 'You are using IPC_ENUM_TRAITS() in your code. It has been deprecated.\n'
256 'See http://www.chromium.org/Home/chromium-security/education/security-tips- for-ipc')
257
254 258
255 _VALID_OS_MACROS = ( 259 _VALID_OS_MACROS = (
256 # Please keep sorted. 260 # Please keep sorted.
257 'OS_ANDROID', 261 'OS_ANDROID',
258 'OS_ANDROID_HOST', 262 'OS_ANDROID_HOST',
259 'OS_BSD', 263 'OS_BSD',
260 'OS_CAT', # For testing. 264 'OS_CAT', # For testing.
261 'OS_CHROMEOS', 265 'OS_CHROMEOS',
262 'OS_FREEBSD', 266 'OS_FREEBSD',
263 'OS_IOS', 267 'OS_IOS',
(...skipping 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after
1269 input_api.canned_checks.CheckChangeHasNoTabs( 1273 input_api.canned_checks.CheckChangeHasNoTabs(
1270 input_api, 1274 input_api,
1271 output_api, 1275 output_api,
1272 source_file_filter=lambda x: x.LocalPath().endswith('.grd'))) 1276 source_file_filter=lambda x: x.LocalPath().endswith('.grd')))
1273 results.extend(_CheckSpamLogging(input_api, output_api)) 1277 results.extend(_CheckSpamLogging(input_api, output_api))
1274 results.extend(_CheckForAnonymousVariables(input_api, output_api)) 1278 results.extend(_CheckForAnonymousVariables(input_api, output_api))
1275 results.extend(_CheckCygwinShell(input_api, output_api)) 1279 results.extend(_CheckCygwinShell(input_api, output_api))
1276 results.extend(_CheckUserActionUpdate(input_api, output_api)) 1280 results.extend(_CheckUserActionUpdate(input_api, output_api))
1277 results.extend(_CheckNoDeprecatedCSS(input_api, output_api)) 1281 results.extend(_CheckNoDeprecatedCSS(input_api, output_api))
1278 results.extend(_CheckParseErrors(input_api, output_api)) 1282 results.extend(_CheckParseErrors(input_api, output_api))
1283 results.extend(_CheckForIPCRules(input_api, output_api))
1279 1284
1280 if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()): 1285 if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()):
1281 results.extend(input_api.canned_checks.RunUnitTestsInDirectory( 1286 results.extend(input_api.canned_checks.RunUnitTestsInDirectory(
1282 input_api, output_api, 1287 input_api, output_api,
1283 input_api.PresubmitLocalPath(), 1288 input_api.PresubmitLocalPath(),
1284 whitelist=[r'^PRESUBMIT_test\.py$'])) 1289 whitelist=[r'^PRESUBMIT_test\.py$']))
1285 return results 1290 return results
1286 1291
1287 1292
1288 def _CheckAuthorizedAuthor(input_api, output_api): 1293 def _CheckAuthorizedAuthor(input_api, output_api):
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1366 if not f.LocalPath().endswith(('.py', '.js', '.html', '.css')): 1371 if not f.LocalPath().endswith(('.py', '.js', '.html', '.css')):
1367 bad_macros.extend(_CheckForInvalidOSMacrosInFile(input_api, f)) 1372 bad_macros.extend(_CheckForInvalidOSMacrosInFile(input_api, f))
1368 1373
1369 if not bad_macros: 1374 if not bad_macros:
1370 return [] 1375 return []
1371 1376
1372 return [output_api.PresubmitError( 1377 return [output_api.PresubmitError(
1373 'Possibly invalid OS macro[s] found. Please fix your code\n' 1378 'Possibly invalid OS macro[s] found. Please fix your code\n'
1374 'or add your macro to src/PRESUBMIT.py.', bad_macros)] 1379 'or add your macro to src/PRESUBMIT.py.', bad_macros)]
1375 1380
1381 def _CheckForIPCRules(input_api, output_api):
1382 """Check for same IPC rules described in
1383 http://www.chromium.org/Home/chromium-security/education/security-tips-for-ipc
1384 """
1385 base_pattern = r'IPC_ENUM_TRAITS\('
1386 inclusion_pattern = input_api.re.compile(r'(%s)' % base_pattern)
1387 comment_pattern = input_api.re.compile(r'//.*(%s)' % base_pattern)
1388
1389 problems = []
1390 for f in input_api.AffectedSourceFiles(None):
1391 local_path = f.LocalPath()
1392 if not local_path.endswith('.h'):
1393 continue
1394 for line_number, line in f.ChangedContents():
1395 if inclusion_pattern.search(line) and not comment_pattern.search(line):
1396 problems.append(
1397 '%s:%d\n %s' % (local_path, line_number, line.strip()))
1398
1399 if problems:
1400 return [output_api.PresubmitPromptWarning(
1401 _IPC_ENUM_TRAITS_DEPRECATED, problems)]
1402 else:
1403 return []
1404
1376 1405
1377 def CheckChangeOnUpload(input_api, output_api): 1406 def CheckChangeOnUpload(input_api, output_api):
1378 results = [] 1407 results = []
1379 results.extend(_CommonChecks(input_api, output_api)) 1408 results.extend(_CommonChecks(input_api, output_api))
1380 results.extend(_CheckJavaStyle(input_api, output_api)) 1409 results.extend(_CheckJavaStyle(input_api, output_api))
1381 return results 1410 return results
1382 1411
1383 1412
1384 def GetTryServerMasterForBot(bot): 1413 def GetTryServerMasterForBot(bot):
1385 """Returns the Try Server master for the given bot. 1414 """Returns the Try Server master for the given bot.
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
1589 builders.extend(['cros_x86']) 1618 builders.extend(['cros_x86'])
1590 1619
1591 # The AOSP bot doesn't build the chrome/ layer, so ignore any changes to it 1620 # The AOSP bot doesn't build the chrome/ layer, so ignore any changes to it
1592 # unless they're .gyp(i) files as changes to those files can break the gyp 1621 # unless they're .gyp(i) files as changes to those files can break the gyp
1593 # step on that bot. 1622 # step on that bot.
1594 if (not all(re.search('^chrome', f) for f in files) or 1623 if (not all(re.search('^chrome', f) for f in files) or
1595 any(re.search('\.gypi?$', f) for f in files)): 1624 any(re.search('\.gypi?$', f) for f in files)):
1596 builders.extend(['android_aosp']) 1625 builders.extend(['android_aosp'])
1597 1626
1598 return GetDefaultTryConfigs(builders) 1627 return GetDefaultTryConfigs(builders)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698