Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_web_contents.h" | 5 #include "content/test/test_web_contents.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "content/browser/browser_url_handler_impl.h" | 10 #include "content/browser/browser_url_handler_impl.h" |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 147 TestRenderFrameHost* old_rfh = GetMainFrame(); | 147 TestRenderFrameHost* old_rfh = GetMainFrame(); |
| 148 const NavigationEntry* entry = GetController().GetPendingEntry(); | 148 const NavigationEntry* entry = GetController().GetPendingEntry(); |
| 149 DCHECK(entry); | 149 DCHECK(entry); |
| 150 | 150 |
| 151 // Simulate the BeforeUnload ACK if necessary. | 151 // Simulate the BeforeUnload ACK if necessary. |
| 152 // PlzNavigate: the pending RFH is not created before the navigation commit, | 152 // PlzNavigate: the pending RFH is not created before the navigation commit, |
| 153 // so it is necessary to simulate the IO thread response here to commit in the | 153 // so it is necessary to simulate the IO thread response here to commit in the |
| 154 // proper renderer. | 154 // proper renderer. |
| 155 old_rfh->PrepareForCommit(entry->GetURL()); | 155 old_rfh->PrepareForCommit(entry->GetURL()); |
| 156 | 156 |
| 157 TestRenderFrameHost* rfh = GetPendingMainFrame(); | 157 TestRenderFrameHost* rfh = GetFutureMainFrame(); |
| 158 | |
| 158 if (!rfh) | 159 if (!rfh) |
| 159 rfh = old_rfh; | 160 rfh = old_rfh; |
| 160 | 161 |
| 161 int page_id = entry->GetPageID(); | 162 int page_id = entry->GetPageID(); |
| 162 if (page_id == -1) { | 163 if (page_id == -1) { |
| 163 // It's a new navigation, assign a never-seen page id to it. | 164 // It's a new navigation, assign a never-seen page id to it. |
| 164 page_id = GetMaxPageIDForSiteInstance(rfh->GetSiteInstance()) + 1; | 165 page_id = GetMaxPageIDForSiteInstance(rfh->GetSiteInstance()) + 1; |
| 165 } | 166 } |
| 166 | 167 |
| 167 rfh->SendNavigate(page_id, entry->GetURL()); | 168 rfh->SendNavigate(page_id, entry->GetURL()); |
| 168 // Simulate the SwapOut_ACK. This is needed when cross-site navigation | 169 // Simulate the SwapOut_ACK. This is needed when cross-site navigation |
| 169 // happens. | 170 // happens. |
| 170 if (old_rfh != rfh) | 171 if (old_rfh != rfh) |
| 171 old_rfh->OnSwappedOut(); | 172 old_rfh->OnSwappedOut(); |
| 172 } | 173 } |
| 173 | 174 |
| 174 void TestWebContents::ProceedWithCrossSiteNavigation() { | 175 void TestWebContents::ProceedWithCrossSiteNavigation() { |
| 175 if (!GetPendingMainFrame()) | 176 if (!GetPendingMainFrame() || |
|
clamy
2014/12/29 17:36:22
This return is no longer necessary, as following t
carlosk
2014/12/30 15:54:50
Done.
| |
| 177 base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| 178 switches::kEnableBrowserSideNavigation)) { | |
| 176 return; | 179 return; |
| 180 } | |
| 177 GetMainFrame()->SendBeforeUnloadACK(true); | 181 GetMainFrame()->SendBeforeUnloadACK(true); |
| 178 } | 182 } |
| 179 | 183 |
| 180 RenderViewHostDelegateView* TestWebContents::GetDelegateView() { | 184 RenderViewHostDelegateView* TestWebContents::GetDelegateView() { |
| 181 if (delegate_view_override_) | 185 if (delegate_view_override_) |
| 182 return delegate_view_override_; | 186 return delegate_view_override_; |
| 183 return WebContentsImpl::GetDelegateView(); | 187 return WebContentsImpl::GetDelegateView(); |
| 184 } | 188 } |
| 185 | 189 |
| 186 void TestWebContents::SetOpener(TestWebContents* opener) { | 190 void TestWebContents::SetOpener(TestWebContents* opener) { |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 250 bool user_gesture) { | 254 bool user_gesture) { |
| 251 } | 255 } |
| 252 | 256 |
| 253 void TestWebContents::ShowCreatedWidget(int route_id, | 257 void TestWebContents::ShowCreatedWidget(int route_id, |
| 254 const gfx::Rect& initial_pos) { | 258 const gfx::Rect& initial_pos) { |
| 255 } | 259 } |
| 256 | 260 |
| 257 void TestWebContents::ShowCreatedFullscreenWidget(int route_id) { | 261 void TestWebContents::ShowCreatedFullscreenWidget(int route_id) { |
| 258 } | 262 } |
| 259 | 263 |
| 264 TestRenderFrameHost* TestWebContents::GetSpeculativeMainFrame() const { | |
| 265 return static_cast<TestRenderFrameHost*>( | |
| 266 GetRenderManager()->speculative_render_frame_host_.get()); | |
| 267 } | |
| 268 | |
| 269 TestRenderFrameHost* TestWebContents::GetFutureMainFrame() const { | |
| 270 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| 271 switches::kEnableBrowserSideNavigation)) { | |
| 272 return GetSpeculativeMainFrame(); | |
| 273 } | |
| 274 return GetPendingMainFrame(); | |
| 275 } | |
| 276 | |
| 260 } // namespace content | 277 } // namespace content |
| OLD | NEW |