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

Side by Side Diff: content/test/test_render_frame_host.cc

Issue 1151973005: Bring RFH/RVH unit tests closer to reality of how RF/RV are initialized (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix IsRenderFrameLive to be independent of RenderViewHost. Created 5 years, 7 months 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/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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 render_view_host, 48 render_view_host,
49 delegate, 49 delegate,
50 rwh_delegate, 50 rwh_delegate,
51 frame_tree, 51 frame_tree,
52 frame_tree_node, 52 frame_tree_node,
53 routing_id, 53 routing_id,
54 flags), 54 flags),
55 child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL), 55 child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL),
56 contents_mime_type_("text/html"), 56 contents_mime_type_("text/html"),
57 simulate_history_list_was_cleared_(false) { 57 simulate_history_list_was_cleared_(false) {
58 if (frame_tree_node_->IsMainFrame())
59 SetRenderFrameCreated(true);
60 } 58 }
61 59
62 TestRenderFrameHost::~TestRenderFrameHost() { 60 TestRenderFrameHost::~TestRenderFrameHost() {
63 SetRenderFrameCreated(false);
64 } 61 }
65 62
66 TestRenderViewHost* TestRenderFrameHost::GetRenderViewHost() { 63 TestRenderViewHost* TestRenderFrameHost::GetRenderViewHost() {
67 return static_cast<TestRenderViewHost*>( 64 return static_cast<TestRenderViewHost*>(
68 RenderFrameHostImpl::GetRenderViewHost()); 65 RenderFrameHostImpl::GetRenderViewHost());
69 } 66 }
70 67
71 MockRenderProcessHost* TestRenderFrameHost::GetProcess() { 68 MockRenderProcessHost* TestRenderFrameHost::GetProcess() {
72 return static_cast<MockRenderProcessHost*>(RenderFrameHostImpl::GetProcess()); 69 return static_cast<MockRenderProcessHost*>(RenderFrameHostImpl::GetProcess());
73 } 70 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 bool did_create_new_entry, 124 bool did_create_new_entry,
128 const GURL& url, 125 const GURL& url,
129 ui::PageTransition transition, 126 ui::PageTransition transition,
130 int response_code) { 127 int response_code) {
131 // DidStartProvisionalLoad may delete the pending entry that holds |url|, 128 // DidStartProvisionalLoad may delete the pending entry that holds |url|,
132 // so we keep a copy of it to use in SendNavigateWithParameters. 129 // so we keep a copy of it to use in SendNavigateWithParameters.
133 GURL url_copy(url); 130 GURL url_copy(url);
134 131
135 // Ensure that the RenderFrameCreated notification has been sent to observers 132 // Ensure that the RenderFrameCreated notification has been sent to observers
136 // before navigating the frame. 133 // before navigating the frame.
137 SetRenderFrameCreated(true); 134 //SetRenderFrameCreated(true);
ncarter (slow) 2015/05/26 21:44:14 Seems like debug cruft?
nasko 2015/05/26 22:25:49 Yes, indeed.
138 135
139 OnDidStartProvisionalLoadForFrame(url_copy); 136 OnDidStartProvisionalLoadForFrame(url_copy);
140 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, 137 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry,
141 url_copy, transition, url_copy, response_code, 0, 138 url_copy, transition, url_copy, response_code, 0,
142 std::vector<GURL>()); 139 std::vector<GURL>());
143 } 140 }
144 141
145 void TestRenderFrameHost::SendNavigateWithOriginalRequestURL( 142 void TestRenderFrameHost::SendNavigateWithOriginalRequestURL(
146 int page_id, 143 int page_id,
147 int nav_entry_id, 144 int nav_entry_id,
148 bool did_create_new_entry, 145 bool did_create_new_entry,
149 const GURL& url, 146 const GURL& url,
150 const GURL& original_request_url) { 147 const GURL& original_request_url) {
151 // Ensure that the RenderFrameCreated notification has been sent to observers 148 // Ensure that the RenderFrameCreated notification has been sent to observers
152 // before navigating the frame. 149 // before navigating the frame.
153 SetRenderFrameCreated(true); 150 //SetRenderFrameCreated(true);
ncarter (slow) 2015/05/26 21:44:14 Same here.
nasko 2015/05/26 22:25:49 Done.
154 151
155 OnDidStartProvisionalLoadForFrame(url); 152 OnDidStartProvisionalLoadForFrame(url);
156 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, url, 153 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, url,
157 ui::PAGE_TRANSITION_LINK, original_request_url, 154 ui::PAGE_TRANSITION_LINK, original_request_url,
158 200, 0, std::vector<GURL>()); 155 200, 0, std::vector<GURL>());
159 } 156 }
160 157
161 void TestRenderFrameHost::SendNavigateWithFile( 158 void TestRenderFrameHost::SendNavigateWithFile(
162 int page_id, 159 int page_id,
163 int nav_entry_id, 160 int nav_entry_id,
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 bool did_create_new_entry, 235 bool did_create_new_entry,
239 const GURL& url) { 236 const GURL& url) {
240 SendRendererInitiatedNavigationRequest(url, false); 237 SendRendererInitiatedNavigationRequest(url, false);
241 PrepareForCommit(); 238 PrepareForCommit();
242 SendNavigate(page_id, 0, did_create_new_entry, url); 239 SendNavigate(page_id, 0, did_create_new_entry, url);
243 } 240 }
244 241
245 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest( 242 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest(
246 const GURL& url, 243 const GURL& url,
247 bool has_user_gesture) { 244 bool has_user_gesture) {
245 // Since this is renderer-initiated navigation, the RenderFrame must be
246 // initialized. Do it if it hasn't happened yet.
247 InitializeRenderFrameIfNeeded();
ncarter (slow) 2015/05/26 21:44:14 This is very reasonable.
nasko 2015/05/26 22:25:49 Awesome!
248
248 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 249 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
249 switches::kEnableBrowserSideNavigation)) { 250 switches::kEnableBrowserSideNavigation)) {
250 BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL, 251 BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL,
251 has_user_gesture); 252 has_user_gesture);
252 CommonNavigationParams common_params; 253 CommonNavigationParams common_params;
253 common_params.url = url; 254 common_params.url = url;
254 common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault); 255 common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault);
255 common_params.transition = ui::PAGE_TRANSITION_LINK; 256 common_params.transition = ui::PAGE_TRANSITION_LINK;
256 OnBeginNavigation(common_params, begin_params, 257 OnBeginNavigation(common_params, begin_params,
257 scoped_refptr<ResourceRequestBody>()); 258 scoped_refptr<ResourceRequestBody>());
258 } 259 }
259 } 260 }
260 261
261 void TestRenderFrameHost::DidDisownOpener() { 262 void TestRenderFrameHost::DidDisownOpener() {
262 OnDidDisownOpener(); 263 OnDidDisownOpener();
263 } 264 }
264 265
266 void TestRenderFrameHost::InitializeRenderFrameIfNeeded() {
267 if (!render_view_host()->IsRenderViewLive()) {
268 RenderViewHostTester::For(render_view_host())->CreateRenderView(
269 base::string16(), MSG_ROUTING_NONE, MSG_ROUTING_NONE, -1, false);
270 }
271 }
272
265 void TestRenderFrameHost::PrepareForCommit() { 273 void TestRenderFrameHost::PrepareForCommit() {
266 PrepareForCommitWithServerRedirect(GURL()); 274 PrepareForCommitWithServerRedirect(GURL());
267 } 275 }
268 276
269 void TestRenderFrameHost::PrepareForCommitWithServerRedirect( 277 void TestRenderFrameHost::PrepareForCommitWithServerRedirect(
270 const GURL& redirect_url) { 278 const GURL& redirect_url) {
271 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( 279 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
272 switches::kEnableBrowserSideNavigation)) { 280 switches::kEnableBrowserSideNavigation)) {
273 // Non PlzNavigate 281 // Non PlzNavigate
274 if (IsWaitingForBeforeUnloadACK()) 282 if (IsWaitingForBeforeUnloadACK())
(...skipping 28 matching lines...) Expand all
303 url_loader->SimulateServerRedirect(redirect_url); 311 url_loader->SimulateServerRedirect(redirect_url);
304 312
305 // Simulate the network stack commit. 313 // Simulate the network stack commit.
306 scoped_refptr<ResourceResponse> response(new ResourceResponse); 314 scoped_refptr<ResourceResponse> response(new ResourceResponse);
307 // TODO(carlosk): ideally with PlzNavigate it should be possible someday to 315 // TODO(carlosk): ideally with PlzNavigate it should be possible someday to
308 // fully commit the navigation at this call to CallOnResponseStarted. 316 // fully commit the navigation at this call to CallOnResponseStarted.
309 url_loader->CallOnResponseStarted(response, MakeEmptyStream()); 317 url_loader->CallOnResponseStarted(response, MakeEmptyStream());
310 } 318 }
311 319
312 } // namespace content 320 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698