Index: chrome/browser/prerender/prerender_manager.cc |
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc |
index 93fff740e5d0ffa46c87dc7dcc2d50df4c89ec9d..d583be56c0bef50c6c73ddc42e8ecb6446a8d181 100644 |
--- a/chrome/browser/prerender/prerender_manager.cc |
+++ b/chrome/browser/prerender/prerender_manager.cc |
@@ -411,13 +411,23 @@ PrerenderContents* PrerenderManager::GetEntry(const GURL& url) { |
return GetEntryButNotSpecifiedTC(url, NULL); |
} |
-bool PrerenderManager::MaybeUsePreloadedPageOld(TabContents* tab_contents, |
- const GURL& url) { |
+bool PrerenderManager::MaybeUsePreloadedPageOld( |
+ TabContents* tab_contents, |
+ const GURL& url, |
+ const PrerenderManager::PrerenderedPageProperties& properties) { |
DCHECK(CalledOnValidThread()); |
scoped_ptr<PrerenderContents> prerender_contents(GetEntry(url)); |
if (prerender_contents.get() == NULL) |
return false; |
+ // Do not use the prerendered version if the opener window.property was |
+ // supposed to be set. |
+ if (properties.has_opener_set_) { |
+ LOG(ERROR) << "Not using prerendered page."; |
cbentzel
2011/05/04 17:10:15
Remove LOG(ERROR)
Shishir
2011/05/05 23:09:54
Done.
|
+ prerender_contents->set_final_status(FINAL_STATUS_WINDOW_OPENER); |
+ return false; |
+ } |
+ |
// If we are just in the control group (which can be detected by noticing |
// that prerendering hasn't even started yet), record that |tab_contents| now |
// would be showing a prerendered contents, but otherwise, don't do anything. |
@@ -497,11 +507,14 @@ bool PrerenderManager::MaybeUsePreloadedPageOld(TabContents* tab_contents, |
return true; |
} |
-bool PrerenderManager::MaybeUsePreloadedPage(TabContents* tab_contents, |
- const GURL& url) { |
+bool PrerenderManager::MaybeUsePreloadedPage( |
+ TabContents* tab_contents, |
+ const GURL& url, |
+ const PrerenderManager::PrerenderedPageProperties& properties) { |
if (!PrerenderContents::UseTabContents()) { |
LOG(INFO) << "Checking for prerender with LEGACY code\n"; |
- return PrerenderManager::MaybeUsePreloadedPageOld(tab_contents, url); |
+ return PrerenderManager::MaybeUsePreloadedPageOld(tab_contents, url, |
+ properties); |
} |
LOG(INFO) << "Checking for prerender with NEW code\n"; |
DCHECK(CalledOnValidThread()); |
@@ -510,6 +523,14 @@ bool PrerenderManager::MaybeUsePreloadedPage(TabContents* tab_contents, |
if (prerender_contents.get() == NULL) |
return false; |
+ // Do not use the prerendered version if the opener window.property was |
+ // supposed to be set. |
+ if (properties.has_opener_set_) { |
+ LOG(ERROR) << "Not using prerendered page."; |
cbentzel
2011/05/04 17:10:15
Remove LOG(ERROR)
Shishir
2011/05/05 23:09:54
Done.
|
+ prerender_contents->set_final_status(FINAL_STATUS_WINDOW_OPENER); |
+ return false; |
+ } |
+ |
// If we are just in the control group (which can be detected by noticing |
// that prerendering hasn't even started yet), record that |tab_contents| now |
// would be showing a prerendered contents, but otherwise, don't do anything. |