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( |