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

Unified Diff: extensions/renderer/user_script_injector.cc

Issue 492133002: Renderer changes for wiring up shared memory with declarative injection (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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/user_script_injector.cc
diff --git a/extensions/renderer/user_script_injector.cc b/extensions/renderer/user_script_injector.cc
index 79361557d869f80a3bbc25321d039f8a4f696cab..b355cab4611495148af8488078eeb66a8f7072ca 100644
--- a/extensions/renderer/user_script_injector.cc
+++ b/extensions/renderer/user_script_injector.cc
@@ -56,10 +56,12 @@ base::LazyInstance<GreasemonkeyApiJsString> g_greasemonkey_api =
UserScriptInjector::UserScriptInjector(
const UserScript* script,
- UserScriptSet* script_list)
+ UserScriptSet* script_list,
+ bool is_declarative)
: script_(script),
script_id_(script_->id()),
extension_id_(script_->extension_id()),
+ is_declarative_(is_declarative),
user_script_set_observer_(this) {
user_script_set_observer_.Add(script_list);
}
@@ -67,6 +69,10 @@ UserScriptInjector::UserScriptInjector(
UserScriptInjector::~UserScriptInjector() {
}
+bool UserScriptInjector::is_declarative() const {
+ return is_declarative_;
+}
+
void UserScriptInjector::OnUserScriptsUpdated(
const std::set<std::string>& changed_extensions,
const std::vector<UserScript*>& scripts) {
@@ -132,13 +138,26 @@ PermissionsData::AccessType UserScriptInjector::CanExecuteOnFrame(
GURL effective_document_url = ScriptContext::GetEffectiveDocumentURL(
web_frame, web_frame->document().url(), script_->match_about_blank());
- return extension->permissions_data()->GetContentScriptAccess(
- extension,
- effective_document_url,
- top_url,
- tab_id,
- -1, // no process id
- NULL /* ignore error */);
+ // Declarative scripts use "page access" (from "permissions" section in
+ // manifest) whereas non-declarative scripts use custom
+ // "content script access" logic.
+ if (is_declarative_) {
+ return extension->permissions_data()->GetPageAccess(
+ extension,
+ effective_document_url,
+ top_url,
+ tab_id,
+ -1, // no process id
+ NULL /* ignore error */);
+ } else {
+ return extension->permissions_data()->GetContentScriptAccess(
+ extension,
+ effective_document_url,
+ top_url,
+ tab_id,
+ -1, // no process id
+ NULL /* ignore error */);
+ }
}
std::vector<blink::WebScriptSource> UserScriptInjector::GetJsSources(

Powered by Google App Engine
This is Rietveld 408576698