| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "chrome/browser/ui/browser.h" | 5 #include "chrome/browser/ui/browser.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <shellapi.h> | 9 #include <shellapi.h> |
| 10 #endif // defined(OS_WIN) | 10 #endif // defined(OS_WIN) |
| (...skipping 2231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2242 return false; | 2242 return false; |
| 2243 | 2243 |
| 2244 // No BackgroundContents allowed if BackgroundContentsService doesn't exist. | 2244 // No BackgroundContents allowed if BackgroundContentsService doesn't exist. |
| 2245 BackgroundContentsService* service = | 2245 BackgroundContentsService* service = |
| 2246 BackgroundContentsServiceFactory::GetForProfile(profile_); | 2246 BackgroundContentsServiceFactory::GetForProfile(profile_); |
| 2247 if (!service) | 2247 if (!service) |
| 2248 return false; | 2248 return false; |
| 2249 | 2249 |
| 2250 // Ensure that we're trying to open this from the extension's process. | 2250 // Ensure that we're trying to open this from the extension's process. |
| 2251 SiteInstance* opener_site_instance = opener_web_contents->GetSiteInstance(); | 2251 SiteInstance* opener_site_instance = opener_web_contents->GetSiteInstance(); |
| 2252 extensions::ProcessMap* process_map = extensions_service->process_map(); | 2252 extensions::ProcessMap* process_map = extensions::ProcessMap::Get(profile_); |
| 2253 if (!opener_site_instance->GetProcess() || | 2253 if (!opener_site_instance->GetProcess() || |
| 2254 !process_map->Contains( | 2254 !process_map->Contains( |
| 2255 extension->id(), opener_site_instance->GetProcess()->GetID())) { | 2255 extension->id(), opener_site_instance->GetProcess()->GetID())) { |
| 2256 return false; | 2256 return false; |
| 2257 } | 2257 } |
| 2258 | 2258 |
| 2259 // Only allow a single background contents per app. | 2259 // Only allow a single background contents per app. |
| 2260 bool allow_js_access = extensions::BackgroundInfo::AllowJSAccess(extension); | 2260 bool allow_js_access = extensions::BackgroundInfo::AllowJSAccess(extension); |
| 2261 BackgroundContents* existing = | 2261 BackgroundContents* existing = |
| 2262 service->GetAppBackgroundContents(base::ASCIIToUTF16(extension->id())); | 2262 service->GetAppBackgroundContents(base::ASCIIToUTF16(extension->id())); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2292 if (contents && !allow_js_access) { | 2292 if (contents && !allow_js_access) { |
| 2293 contents->web_contents()->GetController().LoadURL( | 2293 contents->web_contents()->GetController().LoadURL( |
| 2294 target_url, | 2294 target_url, |
| 2295 content::Referrer(), | 2295 content::Referrer(), |
| 2296 content::PAGE_TRANSITION_LINK, | 2296 content::PAGE_TRANSITION_LINK, |
| 2297 std::string()); // No extra headers. | 2297 std::string()); // No extra headers. |
| 2298 } | 2298 } |
| 2299 | 2299 |
| 2300 return contents != NULL; | 2300 return contents != NULL; |
| 2301 } | 2301 } |
| OLD | NEW |