| Index: chrome/browser/devtools/devtools_ui_bindings.cc
|
| diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc
|
| index 2e4b82821715837a788af2289d2e51bc294e4516..f0e0d5fb82d98c752887cb4c1f9335cbfe021464 100644
|
| --- a/chrome/browser/devtools/devtools_ui_bindings.cc
|
| +++ b/chrome/browser/devtools/devtools_ui_bindings.cc
|
| @@ -1262,6 +1262,14 @@ void DevToolsUIBindings::AddDevToolsExtensionsToClient() {
|
| if (extensions::chrome_manifest_urls::GetDevToolsPage(extension.get())
|
| .is_empty())
|
| continue;
|
| +
|
| + // Each devtools extension will need to be able to run in the devtools
|
| + // process. Grant each specific extension's origin permission to load
|
| + // documents.
|
| + content::ChildProcessSecurityPolicy::GetInstance()->GrantOrigin(
|
| + web_contents_->GetMainFrame()->GetProcess()->GetID(),
|
| + url::Origin(extension->url()));
|
| +
|
| std::unique_ptr<base::DictionaryValue> extension_info(
|
| new base::DictionaryValue());
|
| extension_info->Set(
|
| @@ -1275,14 +1283,6 @@ void DevToolsUIBindings::AddDevToolsExtensionsToClient() {
|
| extensions::APIPermission::kExperimental)));
|
| results.Append(std::move(extension_info));
|
| }
|
| - if (!results.empty()) {
|
| - // At least one devtools extension exists; it will need to run in the
|
| - // devtools process. Grant it permission to load documents with
|
| - // chrome-extension:// origins.
|
| - content::ChildProcessSecurityPolicy::GetInstance()->GrantScheme(
|
| - web_contents_->GetMainFrame()->GetProcess()->GetID(),
|
| - extensions::kExtensionScheme);
|
| - }
|
|
|
| CallClientFunction("DevToolsAPI.addExtensions",
|
| &results, NULL, NULL);
|
|
|