Index: content/test/test_web_contents.cc |
diff --git a/content/test/test_web_contents.cc b/content/test/test_web_contents.cc |
index e4f4846f67b1e909fa6168de59350f80d62a87f6..9412ab1f059251e87c8009f1dbec5d097bf08b19 100644 |
--- a/content/test/test_web_contents.cc |
+++ b/content/test/test_web_contents.cc |
@@ -62,6 +62,11 @@ TestRenderFrameHost* TestWebContents::GetPendingMainFrame() const { |
GetRenderManager()->pending_frame_host()); |
} |
+TestRenderFrameHost* TestWebContents::GetSpeculativeMainFrame() const { |
+ return static_cast<TestRenderFrameHost*>( |
+ GetRenderManager()->speculative_render_frame_host_.get()); |
+} |
+ |
void TestWebContents::TestDidNavigate(RenderFrameHost* render_frame_host, |
int page_id, |
const GURL& url, |
@@ -171,7 +176,14 @@ void TestWebContents::CommitPendingNavigation() { |
// navigate. |
ProceedWithCrossSiteNavigation(); |
TestRenderFrameHost* old_rfh = GetMainFrame(); |
- TestRenderFrameHost* rfh = GetPendingMainFrame(); |
+ TestRenderFrameHost* rfh; |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableBrowserSideNavigation)) { |
+ rfh = GetSpeculativeMainFrame(); |
clamy
2014/12/19 13:35:57
This is one of the cases where having a method tha
carlosk
2014/12/29 16:40:16
Done.
|
+ } else { |
+ rfh = GetPendingMainFrame(); |
+ } |
+ |
if (!rfh) |
rfh = old_rfh; |
@@ -191,7 +203,11 @@ void TestWebContents::CommitPendingNavigation() { |
} |
void TestWebContents::ProceedWithCrossSiteNavigation() { |
- if (!GetPendingMainFrame()) |
+ // Note: At the moment in the navigation process when this method is called |
nasko
2014/12/20 00:09:09
nit: s/process/progress/
carlosk
2014/12/29 16:40:17
(comment was removed)
|
+ // (after the RenderFrameHost committed), the speculative RenderFrameHost, if |
nasko
2014/12/20 00:09:09
"(after the RenderFrameHost committed)" Is this ac
carlosk
2014/12/29 16:40:17
What I meant was that the call to RFH::CommitNavig
clamy
2014/12/29 17:36:21
In the current code path this function is called b
carlosk
2014/12/30 15:54:50
Acknowledged. What I said before was wrong...
|
+ // any, is already guaranteed to be the one that will be made active. That's |
+ // why this works. |
+ if (!GetPendingMainFrame() && !GetSpeculativeMainFrame()) |
clamy
2014/12/19 13:35:57
This function should only be called at the beginni
carlosk
2014/12/29 16:40:17
Done the 1st option as it eases things.
|
return; |
GetMainFrame()->SendBeforeUnloadACK(true); |
} |