0
Files
src/content/renderer/PRESUBMIT_test.py
Hajime Hoshi 1230a8a45e Forbid newly introducing ThreadTaskRunnerHandle/SequencedTaskRunnerHandle::Get()
In most cases, using ThreadTaskRunnerHandle::Get() or
SequencedTaskRunnerHandle::Get() in renderers is semantically wrong.
Additionally, these task usage prevents flexible renderer scheduing,
e.g. throttling tasks for a hidden iframe.

This CL introduces presubmit checks to forbide newly introducing those
Get() usages.

Bug: 827065
Change-Id: I92cd9d4207d5664e42763939e5c1c8d293897799
Reviewed-on: https://chromium-review.googlesource.com/995241
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hajime Hoshi <hajimehoshi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549759}
2018-04-11 04:42:30 +00:00

37 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env 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.
import os
import sys
import unittest
import PRESUBMIT
sys.path.append(
os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..'))
from PRESUBMIT_test_mocks import (MockInputApi, MockOutputApi, MockAffectedFile)
class GetTest(unittest.TestCase):
def testNewUsageThreadTaskRunnerHandleGet(self):
diff = ['scoped_refptr<SingleThreadTaskRunner> task_runner =',
' base::ThreadTaskRunnerHandle::Get()']
input_api = MockInputApi()
input_api.files = [MockAffectedFile('content/renderer/foo.cc', diff)]
errors = PRESUBMIT._CheckForUseOfGlobalTaskRunnerGetter(input_api,
MockOutputApi())
self.assertEqual(1, len(errors))
def testNewUsageSequencedTaskRunnerHandleGet(self):
diff = ['scoped_refptr<SequencedThreadTaskRunner> task_runner =',
' base::SequencedTaskRunnerHandle::Get()']
input_api = MockInputApi()
input_api.files = [MockAffectedFile('content/renderer/foo.cc', diff)]
errors = PRESUBMIT._CheckForUseOfGlobalTaskRunnerGetter(input_api,
MockOutputApi())
self.assertEqual(1, len(errors))
if __name__ == '__main__':
unittest.main()