OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/extensions/extension_service.h" | 5 #include "chrome/browser/extensions/extension_service.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 2147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2158 | 2158 |
2159 const Extension* ExtensionService::GetExtensionByWebExtent(const GURL& url) { | 2159 const Extension* ExtensionService::GetExtensionByWebExtent(const GURL& url) { |
2160 for (size_t i = 0; i < extensions_.size(); ++i) { | 2160 for (size_t i = 0; i < extensions_.size(); ++i) { |
2161 if (extensions_[i]->web_extent().MatchesURL(url)) | 2161 if (extensions_[i]->web_extent().MatchesURL(url)) |
2162 return extensions_[i]; | 2162 return extensions_[i]; |
2163 } | 2163 } |
2164 return NULL; | 2164 return NULL; |
2165 } | 2165 } |
2166 | 2166 |
2167 bool ExtensionService::ExtensionBindingsAllowed(const GURL& url) { | 2167 bool ExtensionService::ExtensionBindingsAllowed(const GURL& url) { |
2168 // Allow bindings for all packaged extension. | 2168 // Allow bindings for all packaged extensions. |
2169 if (GetExtensionByURL(url)) | 2169 // Note that GetExtensionByURL may return an Extension for hosted apps |
| 2170 // if the URL came from GetEffectiveURL. |
| 2171 const Extension* extension = GetExtensionByURL(url); |
| 2172 if (extension && extension->GetType() != Extension::TYPE_HOSTED_APP) |
2170 return true; | 2173 return true; |
2171 | 2174 |
2172 // Allow bindings for all component, hosted apps. | 2175 // Allow bindings for all component, hosted apps. |
2173 const Extension* extension = GetExtensionByWebExtent(url); | 2176 if (!extension) |
| 2177 extension = GetExtensionByWebExtent(url); |
2174 return (extension && extension->location() == Extension::COMPONENT); | 2178 return (extension && extension->location() == Extension::COMPONENT); |
2175 } | 2179 } |
2176 | 2180 |
2177 const Extension* ExtensionService::GetExtensionByOverlappingWebExtent( | 2181 const Extension* ExtensionService::GetExtensionByOverlappingWebExtent( |
2178 const URLPatternSet& extent) { | 2182 const URLPatternSet& extent) { |
2179 for (size_t i = 0; i < extensions_.size(); ++i) { | 2183 for (size_t i = 0; i < extensions_.size(); ++i) { |
2180 if (extensions_[i]->web_extent().OverlapsWith(extent)) | 2184 if (extensions_[i]->web_extent().OverlapsWith(extent)) |
2181 return extensions_[i]; | 2185 return extensions_[i]; |
2182 } | 2186 } |
2183 | 2187 |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2425 | 2429 |
2426 ExtensionService::NaClModuleInfoList::iterator | 2430 ExtensionService::NaClModuleInfoList::iterator |
2427 ExtensionService::FindNaClModule(const GURL& url) { | 2431 ExtensionService::FindNaClModule(const GURL& url) { |
2428 for (NaClModuleInfoList::iterator iter = nacl_module_list_.begin(); | 2432 for (NaClModuleInfoList::iterator iter = nacl_module_list_.begin(); |
2429 iter != nacl_module_list_.end(); ++iter) { | 2433 iter != nacl_module_list_.end(); ++iter) { |
2430 if (iter->url == url) | 2434 if (iter->url == url) |
2431 return iter; | 2435 return iter; |
2432 } | 2436 } |
2433 return nacl_module_list_.end(); | 2437 return nacl_module_list_.end(); |
2434 } | 2438 } |
OLD | NEW |