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

Unified Diff: chrome/browser/media/webrtc_browsertest_base.cc

Issue 2034393004: Allow multiple logging::LogMessage{Handler,Listener}s Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address grt's comments Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/webrtc_browsertest_base.cc
diff --git a/chrome/browser/media/webrtc_browsertest_base.cc b/chrome/browser/media/webrtc_browsertest_base.cc
index 58ccdc445c72a24cd8b3ad2ee5dfcf87afa9ce69..ae52b08cb51b92f09a2f4629e30e83ad868d36e9 100644
--- a/chrome/browser/media/webrtc_browsertest_base.cc
+++ b/chrome/browser/media/webrtc_browsertest_base.cc
@@ -63,27 +63,6 @@ namespace {
base::LazyInstance<bool> hit_javascript_errors_ =
LAZY_INSTANCE_INITIALIZER;
-// Intercepts all log messages. We always attach this handler but only look at
-// the results if the test requests so. Note that this will only work if the
-// WebrtcTestBase-inheriting test cases do not run in parallel (if they did they
-// would race to look at the log, which is global to all tests).
-bool JavascriptErrorDetectingLogHandler(int severity,
- const char* file,
- int line,
- size_t message_start,
- const std::string& str) {
- if (file == NULL || std::string("CONSOLE") != file)
- return false;
-
- bool contains_uncaught = str.find("\"Uncaught ") != std::string::npos;
- if (severity == logging::LOG_ERROR ||
- (severity == logging::LOG_INFO && contains_uncaught)) {
- hit_javascript_errors_.Get() = true;
- }
-
- return false;
-}
-
// PermissionRequestObserver ---------------------------------------------------
// Used to observe the creation of permission prompt without responding.
@@ -122,10 +101,24 @@ class PermissionRequestObserver : public PermissionRequestManager::Observer {
} // namespace
+// Intercepts all log messages. We always attach this listener but only look at
+// the results if the test requests so.
+void JavascriptErrorDetectingListener::OnMessage(int severity,
+ const char* file,
+ int line,
+ size_t message_start,
+ const std::string& str) {
+ if (file == NULL || std::string("CONSOLE") != file)
+ return;
+
+ bool contains_uncaught = str.find("\"Uncaught ") != std::string::npos;
+ if (severity == logging::LOG_ERROR ||
+ (severity == logging::LOG_INFO && contains_uncaught)) {
+ hit_javascript_errors_.Get() = true;
+ }
+}
+
WebRtcTestBase::WebRtcTestBase(): detect_errors_in_javascript_(false) {
- // The handler gets set for each test method, but that's fine since this
- // set operation is idempotent.
- logging::SetLogMessageHandler(&JavascriptErrorDetectingLogHandler);
hit_javascript_errors_.Get() = false;
EnablePixelOutput();

Powered by Google App Engine
This is Rietveld 408576698