Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3420)

Unified Diff: extensions/renderer/extension_injection_host.cc

Issue 934763003: Refactoring: de-couple Extensions from "script injection System" [render side]:3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@decouple_brower_isolated_world_routingid_user_script_1
Patch Set: Rebase. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/renderer/extension_injection_host.cc
diff --git a/extensions/renderer/extension_injection_host.cc b/extensions/renderer/extension_injection_host.cc
index 55ee1cc6b4dec047145471c9688321812c713ba1..7a27a08a778fcdfedca1d92d96bcbc86b68ebb4f 100644
--- a/extensions/renderer/extension_injection_host.cc
+++ b/extensions/renderer/extension_injection_host.cc
@@ -2,13 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "extensions/common/extension_set.h"
#include "extensions/common/manifest_handlers/csp_info.h"
#include "extensions/renderer/extension_injection_host.h"
namespace extensions {
ExtensionInjectionHost::ExtensionInjectionHost(
- const scoped_refptr<const Extension>& extension)
+ const Extension* extension)
: InjectionHost(HostID(HostID::EXTENSIONS, extension->id())),
extension_(extension) {
}
@@ -16,8 +17,18 @@ ExtensionInjectionHost::ExtensionInjectionHost(
ExtensionInjectionHost::~ExtensionInjectionHost() {
}
-const std::string& ExtensionInjectionHost::GetContentSecurityPolicy() const {
- return CSPInfo::GetContentSecurityPolicy(extension_.get());
+// static
+scoped_ptr<const ExtensionInjectionHost> ExtensionInjectionHost::Create(
+ const std::string& extension_id, const ExtensionSet* extensions) {
+ const Extension* extension = extensions->GetByID(extension_id);
+ if (!extension)
+ return scoped_ptr<const ExtensionInjectionHost>();
+ return scoped_ptr<const ExtensionInjectionHost>(
+ new ExtensionInjectionHost(extension));
+}
+
+std::string ExtensionInjectionHost::GetContentSecurityPolicy() const {
+ return CSPInfo::GetContentSecurityPolicy(extension_);
}
const GURL& ExtensionInjectionHost::url() const {
@@ -43,7 +54,7 @@ PermissionsData::AccessType ExtensionInjectionHost::CanExecuteOnFrame(
// "content script access" logic.
if (is_declarative) {
return extension_->permissions_data()->GetPageAccess(
- extension_.get(),
+ extension_,
document_url,
top_frame_url,
tab_id,
@@ -51,7 +62,7 @@ PermissionsData::AccessType ExtensionInjectionHost::CanExecuteOnFrame(
nullptr /* ignore error */);
} else {
return extension_->permissions_data()->GetContentScriptAccess(
- extension_.get(),
+ extension_,
document_url,
top_frame_url,
tab_id,
@@ -66,7 +77,7 @@ bool ExtensionInjectionHost::ShouldNotifyBrowserOfInjection() const {
// otherwise been affected by the scripts-require-action feature.
return extension_->permissions_data()->withheld_permissions()->IsEmpty() &&
PermissionsData::ScriptsMayRequireActionForExtension(
- extension_.get(),
+ extension_,
extension_->permissions_data()->active_permissions().get());
}

Powered by Google App Engine
This is Rietveld 408576698