| Index: chrome/renderer/extensions/extension_renderer_info.cc
|
| diff --git a/chrome/renderer/extensions/extension_renderer_info.cc b/chrome/renderer/extensions/extension_renderer_info.cc
|
| index 9abd4f545496cb6291ec9220b85095da92a90a8d..f4b61a1b3d4865389e038739585573b149cf2ef7 100644
|
| --- a/chrome/renderer/extensions/extension_renderer_info.cc
|
| +++ b/chrome/renderer/extensions/extension_renderer_info.cc
|
| @@ -29,6 +29,7 @@ void ExtensionRendererInfo::Update(const ViewMsg_ExtensionRendererInfo& info) {
|
| id_ = info.id;
|
| web_extent_ = info.web_extent;
|
| name_ = info.name;
|
| + location_ = info.location;
|
| icon_url_ = info.icon_url;
|
| }
|
|
|
| @@ -46,6 +47,18 @@ void ExtensionRendererInfo::UpdateExtensions(
|
| }
|
|
|
| // static
|
| +std::string ExtensionRendererInfo::GetIdByURL(const GURL& url) {
|
| + if (url.SchemeIs(chrome::kExtensionScheme))
|
| + return url.host();
|
| +
|
| + ExtensionRendererInfo* info = GetByURL(url);
|
| + if (!info)
|
| + return "";
|
| +
|
| + return info->id();
|
| +}
|
| +
|
| +// static
|
| ExtensionRendererInfo* ExtensionRendererInfo::GetByURL(const GURL& url) {
|
| if (url.SchemeIs(chrome::kExtensionScheme))
|
| return GetByID(url.host());
|
| @@ -84,3 +97,21 @@ ExtensionRendererInfo* ExtensionRendererInfo::GetByID(
|
| }
|
| return NULL;
|
| }
|
| +
|
| +// static
|
| +bool ExtensionRendererInfo::ExtensionBindingsAllowed(const GURL& url) {
|
| + if (url.SchemeIs(chrome::kExtensionScheme))
|
| + return true;
|
| +
|
| + if (!extensions_)
|
| + return false;
|
| +
|
| + std::vector<ExtensionRendererInfo>::iterator i = extensions_->begin();
|
| + for (; i != extensions_->end(); ++i) {
|
| + if (i->location_ == Extension::COMPONENT &&
|
| + i->web_extent_.ContainsURL(url))
|
| + return true;
|
| + }
|
| +
|
| + return false;
|
| +}
|
|
|