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/command_line.h" | 7 #include "base/command_line.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_request.h" | 9 #include "content/browser/frame_host/navigation_request.h" |
10 #include "content/browser/frame_host/navigator.h" | 10 #include "content/browser/frame_host/navigator.h" |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 params.page_state = PageState::CreateForTesting( | 197 params.page_state = PageState::CreateForTesting( |
198 url, | 198 url, |
199 false, | 199 false, |
200 file_path_for_history_item ? "data" : NULL, | 200 file_path_for_history_item ? "data" : NULL, |
201 file_path_for_history_item); | 201 file_path_for_history_item); |
202 | 202 |
203 FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), params); | 203 FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), params); |
204 OnDidCommitProvisionalLoad(msg); | 204 OnDidCommitProvisionalLoad(msg); |
205 } | 205 } |
206 | 206 |
| 207 void TestRenderFrameHost::NavigateAndCommitRendererInitiated(int page_id, |
| 208 const GURL& url) { |
| 209 SendRendererInitiatedNavigationRequest(url, false); |
| 210 PrepareForCommit(); |
| 211 SendNavigate(page_id, url); |
| 212 } |
| 213 |
207 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest( | 214 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest( |
208 const GURL& url, | 215 const GURL& url, |
209 bool has_user_gesture) { | 216 bool has_user_gesture) { |
210 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 217 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
211 switches::kEnableBrowserSideNavigation)) { | 218 switches::kEnableBrowserSideNavigation)) { |
212 BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL, | 219 BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL, |
213 has_user_gesture); | 220 has_user_gesture); |
214 CommonNavigationParams common_params; | 221 CommonNavigationParams common_params; |
215 common_params.url = url; | 222 common_params.url = url; |
216 common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault); | 223 common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault); |
217 common_params.transition = ui::PAGE_TRANSITION_LINK; | 224 common_params.transition = ui::PAGE_TRANSITION_LINK; |
218 OnBeginNavigation(common_params, begin_params, | 225 OnBeginNavigation(common_params, begin_params, |
219 scoped_refptr<ResourceRequestBody>()); | 226 scoped_refptr<ResourceRequestBody>()); |
220 } | 227 } |
221 } | 228 } |
222 | 229 |
223 void TestRenderFrameHost::DidDisownOpener() { | 230 void TestRenderFrameHost::DidDisownOpener() { |
224 OnDidDisownOpener(); | 231 OnDidDisownOpener(); |
225 } | 232 } |
226 | 233 |
227 void TestRenderFrameHost::PrepareForCommit() { | 234 void TestRenderFrameHost::PrepareForCommit() { |
228 PrepareForCommitWithServerRedirect(GURL()); | 235 PrepareForCommitWithServerRedirect(GURL()); |
229 } | 236 } |
230 | 237 |
231 void TestRenderFrameHost::PrepareForCommitWithServerRedirect( | 238 void TestRenderFrameHost::PrepareForCommitWithServerRedirect( |
232 const GURL& redirect_url) { | 239 const GURL& redirect_url) { |
233 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 240 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
234 switches::kEnableBrowserSideNavigation)) { | 241 switches::kEnableBrowserSideNavigation)) { |
235 // Non PlzNavigate | 242 // Non PlzNavigate |
236 SendBeforeUnloadACK(true); | 243 if (IsWaitingForBeforeUnloadACK()) |
| 244 SendBeforeUnloadACK(true); |
237 return; | 245 return; |
238 } | 246 } |
239 | 247 |
240 // PlzNavigate | 248 // PlzNavigate |
241 NavigationRequest* request = frame_tree_node_->navigation_request(); | 249 NavigationRequest* request = frame_tree_node_->navigation_request(); |
242 CHECK(request); | 250 CHECK(request); |
243 | 251 |
244 // Simulate a beforeUnload ACK from the renderer if the browser is waiting for | 252 // Simulate a beforeUnload ACK from the renderer if the browser is waiting for |
245 // it. If it runs it will update the request state. | 253 // it. If it runs it will update the request state. |
246 if (request->state() == NavigationRequest::WAITING_FOR_RENDERER_RESPONSE) | 254 if (request->state() == NavigationRequest::WAITING_FOR_RENDERER_RESPONSE) |
(...skipping 17 matching lines...) Expand all Loading... |
264 url_loader->SimulateServerRedirect(redirect_url); | 272 url_loader->SimulateServerRedirect(redirect_url); |
265 | 273 |
266 // Simulate the network stack commit. | 274 // Simulate the network stack commit. |
267 scoped_refptr<ResourceResponse> response(new ResourceResponse); | 275 scoped_refptr<ResourceResponse> response(new ResourceResponse); |
268 // TODO(carlosk): ideally with PlzNavigate it should be possible someday to | 276 // TODO(carlosk): ideally with PlzNavigate it should be possible someday to |
269 // fully commit the navigation at this call to CallOnResponseStarted. | 277 // fully commit the navigation at this call to CallOnResponseStarted. |
270 url_loader->CallOnResponseStarted(response, MakeEmptyStream()); | 278 url_loader->CallOnResponseStarted(response, MakeEmptyStream()); |
271 } | 279 } |
272 | 280 |
273 } // namespace content | 281 } // namespace content |
OLD | NEW |