Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(555)

Side by Side Diff: content/browser/frame_host/navigator_impl.cc

Issue 1425823002: (DEPRECATED) Send navigation_start to browser process in DidStartProvisionalLoad (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Stop calling didCreateDataSource for same-page navs Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/navigator_impl.h" 5 #include "content/browser/frame_host/navigator_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "content/browser/frame_host/frame_tree.h" 10 #include "content/browser/frame_host/frame_tree.h"
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 NavigatorDelegate* NavigatorImpl::GetDelegate() { 112 NavigatorDelegate* NavigatorImpl::GetDelegate() {
113 return delegate_; 113 return delegate_;
114 } 114 }
115 115
116 NavigationController* NavigatorImpl::GetController() { 116 NavigationController* NavigatorImpl::GetController() {
117 return controller_; 117 return controller_;
118 } 118 }
119 119
120 void NavigatorImpl::DidStartProvisionalLoad( 120 void NavigatorImpl::DidStartProvisionalLoad(
121 RenderFrameHostImpl* render_frame_host, 121 RenderFrameHostImpl* render_frame_host,
122 const GURL& url) { 122 const GURL& url,
123 const base::TimeTicks& navigation_start) {
123 bool is_main_frame = render_frame_host->frame_tree_node()->IsMainFrame(); 124 bool is_main_frame = render_frame_host->frame_tree_node()->IsMainFrame();
124 bool is_error_page = (url.spec() == kUnreachableWebDataURL); 125 bool is_error_page = (url.spec() == kUnreachableWebDataURL);
125 bool is_iframe_srcdoc = (url.spec() == kAboutSrcDocURL); 126 bool is_iframe_srcdoc = (url.spec() == kAboutSrcDocURL);
126 GURL validated_url(url); 127 GURL validated_url(url);
127 RenderProcessHost* render_process_host = render_frame_host->GetProcess(); 128 RenderProcessHost* render_process_host = render_frame_host->GetProcess();
128 render_process_host->FilterURL(false, &validated_url); 129 render_process_host->FilterURL(false, &validated_url);
129 130
130 if (is_main_frame && !is_error_page) { 131 if (is_main_frame && !is_error_page) {
131 DidStartMainFrameNavigation(validated_url, 132 DidStartMainFrameNavigation(validated_url,
132 render_frame_host->GetSiteInstance()); 133 render_frame_host->GetSiteInstance());
(...skipping 20 matching lines...) Expand all
153 return; 154 return;
154 } 155 }
155 156
156 // This ensures that notifications about the end of the previous 157 // This ensures that notifications about the end of the previous
157 // navigation are sent before notifications about the start of the 158 // navigation are sent before notifications about the start of the
158 // new navigation. 159 // new navigation.
159 render_frame_host->SetNavigationHandle(scoped_ptr<NavigationHandleImpl>()); 160 render_frame_host->SetNavigationHandle(scoped_ptr<NavigationHandleImpl>());
160 } 161 }
161 162
162 render_frame_host->SetNavigationHandle(NavigationHandleImpl::Create( 163 render_frame_host->SetNavigationHandle(NavigationHandleImpl::Create(
163 validated_url, render_frame_host->frame_tree_node())); 164 validated_url, render_frame_host->frame_tree_node(), navigation_start));
164 } 165 }
165 166
166 void NavigatorImpl::DidFailProvisionalLoadWithError( 167 void NavigatorImpl::DidFailProvisionalLoadWithError(
167 RenderFrameHostImpl* render_frame_host, 168 RenderFrameHostImpl* render_frame_host,
168 const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) { 169 const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) {
169 VLOG(1) << "Failed Provisional Load: " << params.url.possibly_invalid_spec() 170 VLOG(1) << "Failed Provisional Load: " << params.url.possibly_invalid_spec()
170 << ", error_code: " << params.error_code 171 << ", error_code: " << params.error_code
171 << ", error_description: " << params.error_description 172 << ", error_description: " << params.error_description
172 << ", showing_repost_interstitial: " << 173 << ", showing_repost_interstitial: " <<
173 params.showing_repost_interstitial 174 params.showing_repost_interstitial
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 entry.restore_type())); 335 entry.restore_type()));
335 // Create the navigation parameters. 336 // Create the navigation parameters.
336 FrameMsg_Navigate_Type::Value navigation_type = 337 FrameMsg_Navigate_Type::Value navigation_type =
337 GetNavigationType(controller_->GetBrowserContext(), entry, reload_type); 338 GetNavigationType(controller_->GetBrowserContext(), entry, reload_type);
338 LoFiState lofi_state = 339 LoFiState lofi_state =
339 (reload_type == 340 (reload_type ==
340 NavigationController::ReloadType::RELOAD_DISABLE_LOFI_MODE 341 NavigationController::ReloadType::RELOAD_DISABLE_LOFI_MODE
341 ? LOFI_OFF 342 ? LOFI_OFF
342 : LOFI_UNSPECIFIED); 343 : LOFI_UNSPECIFIED);
343 dest_render_frame_host->Navigate( 344 dest_render_frame_host->Navigate(
344 entry.ConstructCommonNavigationParams( 345 entry.ConstructCommonNavigationParams(dest_url, dest_referrer,
345 dest_url, dest_referrer, frame_entry, navigation_type, lofi_state), 346 frame_entry, navigation_type,
347 lofi_state, navigation_start),
346 entry.ConstructStartNavigationParams(), 348 entry.ConstructStartNavigationParams(),
347 entry.ConstructRequestNavigationParams( 349 entry.ConstructRequestNavigationParams(
348 frame_entry, navigation_start, is_same_document_history_load, 350 frame_entry, is_same_document_history_load,
349 frame_tree_node->has_committed_real_load(), 351 frame_tree_node->has_committed_real_load(),
350 controller_->GetPendingEntryIndex() == -1, 352 controller_->GetPendingEntryIndex() == -1,
351 controller_->GetIndexOfEntry(&entry), 353 controller_->GetIndexOfEntry(&entry),
352 controller_->GetLastCommittedEntryIndex(), 354 controller_->GetLastCommittedEntryIndex(),
353 controller_->GetEntryCount())); 355 controller_->GetEntryCount()));
354 } else { 356 } else {
355 // No need to navigate again. Just resume the deferred request. 357 // No need to navigate again. Just resume the deferred request.
356 dest_render_frame_host->GetProcess()->ResumeDeferredNavigation( 358 dest_render_frame_host->GetProcess()->ResumeDeferredNavigation(
357 entry.transferred_global_request_id()); 359 entry.transferred_global_request_id());
358 } 360 }
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 entry->set_should_replace_entry(pending_entry->should_replace_entry()); 954 entry->set_should_replace_entry(pending_entry->should_replace_entry());
953 entry->SetRedirectChain(pending_entry->GetRedirectChain()); 955 entry->SetRedirectChain(pending_entry->GetRedirectChain());
954 } 956 }
955 controller_->SetPendingEntry(entry.Pass()); 957 controller_->SetPendingEntry(entry.Pass());
956 if (delegate_) 958 if (delegate_)
957 delegate_->NotifyChangedNavigationState(content::INVALIDATE_TYPE_URL); 959 delegate_->NotifyChangedNavigationState(content::INVALIDATE_TYPE_URL);
958 } 960 }
959 } 961 }
960 962
961 } // namespace content 963 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698