| 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 11b322e492b6d1874666c6ea93b13ac912cd268b..0e9060e26aee1ca390cb9a7d429d0ed2e89b6557 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"
|
| @@ -81,6 +82,9 @@ NavigatorImpl::NavigatorImpl(
|
| delegate_(delegate) {
|
| }
|
|
|
| +NavigatorImpl::~NavigatorImpl() {
|
| +}
|
| +
|
| // static.
|
| void NavigatorImpl::MakeNavigateParams(
|
| const NavigationEntryImpl& entry,
|
| @@ -322,6 +326,7 @@ bool NavigatorImpl::NavigateToEntry(
|
| // node.
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kEnableBrowserSideNavigation)) {
|
| + navigation_start_time_and_url = MakeTuple(navigation_start, entry.GetURL());
|
| // Create the navigation parameters.
|
| MakeNavigateParams(
|
| entry, *controller_, reload_type, navigation_start, &navigate_params);
|
| @@ -359,6 +364,7 @@ bool NavigatorImpl::NavigateToEntry(
|
| navigate_params.transferred_request_child_id ==
|
| dest_render_frame_host->GetProcess()->GetID();
|
| if (!is_transfer_to_same) {
|
| + navigation_start_time_and_url = MakeTuple(navigation_start, entry.GetURL());
|
| dest_render_frame_host->Navigate(navigate_params);
|
| } else {
|
| // No need to navigate again. Just resume the deferred request.
|
| @@ -520,6 +526,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_and_url.a.ToInternalValue() != 0
|
| + && navigation_start_time_and_url.b == params.original_request_url) {
|
| + base::TimeDelta time_to_commit =
|
| + base::TimeTicks::Now() - navigation_start_time_and_url.a;
|
| + UMA_HISTOGRAM_TIMES("Navigation.TimeToCommit", time_to_commit);
|
| + navigation_start_time_and_url = MakeTuple(base::TimeTicks(), GURL());
|
| + }
|
| +
|
| // Run post-commit tasks.
|
| if (delegate_) {
|
| if (details.is_main_frame)
|
| @@ -644,6 +661,16 @@ void NavigatorImpl::CommitNavigation(
|
| // renderer.
|
| }
|
|
|
| +void NavigatorImpl::LogResourceRequestTime(
|
| + base::TimeTicks timestamp, const GURL& url) {
|
| + if (navigation_start_time_and_url.a.ToInternalValue() != 0
|
| + && navigation_start_time_and_url.b == url) {
|
| + base::TimeDelta time_to_network =
|
| + timestamp - navigation_start_time_and_url.a;
|
| + UMA_HISTOGRAM_TIMES("Navigation.TimeToURLJobStart", time_to_network);
|
| + }
|
| +}
|
| +
|
| void NavigatorImpl::CheckWebUIRendererDoesNotDisplayNormalURL(
|
| RenderFrameHostImpl* render_frame_host,
|
| const GURL& url) {
|
|
|