OLD | NEW |
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/test/test_render_frame_host.h" | 5 #include "content/test/test_render_frame_host.h" |
6 | 6 |
7 #include "base/guid.h" | 7 #include "base/guid.h" |
8 #include "content/browser/frame_host/frame_tree.h" | 8 #include "content/browser/frame_host/frame_tree.h" |
9 #include "content/browser/frame_host/navigation_handle_impl.h" | 9 #include "content/browser/frame_host/navigation_handle_impl.h" |
10 #include "content/browser/frame_host/navigation_request.h" | 10 #include "content/browser/frame_host/navigation_request.h" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 OnDetach(); | 103 OnDetach(); |
104 } | 104 } |
105 | 105 |
106 void TestRenderFrameHost::SimulateNavigationStart(const GURL& url) { | 106 void TestRenderFrameHost::SimulateNavigationStart(const GURL& url) { |
107 if (IsBrowserSideNavigationEnabled()) { | 107 if (IsBrowserSideNavigationEnabled()) { |
108 SendRendererInitiatedNavigationRequest(url, false); | 108 SendRendererInitiatedNavigationRequest(url, false); |
109 return; | 109 return; |
110 } | 110 } |
111 | 111 |
112 OnDidStartLoading(true); | 112 OnDidStartLoading(true); |
113 OnDidStartProvisionalLoad(url, base::TimeTicks::Now()); | 113 OnDidStartProvisionalLoad(url, base::TimeTicks::Now(), NavigationGestureUser); |
114 SimulateWillStartRequest(ui::PAGE_TRANSITION_LINK); | 114 SimulateWillStartRequest(ui::PAGE_TRANSITION_LINK); |
115 } | 115 } |
116 | 116 |
117 void TestRenderFrameHost::SimulateRedirect(const GURL& new_url) { | 117 void TestRenderFrameHost::SimulateRedirect(const GURL& new_url) { |
118 if (IsBrowserSideNavigationEnabled()) { | 118 if (IsBrowserSideNavigationEnabled()) { |
119 NavigationRequest* request = frame_tree_node_->navigation_request(); | 119 NavigationRequest* request = frame_tree_node_->navigation_request(); |
120 TestNavigationURLLoader* url_loader = | 120 TestNavigationURLLoader* url_loader = |
121 static_cast<TestNavigationURLLoader*>(request->loader_for_testing()); | 121 static_cast<TestNavigationURLLoader*>(request->loader_for_testing()); |
122 CHECK(url_loader); | 122 CHECK(url_loader); |
123 url_loader->SimulateServerRedirect(new_url); | 123 url_loader->SimulateServerRedirect(new_url); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 | 192 |
193 FrameHostMsg_DidFailProvisionalLoadWithError_Params error_params; | 193 FrameHostMsg_DidFailProvisionalLoadWithError_Params error_params; |
194 error_params.error_code = error_code; | 194 error_params.error_code = error_code; |
195 error_params.url = url; | 195 error_params.url = url; |
196 OnDidFailProvisionalLoadWithError(error_params); | 196 OnDidFailProvisionalLoadWithError(error_params); |
197 } | 197 } |
198 | 198 |
199 void TestRenderFrameHost::SimulateNavigationErrorPageCommit() { | 199 void TestRenderFrameHost::SimulateNavigationErrorPageCommit() { |
200 CHECK(navigation_handle()); | 200 CHECK(navigation_handle()); |
201 GURL error_url = GURL(kUnreachableWebDataURL); | 201 GURL error_url = GURL(kUnreachableWebDataURL); |
202 OnDidStartProvisionalLoad(error_url, base::TimeTicks::Now()); | 202 OnDidStartProvisionalLoad(error_url, base::TimeTicks::Now(), |
| 203 NavigationGestureUser); |
203 FrameHostMsg_DidCommitProvisionalLoad_Params params; | 204 FrameHostMsg_DidCommitProvisionalLoad_Params params; |
204 params.nav_entry_id = 0; | 205 params.nav_entry_id = 0; |
205 params.did_create_new_entry = true; | 206 params.did_create_new_entry = true; |
206 params.url = navigation_handle()->GetURL(); | 207 params.url = navigation_handle()->GetURL(); |
207 params.transition = GetParent() ? ui::PAGE_TRANSITION_MANUAL_SUBFRAME | 208 params.transition = GetParent() ? ui::PAGE_TRANSITION_MANUAL_SUBFRAME |
208 : ui::PAGE_TRANSITION_LINK; | 209 : ui::PAGE_TRANSITION_LINK; |
209 params.was_within_same_page = false; | 210 params.was_within_same_page = false; |
210 params.url_is_unreachable = true; | 211 params.url_is_unreachable = true; |
211 params.page_state = PageState::CreateForTesting(navigation_handle()->GetURL(), | 212 params.page_state = PageState::CreateForTesting(navigation_handle()->GetURL(), |
212 false, nullptr, nullptr); | 213 false, nullptr, nullptr); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 const GURL& url, | 301 const GURL& url, |
301 ui::PageTransition transition, | 302 ui::PageTransition transition, |
302 int response_code, | 303 int response_code, |
303 const ModificationCallback& callback) { | 304 const ModificationCallback& callback) { |
304 if (!IsBrowserSideNavigationEnabled()) | 305 if (!IsBrowserSideNavigationEnabled()) |
305 OnDidStartLoading(true); | 306 OnDidStartLoading(true); |
306 | 307 |
307 // DidStartProvisionalLoad may delete the pending entry that holds |url|, | 308 // DidStartProvisionalLoad may delete the pending entry that holds |url|, |
308 // so we keep a copy of it to use below. | 309 // so we keep a copy of it to use below. |
309 GURL url_copy(url); | 310 GURL url_copy(url); |
310 OnDidStartProvisionalLoad(url_copy, base::TimeTicks::Now()); | 311 OnDidStartProvisionalLoad(url_copy, base::TimeTicks::Now(), |
| 312 NavigationGestureUser); |
311 SimulateWillStartRequest(transition); | 313 SimulateWillStartRequest(transition); |
312 | 314 |
313 FrameHostMsg_DidCommitProvisionalLoad_Params params; | 315 FrameHostMsg_DidCommitProvisionalLoad_Params params; |
314 params.nav_entry_id = nav_entry_id; | 316 params.nav_entry_id = nav_entry_id; |
315 params.url = url_copy; | 317 params.url = url_copy; |
316 params.transition = transition; | 318 params.transition = transition; |
317 params.should_update_history = true; | 319 params.should_update_history = true; |
318 params.did_create_new_entry = did_create_new_entry; | 320 params.did_create_new_entry = did_create_new_entry; |
319 params.should_replace_current_entry = should_replace_entry; | 321 params.should_replace_current_entry = should_replace_entry; |
320 params.gesture = NavigationGestureUser; | 322 params.gesture = NavigationGestureUser; |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 } | 391 } |
390 | 392 |
391 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest( | 393 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest( |
392 const GURL& url, | 394 const GURL& url, |
393 bool has_user_gesture) { | 395 bool has_user_gesture) { |
394 // Since this is renderer-initiated navigation, the RenderFrame must be | 396 // Since this is renderer-initiated navigation, the RenderFrame must be |
395 // initialized. Do it if it hasn't happened yet. | 397 // initialized. Do it if it hasn't happened yet. |
396 InitializeRenderFrameIfNeeded(); | 398 InitializeRenderFrameIfNeeded(); |
397 | 399 |
398 if (IsBrowserSideNavigationEnabled()) { | 400 if (IsBrowserSideNavigationEnabled()) { |
399 BeginNavigationParams begin_params(std::string(), net::LOAD_NORMAL, | 401 BeginNavigationParams begin_params(std::string(), net::LOAD_NORMAL, false, |
400 has_user_gesture, false, | |
401 REQUEST_CONTEXT_TYPE_HYPERLINK); | 402 REQUEST_CONTEXT_TYPE_HYPERLINK); |
402 CommonNavigationParams common_params; | 403 CommonNavigationParams common_params; |
403 common_params.url = url; | 404 common_params.url = url; |
404 common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault); | 405 common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault); |
405 common_params.transition = ui::PAGE_TRANSITION_LINK; | 406 common_params.transition = ui::PAGE_TRANSITION_LINK; |
| 407 common_params.gesture = |
| 408 has_user_gesture ? NavigationGestureUser : NavigationGestureAuto; |
406 OnBeginNavigation(common_params, begin_params); | 409 OnBeginNavigation(common_params, begin_params); |
407 } | 410 } |
408 } | 411 } |
409 | 412 |
410 void TestRenderFrameHost::DidChangeOpener(int opener_routing_id) { | 413 void TestRenderFrameHost::DidChangeOpener(int opener_routing_id) { |
411 OnDidChangeOpener(opener_routing_id); | 414 OnDidChangeOpener(opener_routing_id); |
412 } | 415 } |
413 | 416 |
414 void TestRenderFrameHost::DidEnforceInsecureRequestPolicy( | 417 void TestRenderFrameHost::DidEnforceInsecureRequestPolicy( |
415 blink::WebInsecureRequestPolicy policy) { | 418 blink::WebInsecureRequestPolicy policy) { |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 } | 481 } |
479 | 482 |
480 void TestRenderFrameHost::SimulateWillStartRequest( | 483 void TestRenderFrameHost::SimulateWillStartRequest( |
481 ui::PageTransition transition) { | 484 ui::PageTransition transition) { |
482 // PlzNavigate: NavigationHandle::WillStartRequest has already been called at | 485 // PlzNavigate: NavigationHandle::WillStartRequest has already been called at |
483 // this point. | 486 // this point. |
484 if (!navigation_handle() || IsBrowserSideNavigationEnabled()) | 487 if (!navigation_handle() || IsBrowserSideNavigationEnabled()) |
485 return; | 488 return; |
486 navigation_handle()->CallWillStartRequestForTesting( | 489 navigation_handle()->CallWillStartRequestForTesting( |
487 false /* is_post */, Referrer(GURL(), blink::WebReferrerPolicyDefault), | 490 false /* is_post */, Referrer(GURL(), blink::WebReferrerPolicyDefault), |
488 true /* user_gesture */, transition, false /* is_external_protocol */); | 491 transition, false /* is_external_protocol */); |
489 } | 492 } |
490 | 493 |
491 } // namespace content | 494 } // namespace content |
OLD | NEW |