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

Unified 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: Add workaround to <webview> bug (492830) 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 side-by-side diff with in-line comments
Download patch
Index: content/test/test_render_frame_host.cc
diff --git a/content/test/test_render_frame_host.cc b/content/test/test_render_frame_host.cc
index 5b7aa539f126cecd07f555b5be58811909cf5a1f..de63d46f66dfeb7fdee2e234e8448dfe41ec4305 100644
--- a/content/test/test_render_frame_host.cc
+++ b/content/test/test_render_frame_host.cc
@@ -56,12 +56,9 @@ TestRenderFrameHost::TestRenderFrameHost(SiteInstance* site_instance,
child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL),
contents_mime_type_("text/html"),
simulate_history_list_was_cleared_(false) {
- if (frame_tree_node_->IsMainFrame())
- SetRenderFrameCreated(true);
}
TestRenderFrameHost::~TestRenderFrameHost() {
- SetRenderFrameCreated(false);
}
TestRenderViewHost* TestRenderFrameHost::GetRenderViewHost() {
@@ -132,11 +129,6 @@ void TestRenderFrameHost::SendNavigateWithTransitionAndResponseCode(
// DidStartProvisionalLoad may delete the pending entry that holds |url|,
// so we keep a copy of it to use in SendNavigateWithParameters.
GURL url_copy(url);
-
- // Ensure that the RenderFrameCreated notification has been sent to observers
- // before navigating the frame.
- SetRenderFrameCreated(true);
-
OnDidStartProvisionalLoadForFrame(url_copy);
SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry,
url_copy, transition, url_copy, response_code, 0,
@@ -149,10 +141,6 @@ void TestRenderFrameHost::SendNavigateWithOriginalRequestURL(
bool did_create_new_entry,
const GURL& url,
const GURL& original_request_url) {
- // Ensure that the RenderFrameCreated notification has been sent to observers
- // before navigating the frame.
- SetRenderFrameCreated(true);
-
OnDidStartProvisionalLoadForFrame(url);
SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, url,
ui::PAGE_TRANSITION_LINK, original_request_url,
@@ -246,6 +234,10 @@ void TestRenderFrameHost::NavigateAndCommitRendererInitiated(
void TestRenderFrameHost::SendRendererInitiatedNavigationRequest(
const GURL& url,
bool has_user_gesture) {
+ // Since this is renderer-initiated navigation, the RenderFrame must be
+ // initialized. Do it if it hasn't happened yet.
+ InitializeRenderFrameIfNeeded();
+
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableBrowserSideNavigation)) {
BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL,
@@ -263,6 +255,13 @@ void TestRenderFrameHost::DidDisownOpener() {
OnDidDisownOpener();
}
+void TestRenderFrameHost::InitializeRenderFrameIfNeeded() {
+ if (!render_view_host()->IsRenderViewLive()) {
+ RenderViewHostTester::For(render_view_host())->CreateRenderView(
+ base::string16(), MSG_ROUTING_NONE, MSG_ROUTING_NONE, -1, false);
+ }
+}
+
void TestRenderFrameHost::PrepareForCommit() {
PrepareForCommitWithServerRedirect(GURL());
}

Powered by Google App Engine
This is Rietveld 408576698