Index: chrome/browser/ui/search/search_tab_helper.cc |
diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc |
index f779ede42c8d09490d70fa5e6a7c95ac23e7be9f..a12e8c513302ee0c3726a422dbe9032840f58cef 100644 |
--- a/chrome/browser/ui/search/search_tab_helper.cc |
+++ b/chrome/browser/ui/search/search_tab_helper.cc |
@@ -29,6 +29,7 @@ |
#include "chrome/browser/ui/omnibox/omnibox_popup_model.h" |
#include "chrome/browser/ui/omnibox/omnibox_view.h" |
#include "chrome/browser/ui/search/search_ipc_router_policy_impl.h" |
+#include "chrome/browser/ui/tab_contents/core_tab_helper.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/browser/ui/tabs/tab_strip_model_utils.h" |
#include "chrome/browser/ui/webui/ntp/ntp_user_data_logger.h" |
@@ -123,6 +124,19 @@ void UpdateLocationBar(content::WebContents* contents) { |
#endif |
} |
+// Called when an NTP finishes loading. If the load start time was noted, |
+// calculates and logs the total load time. |
+void RecordNewTabLoadTime(content::WebContents* contents) { |
+ CoreTabHelper* core_tab_helper = CoreTabHelper::FromWebContents(contents); |
+ if (core_tab_helper->new_tab_start_time().is_null()) |
+ return; |
+ |
+ base::TimeDelta duration = |
+ base::TimeTicks::Now() - core_tab_helper->new_tab_start_time(); |
+ UMA_HISTOGRAM_TIMES("Tab.NewTabOnload", duration); |
+ core_tab_helper->set_new_tab_start_time(base::TimeTicks()); |
Jered
2014/01/02 20:12:41
Why are you resetting the start time here?
samarth
2014/01/04 01:22:38
This is because not all code paths that open the N
|
+} |
+ |
} // namespace |
SearchTabHelper::SearchTabHelper(content::WebContents* web_contents) |
@@ -290,8 +304,12 @@ void SearchTabHelper::DidFinishLoad( |
const GURL& /* validated_url */, |
bool is_main_frame, |
content::RenderViewHost* /* render_view_host */) { |
- if (is_main_frame) |
+ if (is_main_frame) { |
+ if (chrome::IsInstantNTP(web_contents_)) |
+ RecordNewTabLoadTime(web_contents_); |
+ |
DetermineIfPageSupportsInstant(); |
+ } |
} |
void SearchTabHelper::NavigationEntryCommitted( |