Chromium Code Reviews| Index: chrome/browser/prerender/prerender_manager.cc |
| diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc |
| index 70f3cdf786704014d432e40e11055ab7a717e9c0..f80743a713d5b68efb805d46cb43e682164eebf2 100644 |
| --- a/chrome/browser/prerender/prerender_manager.cc |
| +++ b/chrome/browser/prerender/prerender_manager.cc |
| @@ -48,6 +48,7 @@ |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/common/prerender_messages.h" |
| +#include "chrome/common/prerender_types.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/devtools_agent_host.h" |
| #include "content/public/browser/navigation_controller.h" |
| @@ -320,9 +321,12 @@ PrerenderHandle* PrerenderManager::AddPrerenderFromLinkRelPrerender( |
| int process_id, |
| int route_id, |
| const GURL& url, |
| + const uint32 rel_types, |
| const content::Referrer& referrer, |
| const gfx::Size& size) { |
| - Origin origin = ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN; |
| + Origin origin = rel_types & PrerenderRelTypePrerender ? |
| + ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN : |
| + ORIGIN_LINK_REL_NEXT; |
|
davidben
2014/01/04 00:19:46
Nit: I'm personally paranoid about C precedence an
|
| SessionStorageNamespace* session_storage_namespace = NULL; |
| // Unit tests pass in a process_id == -1. |
| if (process_id != -1) { |
| @@ -334,8 +338,10 @@ PrerenderHandle* PrerenderManager::AddPrerenderFromLinkRelPrerender( |
| WebContents::FromRenderViewHost(source_render_view_host); |
| if (!source_web_contents) |
| return NULL; |
| - if (source_web_contents->GetURL().host() == url.host()) |
| + if (origin == ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN && |
| + source_web_contents->GetURL().host() == url.host()) { |
| origin = ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN; |
| + } |
| // TODO(ajwong): This does not correctly handle storage for isolated apps. |
| session_storage_namespace = |
| source_web_contents->GetController() |