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

Unified Diff: extensions/renderer/script_context.cc

Issue 498513002: Respect the clipboardRead and clipboardWrite permissions in content scripts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix extensions test compile Created 6 years, 3 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/script_context.cc
diff --git a/extensions/renderer/script_context.cc b/extensions/renderer/script_context.cc
index a1af29591c3b6f497d9222a6e68e21d8995d9366..0bdf302d27ac12a999997e5ce9551112c5250c78 100644
--- a/extensions/renderer/script_context.cc
+++ b/extensions/renderer/script_context.cc
@@ -33,24 +33,32 @@ namespace extensions {
ScriptContext::ScriptContext(const v8::Handle<v8::Context>& v8_context,
blink::WebFrame* web_frame,
const Extension* extension,
- Feature::Context context_type)
+ Feature::Context context_type,
+ const Extension* effective_extension,
+ Feature::Context effective_context_type)
: v8_context_(v8_context),
web_frame_(web_frame),
extension_(extension),
context_type_(context_type),
+ effective_extension_(effective_extension),
+ effective_context_type_(effective_context_type),
safe_builtins_(this),
isolate_(v8_context->GetIsolate()) {
VLOG(1) << "Created context:\n"
<< " extension id: " << GetExtensionID() << "\n"
<< " frame: " << web_frame_ << "\n"
<< " URL: " << GetURL() << "\n"
- << " context type: " << GetContextTypeDescription();
+ << " context type: " << GetContextTypeDescription() << "\n"
+ << " effective extension id: " << GetEffectiveExtensionID() << "\n"
+ << " effective context type: "
+ << GetEffectiveContextTypeDescription();
gin::PerContextData::From(v8_context)->set_runner(this);
}
ScriptContext::~ScriptContext() {
VLOG(1) << "Destroyed context for extension\n"
- << " extension id: " << GetExtensionID();
+ << " extension id: " << GetExtensionID() << "\n"
+ << " effective extension id: " << GetEffectiveExtensionID();
Invalidate();
}
@@ -67,6 +75,11 @@ const std::string& ScriptContext::GetExtensionID() const {
return extension_.get() ? extension_->id() : base::EmptyString();
}
+const std::string& ScriptContext::GetEffectiveExtensionID() const {
+ return effective_extension_.get() ? effective_extension_->id()
+ : base::EmptyString();
+}
+
content::RenderView* ScriptContext::GetRenderView() const {
if (web_frame_ && web_frame_->view())
return content::RenderView::FromWebView(web_frame_->view());
@@ -132,8 +145,10 @@ void ScriptContext::DispatchOnUnloadEvent() {
module_system_->CallModuleMethod("unload_event", "dispatch");
}
-std::string ScriptContext::GetContextTypeDescription() {
- switch (context_type_) {
+// static
+std::string ScriptContext::GetContextTypeDescription(
Devlin 2014/09/03 22:09:16 Unless this is used elsewhere, I'd probably move i
Marijn Kruisselbrink 2014/09/03 23:54:07 Done.
+ Feature::Context context_type) {
+ switch (context_type) {
case Feature::UNSPECIFIED_CONTEXT:
return "UNSPECIFIED";
case Feature::BLESSED_EXTENSION_CONTEXT:
@@ -153,6 +168,14 @@ std::string ScriptContext::GetContextTypeDescription() {
return std::string();
}
+std::string ScriptContext::GetContextTypeDescription() {
+ return GetContextTypeDescription(context_type_);
+}
+
+std::string ScriptContext::GetEffectiveContextTypeDescription() {
+ return GetContextTypeDescription(effective_context_type_);
+}
+
GURL ScriptContext::GetURL() const {
return web_frame() ? GetDataSourceURLForFrame(web_frame()) : GURL();
}

Powered by Google App Engine
This is Rietveld 408576698