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

Unified Diff: chrome/browser/prerender/prerender_manager.cc

Issue 9416031: Prerendered pages are swapped in at browser::Navigate time. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit tests Created 8 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: chrome/browser/prerender/prerender_manager.cc
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index 8ab48092a24afb4f487dce067f9f4e06d7d870df..8b9a302f20cb5ba895c8470fe383e68544e5935b 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -35,7 +35,7 @@
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/render_messages.h"
+#include "chrome/common/prerender_messages.h"
#include "content/browser/renderer_host/render_view_host.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/devtools_agent_host_registry.h"
@@ -323,9 +323,9 @@ void PrerenderManager::CancelOmniboxPrerenders() {
}
bool PrerenderManager::MaybeUsePrerenderedPage(WebContents* web_contents,
- const GURL& url,
- const GURL& opener_url) {
+ const GURL& url) {
DCHECK(CalledOnValidThread());
+ DCHECK(!IsWebContentsPrerendering(web_contents));
RecordNavigation(url);
scoped_ptr<PrerenderContents> prerender_contents(
@@ -337,7 +337,8 @@ bool PrerenderManager::MaybeUsePrerenderedPage(WebContents* web_contents,
// window.opener property has the same origin as the url.
// NOTE: This is broken in the cases where the document domain is modified
// using the javascript property for "document.domain".
- if (opener_url.GetOrigin() == url.GetOrigin()) {
+ // TODO(cbentzel): I think the document.domain case is fixed now.
+ if (web_contents->GetOpenerOrigin() == url.GetOrigin()) {
prerender_contents.release()->Destroy(FINAL_STATUS_WINDOW_OPENER);
return false;
}
@@ -423,7 +424,7 @@ bool PrerenderManager::MaybeUsePrerenderedPage(WebContents* web_contents,
prerender_contents->set_final_status(FINAL_STATUS_USED);
new_render_view_host->Send(
- new ChromeViewMsg_SetIsPrerendering(new_render_view_host->routing_id(),
+ new PrerenderMsg_SetIsPrerendering(new_render_view_host->routing_id(),
false));
TabContentsWrapper* new_tab_contents =

Powered by Google App Engine
This is Rietveld 408576698