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

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

Issue 1156023006: 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: Move InitializeRenderFrameIfNeeded to RenderFrameHostTester and fix RlzLibTest code. Created 5 years, 6 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
« no previous file with comments | « content/test/test_render_frame_host.h ('k') | content/test/test_render_view_host.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 render_view_host, 49 render_view_host,
50 delegate, 50 delegate,
51 rwh_delegate, 51 rwh_delegate,
52 frame_tree, 52 frame_tree,
53 frame_tree_node, 53 frame_tree_node,
54 routing_id, 54 routing_id,
55 flags), 55 flags),
56 child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL), 56 child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL),
57 contents_mime_type_("text/html"), 57 contents_mime_type_("text/html"),
58 simulate_history_list_was_cleared_(false) { 58 simulate_history_list_was_cleared_(false) {
59 if (frame_tree_node_->IsMainFrame())
60 SetRenderFrameCreated(true);
61 } 59 }
62 60
63 TestRenderFrameHost::~TestRenderFrameHost() { 61 TestRenderFrameHost::~TestRenderFrameHost() {
64 SetRenderFrameCreated(false);
65 } 62 }
66 63
67 TestRenderViewHost* TestRenderFrameHost::GetRenderViewHost() { 64 TestRenderViewHost* TestRenderFrameHost::GetRenderViewHost() {
68 return static_cast<TestRenderViewHost*>( 65 return static_cast<TestRenderViewHost*>(
69 RenderFrameHostImpl::GetRenderViewHost()); 66 RenderFrameHostImpl::GetRenderViewHost());
70 } 67 }
71 68
72 MockRenderProcessHost* TestRenderFrameHost::GetProcess() { 69 MockRenderProcessHost* TestRenderFrameHost::GetProcess() {
73 return static_cast<MockRenderProcessHost*>(RenderFrameHostImpl::GetProcess()); 70 return static_cast<MockRenderProcessHost*>(RenderFrameHostImpl::GetProcess());
74 } 71 }
75 72
73 void TestRenderFrameHost::InitializeRenderFrameIfNeeded() {
74 if (!render_view_host()->IsRenderViewLive()) {
75 RenderViewHostTester::For(render_view_host())->CreateRenderView(
76 base::string16(), MSG_ROUTING_NONE, MSG_ROUTING_NONE, -1, false);
77 }
78 }
79
76 TestRenderFrameHost* TestRenderFrameHost::AppendChild( 80 TestRenderFrameHost* TestRenderFrameHost::AppendChild(
77 const std::string& frame_name) { 81 const std::string& frame_name) {
78 OnCreateChildFrame(GetProcess()->GetNextRoutingID(), 82 OnCreateChildFrame(GetProcess()->GetNextRoutingID(),
79 blink::WebTreeScopeType::Document, frame_name, 83 blink::WebTreeScopeType::Document, frame_name,
80 blink::WebSandboxFlags::None); 84 blink::WebSandboxFlags::None);
81 return static_cast<TestRenderFrameHost*>( 85 return static_cast<TestRenderFrameHost*>(
82 child_creation_observer_.last_created_frame()); 86 child_creation_observer_.last_created_frame());
83 } 87 }
84 88
85 void TestRenderFrameHost::SetContentsMimeType(const std::string& mime_type) { 89 void TestRenderFrameHost::SetContentsMimeType(const std::string& mime_type) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 void TestRenderFrameHost::SendNavigateWithTransitionAndResponseCode( 129 void TestRenderFrameHost::SendNavigateWithTransitionAndResponseCode(
126 int page_id, 130 int page_id,
127 int nav_entry_id, 131 int nav_entry_id,
128 bool did_create_new_entry, 132 bool did_create_new_entry,
129 const GURL& url, 133 const GURL& url,
130 ui::PageTransition transition, 134 ui::PageTransition transition,
131 int response_code) { 135 int response_code) {
132 // DidStartProvisionalLoad may delete the pending entry that holds |url|, 136 // DidStartProvisionalLoad may delete the pending entry that holds |url|,
133 // so we keep a copy of it to use in SendNavigateWithParameters. 137 // so we keep a copy of it to use in SendNavigateWithParameters.
134 GURL url_copy(url); 138 GURL url_copy(url);
135
136 // Ensure that the RenderFrameCreated notification has been sent to observers
137 // before navigating the frame.
138 SetRenderFrameCreated(true);
139
140 OnDidStartProvisionalLoadForFrame(url_copy); 139 OnDidStartProvisionalLoadForFrame(url_copy);
141 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, 140 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry,
142 url_copy, transition, url_copy, response_code, 0, 141 url_copy, transition, url_copy, response_code, 0,
143 std::vector<GURL>()); 142 std::vector<GURL>());
144 } 143 }
145 144
146 void TestRenderFrameHost::SendNavigateWithOriginalRequestURL( 145 void TestRenderFrameHost::SendNavigateWithOriginalRequestURL(
147 int page_id, 146 int page_id,
148 int nav_entry_id, 147 int nav_entry_id,
149 bool did_create_new_entry, 148 bool did_create_new_entry,
150 const GURL& url, 149 const GURL& url,
151 const GURL& original_request_url) { 150 const GURL& original_request_url) {
152 // Ensure that the RenderFrameCreated notification has been sent to observers
153 // before navigating the frame.
154 SetRenderFrameCreated(true);
155
156 OnDidStartProvisionalLoadForFrame(url); 151 OnDidStartProvisionalLoadForFrame(url);
157 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, url, 152 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, url,
158 ui::PAGE_TRANSITION_LINK, original_request_url, 153 ui::PAGE_TRANSITION_LINK, original_request_url,
159 200, 0, std::vector<GURL>()); 154 200, 0, std::vector<GURL>());
160 } 155 }
161 156
162 void TestRenderFrameHost::SendNavigateWithFile( 157 void TestRenderFrameHost::SendNavigateWithFile(
163 int page_id, 158 int page_id,
164 int nav_entry_id, 159 int nav_entry_id,
165 bool did_create_new_entry, 160 bool did_create_new_entry,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 bool did_create_new_entry, 234 bool did_create_new_entry,
240 const GURL& url) { 235 const GURL& url) {
241 SendRendererInitiatedNavigationRequest(url, false); 236 SendRendererInitiatedNavigationRequest(url, false);
242 PrepareForCommit(); 237 PrepareForCommit();
243 SendNavigate(page_id, 0, did_create_new_entry, url); 238 SendNavigate(page_id, 0, did_create_new_entry, url);
244 } 239 }
245 240
246 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest( 241 void TestRenderFrameHost::SendRendererInitiatedNavigationRequest(
247 const GURL& url, 242 const GURL& url,
248 bool has_user_gesture) { 243 bool has_user_gesture) {
244 // Since this is renderer-initiated navigation, the RenderFrame must be
245 // initialized. Do it if it hasn't happened yet.
246 InitializeRenderFrameIfNeeded();
247
249 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 248 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
250 switches::kEnableBrowserSideNavigation)) { 249 switches::kEnableBrowserSideNavigation)) {
251 BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL, 250 BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL,
252 has_user_gesture); 251 has_user_gesture);
253 CommonNavigationParams common_params; 252 CommonNavigationParams common_params;
254 common_params.url = url; 253 common_params.url = url;
255 common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault); 254 common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault);
256 common_params.transition = ui::PAGE_TRANSITION_LINK; 255 common_params.transition = ui::PAGE_TRANSITION_LINK;
257 OnBeginNavigation(common_params, begin_params, 256 OnBeginNavigation(common_params, begin_params,
258 scoped_refptr<ResourceRequestBody>()); 257 scoped_refptr<ResourceRequestBody>());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 url_loader->SimulateServerRedirect(redirect_url); 303 url_loader->SimulateServerRedirect(redirect_url);
305 304
306 // Simulate the network stack commit. 305 // Simulate the network stack commit.
307 scoped_refptr<ResourceResponse> response(new ResourceResponse); 306 scoped_refptr<ResourceResponse> response(new ResourceResponse);
308 // TODO(carlosk): ideally with PlzNavigate it should be possible someday to 307 // TODO(carlosk): ideally with PlzNavigate it should be possible someday to
309 // fully commit the navigation at this call to CallOnResponseStarted. 308 // fully commit the navigation at this call to CallOnResponseStarted.
310 url_loader->CallOnResponseStarted(response, MakeEmptyStream()); 309 url_loader->CallOnResponseStarted(response, MakeEmptyStream());
311 } 310 }
312 311
313 } // namespace content 312 } // namespace content
OLDNEW
« no previous file with comments | « content/test/test_render_frame_host.h ('k') | content/test/test_render_view_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698