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

Unified Diff: chrome/test/chromedriver/chrome_launcher.cc

Issue 429693003: [ChromeDriver] Implementing PerfLoggingPrefs for perf log (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing memory leak Created 6 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/test/chromedriver/chrome_launcher.cc
diff --git a/chrome/test/chromedriver/chrome_launcher.cc b/chrome/test/chromedriver/chrome_launcher.cc
index aca9ca96de3ecf835d1dc01b2e889d7c261f8ebe..480332c5eca6744582de32a63fe93d6e6307f63a 100644
--- a/chrome/test/chromedriver/chrome_launcher.cc
+++ b/chrome/test/chromedriver/chrome_launcher.cc
@@ -195,6 +195,7 @@ Status WaitForDevToolsAndCheckVersion(
Status CreateBrowserwideDevToolsClientAndConnect(
const NetAddress& address,
+ const PerfLoggingPrefs& perf_logging_prefs,
const SyncWebSocketFactory& socket_factory,
ScopedVector<DevToolsEventListener>& devtools_event_listeners,
scoped_ptr<DevToolsClient>* browser_client) {
@@ -203,7 +204,7 @@ Status CreateBrowserwideDevToolsClientAndConnect(
address.ToString().c_str()),
DevToolsClientImpl::kBrowserwideDevToolsClientId));
for (ScopedVector<DevToolsEventListener>::const_iterator it =
- devtools_event_listeners.begin();
+ devtools_event_listeners.begin();
it != devtools_event_listeners.end();
++it) {
// Only add listeners that subscribe to the browser-wide |DevToolsClient|.
@@ -212,11 +213,17 @@ Status CreateBrowserwideDevToolsClientAndConnect(
if ((*it)->subscribes_to_browser())
client->AddListener(*it);
}
- // TODO(johnmoore): Call client->ConnectIfNecessary if tracing is enabled.
- // For now, provide the client anyway, so that Chrome always has a valid
- // |devtools_websocket_client_|. No listeners will be notified, and the client
- // will just return kDisconnected errors if used.
+ // Provide the client regardless of whether it connects, so that Chrome always
+ // has a valid |devtools_websocket_client_|. If not connected, no listeners
+ // will be notified, and client will just return kDisconnected errors if used.
*browser_client = client.Pass();
+ // To avoid unnecessary overhead, only connect if tracing is enabled, since
+ // the browser-wide client is currently only used for tracing.
+ if (!perf_logging_prefs.trace_categories.empty()) {
+ Status status = (*browser_client)->ConnectIfNecessary();
+ if (status.IsError())
+ return status;
+ }
return Status(kOk);
}
@@ -239,8 +246,8 @@ Status LaunchRemoteChromeSession(
scoped_ptr<DevToolsClient> devtools_websocket_client;
status = CreateBrowserwideDevToolsClientAndConnect(
- capabilities.debugger_address, socket_factory, devtools_event_listeners,
- &devtools_websocket_client);
+ capabilities.debugger_address, capabilities.perf_logging_prefs,
+ socket_factory, devtools_event_listeners, &devtools_websocket_client);
if (status.IsError()) {
LOG(WARNING) << "Browser-wide DevTools client failed to connect: "
<< status.message();
@@ -365,8 +372,8 @@ Status LaunchDesktopChrome(
scoped_ptr<DevToolsClient> devtools_websocket_client;
status = CreateBrowserwideDevToolsClientAndConnect(
- NetAddress(port), socket_factory, devtools_event_listeners,
- &devtools_websocket_client);
+ NetAddress(port), capabilities.perf_logging_prefs, socket_factory,
+ devtools_event_listeners, &devtools_websocket_client);
if (status.IsError()) {
LOG(WARNING) << "Browser-wide DevTools client failed to connect: "
<< status.message();
@@ -446,8 +453,8 @@ Status LaunchAndroidChrome(
scoped_ptr<DevToolsClient> devtools_websocket_client;
status = CreateBrowserwideDevToolsClientAndConnect(
- NetAddress(port), socket_factory, devtools_event_listeners,
- &devtools_websocket_client);
+ NetAddress(port), capabilities.perf_logging_prefs, socket_factory,
+ devtools_event_listeners, &devtools_websocket_client);
if (status.IsError()) {
LOG(WARNING) << "Browser-wide DevTools client failed to connect: "
<< status.message();
« no previous file with comments | « chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc ('k') | chrome/test/chromedriver/logging.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698