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

Unified Diff: content/test/test_render_frame_host.cc

Issue 953503002: PlzNavigate: test updates post beforeUnload IPC refactor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor changes from CR comments. Created 5 years, 10 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 988681c5e04102aa575b5ce7bb88d64e62d5c034..a294a9ff01b097282fc1b0f91cc46753e5f9d70e 100644
--- a/content/test/test_render_frame_host.cc
+++ b/content/test/test_render_frame_host.cc
@@ -200,67 +200,84 @@ void TestRenderFrameHost::SendNavigateWithParameters(
OnDidCommitProvisionalLoad(msg);
}
-void TestRenderFrameHost::SendBeginNavigationWithURL(const GURL& url,
- bool has_user_gesture) {
- BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL,
- has_user_gesture);
- CommonNavigationParams common_params;
- common_params.url = url;
- common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault);
- common_params.transition = ui::PAGE_TRANSITION_LINK;
- OnBeginNavigation(common_params, begin_params,
- scoped_refptr<ResourceRequestBody>());
+void TestRenderFrameHost::SendRendererInitiatedNavigationRequest(
+ const GURL& url,
+ bool has_user_gesture) {
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableBrowserSideNavigation)) {
+ BeginNavigationParams begin_params("GET", std::string(), net::LOAD_NORMAL,
+ has_user_gesture);
+ CommonNavigationParams common_params;
+ common_params.url = url;
+ common_params.referrer = Referrer(GURL(), blink::WebReferrerPolicyDefault);
+ common_params.transition = ui::PAGE_TRANSITION_LINK;
+ OnBeginNavigation(common_params, begin_params,
+ scoped_refptr<ResourceRequestBody>());
+ }
}
void TestRenderFrameHost::DidDisownOpener() {
OnDidDisownOpener();
}
-void TestRenderFrameHost::PrepareForCommit(const GURL& url) {
+void TestRenderFrameHost::PrepareForCommit() {
+ PrepareForCommitInternal(nullptr);
+}
+
+void TestRenderFrameHost::PrepareForCommitWithServerRedirect(
+ const GURL& redirect_url) {
+ PrepareForCommitInternal(&redirect_url);
+}
+
+void TestRenderFrameHost::SendBeforeUnloadHandlersPresent(bool present) {
+ OnBeforeUnloadHandlersPresent(present);
+}
+
+void TestRenderFrameHost::SendUnloadHandlersPresent(bool present) {
+ OnUnloadHandlersPresent(present);
+}
+
+void TestRenderFrameHost::PrepareForCommitInternal(const GURL* redirect_url) {
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableBrowserSideNavigation)) {
+ // Non PlzNavigate
SendBeforeUnloadACK(true);
return;
}
// PlzNavigate
- // Simulate the network stack commit without any redirects.
NavigationRequest* request =
static_cast<NavigatorImpl*>(frame_tree_node_->navigator())
->GetNavigationRequestForNodeForTesting(frame_tree_node_);
+ CHECK(request);
- // We are simulating a renderer-initiated user-initiated navigation.
- if (!request) {
- SendBeginNavigationWithURL(url, true);
- request = static_cast<NavigatorImpl*>(frame_tree_node_->navigator())
- ->GetNavigationRequestForNodeForTesting(frame_tree_node_);
- }
- ASSERT_TRUE(request);
-
- // We may not have simulated the renderer response to the navigation request.
- // Do that now.
+ // Simulate a beforeUnload ACK from the renderer if the browser is waiting for
+ // it.
if (request->state() == NavigationRequest::WAITING_FOR_RENDERER_RESPONSE)
SendBeforeUnloadACK(true);
// We have already simulated the IO thread commit. Only the
// DidCommitProvisionalLoad from the renderer is missing.
- if (request->state() == NavigationRequest::RESPONSE_STARTED)
+ if (request->state() == NavigationRequest::RESPONSE_STARTED) {
+ // Checks if a server redirect was provided as in this case it will not be
+ // used and it was an error from the test author to a ask for a redirect.
clamy 2015/02/25 17:10:33 I would rephrase as something like: "If a server r
carlosk 2015/02/25 19:30:21 Done.
+ CHECK(!redirect_url);
return;
+ }
+
+ CHECK(request->state() == NavigationRequest::STARTED);
- ASSERT_TRUE(request->state() == NavigationRequest::STARTED);
TestNavigationURLLoader* url_loader =
static_cast<TestNavigationURLLoader*>(request->loader_for_testing());
- ASSERT_TRUE(url_loader);
- scoped_refptr<ResourceResponse> response(new ResourceResponse);
- url_loader->CallOnResponseStarted(response, MakeEmptyStream());
-}
+ CHECK(url_loader);
-void TestRenderFrameHost::SendBeforeUnloadHandlersPresent(bool present) {
- OnBeforeUnloadHandlersPresent(present);
-}
+ // If a |redirect_url| was provided, simulate a server redirect
+ if (redirect_url)
+ url_loader->SimulateServerRedirect(*redirect_url);
-void TestRenderFrameHost::SendUnloadHandlersPresent(bool present) {
- OnUnloadHandlersPresent(present);
+ // Simulate the network stack commit
+ scoped_refptr<ResourceResponse> response(new ResourceResponse);
+ url_loader->CallOnResponseStarted(response, MakeEmptyStream());
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698