Chromium Code Reviews| 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..200e069efb67f1349d342a5af41f939381e02f41 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); |
| } |
| @@ -132,13 +134,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 |
|
Devlin
2014/08/25 22:31:06
nit: "user scripts" (not to be mistaken with, e.g.
Mark Dittmer
2014/08/26 17:53:58
Done.
|
| + // "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( |