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

Unified Diff: mandoline/ui/browser/browser_manager.cc

Issue 1278673002: Add stats collection for telemetry startup.warm.blank_page test. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cache and reuse a single mojo:tracing connection in mojo:html_viewer. Created 5 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: mandoline/ui/browser/browser_manager.cc
diff --git a/mandoline/ui/browser/browser_manager.cc b/mandoline/ui/browser/browser_manager.cc
index a4f9c63142dd95529150a30a70b9c7b5ecd091d7..591280833ca96fd1d933ae96dffd7e2f239bb9d3 100644
--- a/mandoline/ui/browser/browser_manager.cc
+++ b/mandoline/ui/browser/browser_manager.cc
@@ -5,9 +5,12 @@
#include "mandoline/ui/browser/browser_manager.h"
#include "base/command_line.h"
+#include "base/time/time.h"
#include "components/view_manager/public/cpp/view.h"
#include "components/view_manager/public/cpp/view_observer.h"
#include "mandoline/ui/browser/browser.h"
+#include "mojo/runner/switches.h"
+#include "mojo/services/tracing/tracing.mojom.h"
namespace mandoline {
@@ -54,6 +57,24 @@ void BrowserManager::Initialize(mojo::ApplicationImpl* app) {
// default URL.
if (browsers_.empty())
CreateBrowser(GURL(kGoogleURL));
+
+ // Record the browser startup time metrics for performance testing.
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kStatsCollectionController)) {
+ mojo::URLRequestPtr request(mojo::URLRequest::New());
+ request->url = mojo::String::From("mojo:tracing");
+ tracing::StartupPerformanceControllerPtr controller;
+ app_->ConnectToService(request.Pass(), &controller);
+ // TODO(msw): When to record the browser message loop start time?
+ const base::Time startup_time = base::Time::Now();
yzshen1 2015/08/13 15:59:12 Why do we need to call base::Time::Now() three tim
msw 2015/08/14 23:20:35 This is just a placeholder with TODOs. I'm not ent
yzshen1 2015/08/17 05:46:38 SGTM. Thanks!
+ controller->SetBrowserMessageLoopStartTime(startup_time.ToInternalValue());
+ // TODO(msw): When to record the browser window display time?
+ const base::Time display_time = base::Time::Now();
+ controller->SetBrowserWindowDisplayTime(display_time.ToInternalValue());
+ // TODO(msw): When to record the browser open tabs time?
+ const base::Time open_tabs_time = base::Time::Now();
+ controller->SetBrowserOpenTabsTime(open_tabs_time.ToInternalValue());
+ }
}
bool BrowserManager::ConfigureIncomingConnection(

Powered by Google App Engine
This is Rietveld 408576698