Reland: Deprecate mojo::DataPipe
This is the first step in eliminating mojo::DataPipe. Marking it as deprecated with a comment and adding a DLOG (that only logs once per process launch) will hopefully stop it from being used in new code. Previous change was reverted due to log spam. Bug: 944990 Change-Id: I492f7ac2038db31ce4af6a31a0b1a80570c46aef Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1544798 Auto-Submit: Carlos Knippschild <carlosk@chromium.org> Reviewed-by: Andrew Grieve <agrieve@chromium.org> Reviewed-by: Ken Rockot <rockot@google.com> Commit-Queue: Ken Rockot <rockot@google.com> Cr-Commit-Position: refs/heads/master@{#648821}
This commit is contained in:

committed by
Commit Bot

parent
4870264e41
commit
ab192b8cf9
@@ -710,6 +710,14 @@ _BANNED_CPP_FUNCTIONS = (
|
|||||||
r'^third_party/blink/renderer/.*\.(cc|h)$',
|
r'^third_party/blink/renderer/.*\.(cc|h)$',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
'mojo::DataPipe',
|
||||||
|
(
|
||||||
|
'mojo::DataPipe is deprecated. Use mojo::CreateDataPipe instead.',
|
||||||
|
),
|
||||||
|
True,
|
||||||
|
(),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1772,6 +1772,20 @@ class BannedFunctionCheckTest(unittest.TestCase):
|
|||||||
self.assertTrue('another/ios_file.mm' in errors[0].message)
|
self.assertTrue('another/ios_file.mm' in errors[0].message)
|
||||||
self.assertTrue('some/mac/file.mm' not in errors[0].message)
|
self.assertTrue('some/mac/file.mm' not in errors[0].message)
|
||||||
|
|
||||||
|
def testBannedMojoFunctions(self):
|
||||||
|
input_api = MockInputApi()
|
||||||
|
input_api.files = [
|
||||||
|
MockFile('some/cpp/problematic/file.cc',
|
||||||
|
['mojo::DataPipe();']),
|
||||||
|
MockFile('some/cpp/ok/file.cc',
|
||||||
|
['CreateDataPipe();']),
|
||||||
|
]
|
||||||
|
|
||||||
|
errors = PRESUBMIT._CheckNoBannedFunctions(input_api, MockOutputApi())
|
||||||
|
self.assertEqual(1, len(errors))
|
||||||
|
self.assertTrue('some/cpp/problematic/file.cc' in errors[0].message)
|
||||||
|
self.assertTrue('some/cpp/ok/file.cc' not in errors[0].message)
|
||||||
|
|
||||||
|
|
||||||
class NoProductionCodeUsingTestOnlyFunctionsTest(unittest.TestCase):
|
class NoProductionCodeUsingTestOnlyFunctionsTest(unittest.TestCase):
|
||||||
def testTruePositives(self):
|
def testTruePositives(self):
|
||||||
|
@@ -131,16 +131,12 @@ inline MojoResult CreateDataPipe(
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DEPRECATED: use |CreateDataPipe| instead.
|
||||||
|
//
|
||||||
|
// This class is not safe to use in production code as there is no way for it to
|
||||||
|
// report failure while creating the pipe and it will CHECK in case of failures.
|
||||||
|
//
|
||||||
// A wrapper class that automatically creates a data pipe and owns both handles.
|
// A wrapper class that automatically creates a data pipe and owns both handles.
|
||||||
//
|
|
||||||
// Note that this class is not safe to use in production code, as there is no
|
|
||||||
// way for it to report failure while creating the pipe, while in practice
|
|
||||||
// creating a new data pipe does fail every now and then. Instead just call
|
|
||||||
// CreateDataPipe directly and check its return value.
|
|
||||||
//
|
|
||||||
// TODO(vtl): Make an even more friendly version? (Maybe templatized for a
|
|
||||||
// particular type instead of some "element"? Maybe functions that take
|
|
||||||
// vectors?)
|
|
||||||
class MOJO_CPP_SYSTEM_EXPORT DataPipe {
|
class MOJO_CPP_SYSTEM_EXPORT DataPipe {
|
||||||
public:
|
public:
|
||||||
DataPipe();
|
DataPipe();
|
||||||
|
Reference in New Issue
Block a user