Index: content/browser/frame_host/navigator_impl.cc |
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc |
index 384bceeafbe37a8ccaab4546a517d86c8df019d1..c20f909dcb04d33dac6a926fda808c6d6f2be950 100644 |
--- a/content/browser/frame_host/navigator_impl.cc |
+++ b/content/browser/frame_host/navigator_impl.cc |
@@ -5,6 +5,7 @@ |
#include "content/browser/frame_host/navigator_impl.h" |
#include "base/command_line.h" |
+#include "base/metrics/histogram.h" |
#include "base/time/time.h" |
#include "content/browser/frame_host/frame_tree.h" |
#include "content/browser/frame_host/frame_tree_node.h" |
@@ -351,6 +352,8 @@ bool NavigatorImpl::NavigateToEntry( |
// node. |
if (CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnableBrowserSideNavigation)) { |
+ navigation_start_time_ = navigation_start; |
+ navigation_start_url_ = entry.GetURL(); |
// Create the navigation parameters. |
MakeNavigateParams( |
entry, *controller_, reload_type, navigation_start, &navigate_params); |
@@ -388,6 +391,8 @@ bool NavigatorImpl::NavigateToEntry( |
navigate_params.transferred_request_child_id == |
dest_render_frame_host->GetProcess()->GetID(); |
if (!is_transfer_to_same) { |
+ navigation_start_time_ = navigation_start; |
+ navigation_start_url_ = entry.GetURL(); |
dest_render_frame_host->Navigate(navigate_params); |
} else { |
// No need to navigate again. Just resume the deferred request. |
@@ -549,6 +554,17 @@ void NavigatorImpl::DidNavigate( |
// DidNavigateMainFramePostCommit / DidNavigateAnyFramePostCommit (only if |
// necessary, please). |
+ // TODO(carlosk): Move this out when PlzNavigate implementation properly calls |
+ // the observer methods. |
+ if (details.is_main_frame && |
+ navigation_start_time_.ToInternalValue() != 0 |
+ && navigation_start_url_ == params.original_request_url) { |
+ base::TimeDelta time_to_commit = |
+ base::TimeTicks::Now() - navigation_start_time_; |
+ UMA_HISTOGRAM_TIMES("Navigation.TimeToCommit", time_to_commit); |
+ navigation_start_time_ = base::TimeTicks(); |
+ } |
+ |
// Run post-commit tasks. |
if (delegate_) { |
if (details.is_main_frame) |
@@ -672,6 +688,15 @@ void NavigatorImpl::CommitNavigation( |
// renderer. |
} |
+void NavigatorImpl::LogResourceRequestTime( |
+ base::TimeTicks timestamp, const GURL& url) { |
+ if (navigation_start_time_.ToInternalValue() != 0 |
+ && navigation_start_url_ == url) { |
+ base::TimeDelta time_to_network = timestamp - navigation_start_time_; |
+ UMA_HISTOGRAM_TIMES("Navigation.TimeToURLJobStart", time_to_network); |
+ } |
+} |
+ |
void NavigatorImpl::CheckWebUIRendererDoesNotDisplayNormalURL( |
RenderFrameHostImpl* render_frame_host, |
const GURL& url) { |