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

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

Issue 2499313003: Set user_gesture bit at NavigationHandle creation time. (Closed)
Patch Set: rebase Created 4 years 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/render_frame_host_impl.h" 5 #include "content/browser/frame_host/render_frame_host_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 1092 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 base::TimeDelta::FromMilliseconds(10), 1103 base::TimeDelta::FromMilliseconds(10),
1104 base::TimeDelta::FromMinutes(10), 100); 1104 base::TimeDelta::FromMinutes(10), 100);
1105 } 1105 }
1106 // This message is only sent for top-level frames. TODO(avi): when frame tree 1106 // This message is only sent for top-level frames. TODO(avi): when frame tree
1107 // mirroring works correctly, add a check here to enforce it. 1107 // mirroring works correctly, add a check here to enforce it.
1108 delegate_->DocumentOnLoadCompleted(this); 1108 delegate_->DocumentOnLoadCompleted(this);
1109 } 1109 }
1110 1110
1111 void RenderFrameHostImpl::OnDidStartProvisionalLoad( 1111 void RenderFrameHostImpl::OnDidStartProvisionalLoad(
1112 const GURL& url, 1112 const GURL& url,
1113 const base::TimeTicks& navigation_start) { 1113 const base::TimeTicks& navigation_start,
1114 NavigationGesture gesture) {
1114 // TODO(clamy): Check if other navigation methods (OpenURL, 1115 // TODO(clamy): Check if other navigation methods (OpenURL,
1115 // DidFailProvisionalLoad, ...) should also be ignored if the RFH is no longer 1116 // DidFailProvisionalLoad, ...) should also be ignored if the RFH is no longer
1116 // active. 1117 // active.
1117 if (!is_active()) 1118 if (!is_active())
1118 return; 1119 return;
1119 frame_tree_node_->navigator()->DidStartProvisionalLoad(this, url, 1120 frame_tree_node_->navigator()->DidStartProvisionalLoad(
1120 navigation_start); 1121 this, url, navigation_start, gesture);
1121 } 1122 }
1122 1123
1123 void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( 1124 void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError(
1124 const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) { 1125 const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) {
1125 // TODO(clamy): Kill the renderer with RFH_FAIL_PROVISIONAL_LOAD_NO_HANDLE and 1126 // TODO(clamy): Kill the renderer with RFH_FAIL_PROVISIONAL_LOAD_NO_HANDLE and
1126 // return early if navigation_handle_ is null, once we prevent that case from 1127 // return early if navigation_handle_ is null, once we prevent that case from
1127 // happening in practice. 1128 // happening in practice.
1128 1129
1129 // Update the error code in the NavigationHandle of the navigation. 1130 // Update the error code in the NavigationHandle of the navigation.
1130 if (navigation_handle_) { 1131 if (navigation_handle_) {
(...skipping 1293 matching lines...) Expand 10 before | Expand all | Expand 10 after
2424 // Blink doesn't send throb notifications for JavaScript URLs, so it is not 2425 // Blink doesn't send throb notifications for JavaScript URLs, so it is not
2425 // done here either. 2426 // done here either.
2426 if (!common_params.url.SchemeIs(url::kJavaScriptScheme)) 2427 if (!common_params.url.SchemeIs(url::kJavaScriptScheme))
2427 OnDidStartLoading(true); 2428 OnDidStartLoading(true);
2428 } 2429 }
2429 2430
2430 void RenderFrameHostImpl::NavigateToInterstitialURL(const GURL& data_url) { 2431 void RenderFrameHostImpl::NavigateToInterstitialURL(const GURL& data_url) {
2431 DCHECK(data_url.SchemeIs(url::kDataScheme)); 2432 DCHECK(data_url.SchemeIs(url::kDataScheme));
2432 CommonNavigationParams common_params( 2433 CommonNavigationParams common_params(
2433 data_url, Referrer(), ui::PAGE_TRANSITION_LINK, 2434 data_url, Referrer(), ui::PAGE_TRANSITION_LINK,
2434 FrameMsg_Navigate_Type::NORMAL, false, false, base::TimeTicks::Now(), 2435 FrameMsg_Navigate_Type::NORMAL, NavigationGestureAuto, false, false,
2435 FrameMsg_UILoadMetricsReportType::NO_REPORT, GURL(), GURL(), LOFI_OFF, 2436 base::TimeTicks::Now(), FrameMsg_UILoadMetricsReportType::NO_REPORT,
2436 base::TimeTicks::Now(), "GET", nullptr); 2437 GURL(), GURL(), LOFI_OFF, base::TimeTicks::Now(), "GET", nullptr);
2437 if (IsBrowserSideNavigationEnabled()) { 2438 if (IsBrowserSideNavigationEnabled()) {
2438 CommitNavigation(nullptr, nullptr, common_params, RequestNavigationParams(), 2439 CommitNavigation(nullptr, nullptr, common_params, RequestNavigationParams(),
2439 false); 2440 false);
2440 } else { 2441 } else {
2441 Navigate(common_params, StartNavigationParams(), RequestNavigationParams()); 2442 Navigate(common_params, StartNavigationParams(), RequestNavigationParams());
2442 } 2443 }
2443 } 2444 }
2444 2445
2445 void RenderFrameHostImpl::Stop() { 2446 void RenderFrameHostImpl::Stop() {
2446 Send(new FrameMsg_Stop(routing_id_)); 2447 Send(new FrameMsg_Stop(routing_id_));
(...skipping 835 matching lines...) Expand 10 before | Expand all | Expand 10 after
3282 NavigationEntryImpl::FromNavigationEntry( 3283 NavigationEntryImpl::FromNavigationEntry(
3283 frame_tree_node()->navigator()->GetController()->GetPendingEntry()); 3284 frame_tree_node()->navigator()->GetController()->GetPendingEntry());
3284 if (pending_entry && pending_entry->GetUniqueID() == params.nav_entry_id) { 3285 if (pending_entry && pending_entry->GetUniqueID() == params.nav_entry_id) {
3285 pending_nav_entry_id = params.nav_entry_id; 3286 pending_nav_entry_id = params.nav_entry_id;
3286 is_renderer_initiated = pending_entry->is_renderer_initiated(); 3287 is_renderer_initiated = pending_entry->is_renderer_initiated();
3287 } 3288 }
3288 3289
3289 return NavigationHandleImpl::Create( 3290 return NavigationHandleImpl::Create(
3290 params.url, frame_tree_node_, is_renderer_initiated, 3291 params.url, frame_tree_node_, is_renderer_initiated,
3291 params.was_within_same_page, params.is_srcdoc, base::TimeTicks::Now(), 3292 params.was_within_same_page, params.is_srcdoc, base::TimeTicks::Now(),
3292 pending_nav_entry_id, false); // started_from_context_menu 3293 pending_nav_entry_id, params.gesture,
3294 false); // started_from_context_menu
3293 } 3295 }
3294 3296
3295 // Determine if the current NavigationHandle can be used. 3297 // Determine if the current NavigationHandle can be used.
3296 if (navigation_handle_ && navigation_handle_->GetURL() == params.url) { 3298 if (navigation_handle_ && navigation_handle_->GetURL() == params.url) {
3297 return std::move(navigation_handle_); 3299 return std::move(navigation_handle_);
3298 } 3300 }
3299 3301
3300 // If the URL does not match what the NavigationHandle expects, treat the 3302 // If the URL does not match what the NavigationHandle expects, treat the
3301 // commit as a new navigation. This can happen when loading a Data 3303 // commit as a new navigation. This can happen when loading a Data
3302 // navigation with LoadDataWithBaseURL. 3304 // navigation with LoadDataWithBaseURL.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
3334 // Reset any existing NavigationHandle. 3336 // Reset any existing NavigationHandle.
3335 navigation_handle_.reset(); 3337 navigation_handle_.reset();
3336 } 3338 }
3337 3339
3338 // There is no pending NavigationEntry in these cases, so pass 0 as the 3340 // There is no pending NavigationEntry in these cases, so pass 0 as the
3339 // pending_nav_entry_id. If the previous handle was a prematurely aborted 3341 // pending_nav_entry_id. If the previous handle was a prematurely aborted
3340 // navigation loaded via LoadDataWithBaseURL, propagate the entry id. 3342 // navigation loaded via LoadDataWithBaseURL, propagate the entry id.
3341 return NavigationHandleImpl::Create( 3343 return NavigationHandleImpl::Create(
3342 params.url, frame_tree_node_, is_renderer_initiated, 3344 params.url, frame_tree_node_, is_renderer_initiated,
3343 params.was_within_same_page, params.is_srcdoc, base::TimeTicks::Now(), 3345 params.was_within_same_page, params.is_srcdoc, base::TimeTicks::Now(),
3344 entry_id_for_data_nav, false); // started_from_context_menu 3346 entry_id_for_data_nav, params.gesture,
3347 false); // started_from_context_menu
3345 } 3348 }
3346 3349
3347 } // namespace content 3350 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.h ('k') | content/browser/loader/navigation_resource_throttle.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698