Commit 499b2463 authored by dpapad's avatar dpapad Committed by Commit Bot

NTP: Add histogram measuring the main bundle's load time.

Specifically adding a new NewTabPage.MainUi.ShownTime histogram.

Fixed: 1141327
Change-Id: Ide414b94c8273e19448ef8251bcede671792ef82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2533643Reviewed-by: default avatarAlex Gough <ajgo@chromium.org>
Reviewed-by: default avatarTibor Goldschwendt <tiborg@chromium.org>
Reviewed-by: default avatarAlexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Alex Gough <ajgo@chromium.org>
Commit-Queue: dpapad <dpapad@chromium.org>
Auto-Submit: dpapad <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#826952}
parent c5fc7bc6
...@@ -351,6 +351,7 @@ class AppElement extends PolymerElement { ...@@ -351,6 +351,7 @@ class AppElement extends PolymerElement {
/** @override */ /** @override */
ready() { ready() {
super.ready(); super.ready();
this.pageHandler_.onAppRendered(BrowserProxy.getInstance().now());
// Let the browser breath and then render remaining elements. // Let the browser breath and then render remaining elements.
BrowserProxy.getInstance().waitForLazyRender().then(() => { BrowserProxy.getInstance().waitForLazyRender().then(() => {
ensureLazyLoaded(); ensureLazyLoaded();
......
...@@ -552,6 +552,9 @@ void NTPUserDataLogger::LogEvent(NTPLoggingEventType event, ...@@ -552,6 +552,9 @@ void NTPUserDataLogger::LogEvent(NTPLoggingEventType event,
case NTP_MODULES_SHOWN: case NTP_MODULES_SHOWN:
UMA_HISTOGRAM_LOAD_TIME("NewTabPage.Modules.ShownTime", time); UMA_HISTOGRAM_LOAD_TIME("NewTabPage.Modules.ShownTime", time);
break; break;
case NTP_APP_RENDERED:
UMA_HISTOGRAM_LOAD_TIME("NewTabPage.MainUi.ShownTime", time);
break;
} }
} }
......
...@@ -403,6 +403,8 @@ interface PageHandler { ...@@ -403,6 +403,8 @@ interface PageHandler {
OnModuleUsage(string module_id); OnModuleUsage(string module_id);
// Logs that the modules have been shown at |time|. // Logs that the modules have been shown at |time|.
OnModulesRendered(double time); OnModulesRendered(double time);
// Logs that the <ntp-app> element's |ready| callback method was called.
OnAppRendered(double time);
// ======= REALBOX ======= // ======= REALBOX =======
// Queries autocomplete matches from the browser. // Queries autocomplete matches from the browser.
......
...@@ -728,6 +728,11 @@ void NewTabPageHandler::OnPromoServiceShuttingDown() { ...@@ -728,6 +728,11 @@ void NewTabPageHandler::OnPromoServiceShuttingDown() {
promo_service_ = nullptr; promo_service_ = nullptr;
} }
void NewTabPageHandler::OnAppRendered(double time) {
logger_->LogEvent(NTP_APP_RENDERED,
base::Time::FromJsTime(time) - ntp_navigation_start_time_);
}
void NewTabPageHandler::OnMostVisitedTilesRendered( void NewTabPageHandler::OnMostVisitedTilesRendered(
std::vector<new_tab_page::mojom::MostVisitedTilePtr> tiles, std::vector<new_tab_page::mojom::MostVisitedTilePtr> tiles,
double time) { double time) {
......
...@@ -109,6 +109,7 @@ class NewTabPageHandler : public new_tab_page::mojom::PageHandler, ...@@ -109,6 +109,7 @@ class NewTabPageHandler : public new_tab_page::mojom::PageHandler,
void OnRestoreModule(const std::string& module_id) override; void OnRestoreModule(const std::string& module_id) override;
void SetModulesVisible(bool visible) override; void SetModulesVisible(bool visible) override;
void UpdateModulesVisible() override; void UpdateModulesVisible() override;
void OnAppRendered(double time) override;
void OnMostVisitedTilesRendered( void OnMostVisitedTilesRendered(
std::vector<new_tab_page::mojom::MostVisitedTilePtr> tiles, std::vector<new_tab_page::mojom::MostVisitedTilePtr> tiles,
double time) override; double time) override;
......
...@@ -176,7 +176,10 @@ enum NTPLoggingEventType { ...@@ -176,7 +176,10 @@ enum NTPLoggingEventType {
// The NTP modules were shown. // The NTP modules were shown.
NTP_MODULES_SHOWN = 83, NTP_MODULES_SHOWN = 83,
NTP_EVENT_TYPE_LAST = NTP_MODULES_SHOWN // The NTP <ntp-app> element was created and ready() was called.
NTP_APP_RENDERED = 84,
NTP_EVENT_TYPE_LAST = NTP_APP_RENDERED
}; };
// The different types of events that are logged for NTP search suggestions, // The different types of events that are logged for NTP search suggestions,
......
...@@ -737,6 +737,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -737,6 +737,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary> </summary>
</histogram> </histogram>
<histogram name="NewTabPage.MainUi.ShownTime" units="ms"
expires_after="2021-11-12">
<owner>tiborg@chromium.org</owner>
<owner>chrome-desktop-ntp@google.com</owner>
<summary>
Records the time until the top-level ntp-app Custom Element's |ready|
callback is called. The intention is to measure how quickly the contents of
new_tab_page.rollup.js (main JS bundle) are rendered.
</summary>
</histogram>
<histogram name="NewTabPage.MobileIsUserOnline" enum="Boolean" <histogram name="NewTabPage.MobileIsUserOnline" enum="Boolean"
expires_after="M85"> expires_after="M85">
<owner>fserb@chromium.org</owner> <owner>fserb@chromium.org</owner>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment