| 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 ebd10e9739d85a3dbb38636447002fd1893e0df6..d5f71346dc846787b629d7924704575790f35e6a 100644
|
| --- a/content/browser/frame_host/navigator_impl.cc
|
| +++ b/content/browser/frame_host/navigator_impl.cc
|
| @@ -772,6 +772,9 @@ void NavigatorImpl::OnBeginNavigation(
|
| navigation_request = scoped_request.get();
|
| navigation_request_map_.set(
|
| frame_tree_node->frame_tree_node_id(), scoped_request.Pass());
|
| +
|
| + if (frame_tree_node->IsMainFrame())
|
| + navigation_data_.reset();
|
| }
|
| DCHECK(navigation_request);
|
|
|
| @@ -833,6 +836,8 @@ void NavigatorImpl::CancelNavigation(FrameTreeNode* frame_tree_node) {
|
| CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kEnableBrowserSideNavigation));
|
| navigation_request_map_.erase(frame_tree_node->frame_tree_node_id());
|
| + if (frame_tree_node->IsMainFrame())
|
| + navigation_data_.reset();
|
| // TODO(carlosk): move this cleanup into the NavigationRequest destructor once
|
| // we properly cancel ongoing navigations.
|
| frame_tree_node->render_manager()->CleanUpNavigation();
|
| @@ -944,6 +949,7 @@ void NavigatorImpl::RecordNavigationMetrics(
|
| RecordAction(base::UserMetricsAction("FrameLoad"));
|
|
|
| if (!details.is_main_frame || !navigation_data_ ||
|
| + navigation_data_->url_job_start_time_.is_null() ||
|
| navigation_data_->url_ != params.original_request_url) {
|
| return;
|
| }
|
|
|