Index: extensions/renderer/dispatcher.cc |
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc |
index 71971591816fb86c06c8a44bc5cda5816f496628..2ffd8bb73e9c574c2843fd920a27055c7215b4a8 100644 |
--- a/extensions/renderer/dispatcher.cc |
+++ b/extensions/renderer/dispatcher.cc |
@@ -258,9 +258,10 @@ void Dispatcher::DidCreateScriptContext( |
.release(); |
script_context_set_.Add(context); |
- if (extension) { |
+ // Initialize origin permissions for content scripts, which can't be |
+ // initialized in |OnActivateExtension|. |
+ if (context_type == Feature::CONTENT_SCRIPT_CONTEXT) |
InitOriginPermissions(extension); |
- } |
{ |
scoped_ptr<ModuleSystem> module_system( |
@@ -496,6 +497,8 @@ void Dispatcher::WebKitInitialized() { |
++iter) { |
const Extension* extension = extensions_.GetByID(*iter); |
CHECK(extension); |
+ |
+ InitOriginPermissions(extension); |
} |
EnableCustomElementWhiteList(); |
@@ -552,6 +555,8 @@ void Dispatcher::OnActivateExtension(const std::string& extension_id) { |
if (is_webkit_initialized_) { |
extensions::DOMActivityLogger::AttachToWorld( |
extensions::DOMActivityLogger::kMainWorldId, extension_id); |
+ |
+ InitOriginPermissions(extension); |
} |
UpdateActiveExtensions(); |