Chromium Code Reviews| Index: chrome/renderer/extensions/dispatcher.cc |
| diff --git a/chrome/renderer/extensions/dispatcher.cc b/chrome/renderer/extensions/dispatcher.cc |
| index efec6f00ec2d69b78286151e5e256552e423d5b4..d056b8fecad779b37a4548b2ed7c13e5077356ac 100644 |
| --- a/chrome/renderer/extensions/dispatcher.cc |
| +++ b/chrome/renderer/extensions/dispatcher.cc |
| @@ -529,7 +529,6 @@ void Dispatcher::WebKitInitialized() { |
| iter != active_extension_ids_.end(); ++iter) { |
| const Extension* extension = extensions_.GetByID(*iter); |
| CHECK(extension); |
| - InitOriginPermissions(extension); |
| } |
| EnableCustomElementWhiteList(); |
| @@ -1133,6 +1132,10 @@ void Dispatcher::DidCreateScriptContext( |
| new ChromeV8Context(v8_context, frame, extension, context_type); |
| v8_context_set_.Add(context); |
| + if (extension) { |
| + InitOriginPermissions(extension, context_type); |
| + } |
|
not at google - send to devlin
2014/03/03 19:57:48
nit: no curlies.
|
| + |
| { |
| scoped_ptr<ModuleSystem> module_system(new ModuleSystem(context, |
| &source_map_)); |
| @@ -1341,17 +1344,18 @@ void Dispatcher::OnActivateExtension(const std::string& extension_id) { |
| UpdateActiveExtensions(); |
| if (is_webkit_initialized_) { |
| - InitOriginPermissions(extension); |
| DOMActivityLogger::AttachToWorld(DOMActivityLogger::kMainWorldId, |
| extension_id); |
| } |
| } |
| -void Dispatcher::InitOriginPermissions(const Extension* extension) { |
| +void Dispatcher::InitOriginPermissions(const Extension* extension, |
| + Feature::Context context_type) { |
| // TODO(jstritar): We should try to remove this special case. Also, these |
| // whitelist entries need to be updated when the kManagement permission |
| // changes. |
| - if (extension->HasAPIPermission(APIPermission::kManagement)) { |
| + if (context_type == Feature::BLESSED_EXTENSION_CONTEXT && |
| + extension->HasAPIPermission(APIPermission::kManagement)) { |
| WebSecurityPolicy::addOriginAccessWhitelistEntry( |
| extension->url(), |
| WebString::fromUTF8(content::kChromeUIScheme), |
| @@ -1362,7 +1366,7 @@ void Dispatcher::InitOriginPermissions(const Extension* extension) { |
| AddOrRemoveOriginPermissions( |
| UpdatedExtensionPermissionsInfo::ADDED, |
| extension, |
| - extension->GetActivePermissions()->explicit_hosts()); |
| + PermissionsData::GetEffectiveHostPermissions(extension)); |
| } |
| void Dispatcher::AddOrRemoveOriginPermissions( |