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

Unified Diff: chrome/renderer/extensions/event_bindings.cc

Issue 16032015: Extensions: pass ChromeV8Context around instead of v8::Handle. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 7 years, 6 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
« no previous file with comments | « chrome/renderer/extensions/event_bindings.h ('k') | chrome/renderer/extensions/extension_custom_bindings.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/extensions/event_bindings.cc
diff --git a/chrome/renderer/extensions/event_bindings.cc b/chrome/renderer/extensions/event_bindings.cc
index 6a25aaac44a0574e85e9d524ecd0c852b0ecb7ea..ce40cb7a9451545519f143ccba47d831c5f41490 100644
--- a/chrome/renderer/extensions/event_bindings.cc
+++ b/chrome/renderer/extensions/event_bindings.cc
@@ -70,9 +70,8 @@ base::LazyInstance<EventFilter> g_event_filter = LAZY_INSTANCE_INITIALIZER;
// TODO(koz): Merge this into EventBindings.
class ExtensionImpl : public ChromeV8Extension {
public:
- explicit ExtensionImpl(Dispatcher* dispatcher,
- v8::Handle<v8::Context> v8_context)
- : ChromeV8Extension(dispatcher, v8_context) {
+ explicit ExtensionImpl(Dispatcher* dispatcher, ChromeV8Context* context)
+ : ChromeV8Extension(dispatcher, context) {
RouteFunction("AttachEvent",
base::Bind(&ExtensionImpl::AttachEvent, base::Unretained(this)));
RouteFunction("DetachEvent",
@@ -98,14 +97,12 @@ class ExtensionImpl : public ChromeV8Extension {
if (args[0]->IsString()) {
std::string event_name = *v8::String::AsciiValue(args[0]->ToString());
- const ChromeV8ContextSet& context_set = dispatcher_->v8_context_set();
- ChromeV8Context* context = context_set.GetByV8Context(v8_context());
- CHECK(context);
+ CHECK(context());
- if (!dispatcher_->CheckContextAccessToExtensionAPI(event_name, context))
+ if (!dispatcher_->CheckContextAccessToExtensionAPI(event_name, context()))
return v8::Undefined();
- std::string extension_id = context->GetExtensionID();
+ std::string extension_id = context()->GetExtensionID();
EventListenerCounts& listener_counts =
g_listener_counts.Get()[extension_id];
if (++listener_counts[event_name] == 1) {
@@ -116,7 +113,7 @@ class ExtensionImpl : public ChromeV8Extension {
// This is called the first time the page has added a listener. Since
// the background page is the only lazy page, we know this is the first
// time this listener has been registered.
- if (IsLazyBackgroundPage(GetRenderView(), context->extension())) {
+ if (IsLazyBackgroundPage(GetRenderView(), context()->extension())) {
content::RenderThread::Get()->Send(
new ExtensionHostMsg_AddLazyListener(extension_id, event_name));
}
@@ -133,12 +130,10 @@ class ExtensionImpl : public ChromeV8Extension {
std::string event_name = *v8::String::AsciiValue(args[0]->ToString());
bool is_manual = args[1]->BooleanValue();
- const ChromeV8ContextSet& context_set = dispatcher_->v8_context_set();
- ChromeV8Context* context = context_set.GetByV8Context(v8_context());
- if (!context)
+ if (!context())
return v8::Undefined();
- std::string extension_id = context->GetExtensionID();
+ std::string extension_id = context()->GetExtensionID();
EventListenerCounts& listener_counts =
g_listener_counts.Get()[extension_id];
@@ -152,7 +147,7 @@ class ExtensionImpl : public ChromeV8Extension {
// last listener manually, then we assume that it is no longer interested
// in being awakened for this event.
if (is_manual && IsLazyBackgroundPage(GetRenderView(),
- context->extension())) {
+ context()->extension())) {
content::RenderThread::Get()->Send(
new ExtensionHostMsg_RemoveLazyListener(extension_id, event_name));
}
@@ -170,18 +165,16 @@ class ExtensionImpl : public ChromeV8Extension {
DCHECK(args[0]->IsString());
DCHECK(args[1]->IsObject());
- const ChromeV8ContextSet& context_set = dispatcher_->v8_context_set();
- ChromeV8Context* context = context_set.GetByV8Context(v8_context());
- DCHECK(context);
- if (!context)
+ DCHECK(context());
+ if (!context())
return v8::Integer::New(-1);
std::string event_name = *v8::String::AsciiValue(args[0]);
// This method throws an exception if it returns false.
- if (!dispatcher_->CheckContextAccessToExtensionAPI(event_name, context))
+ if (!dispatcher_->CheckContextAccessToExtensionAPI(event_name, context()))
return v8::Undefined();
- std::string extension_id = context->GetExtensionID();
+ std::string extension_id = context()->GetExtensionID();
if (extension_id.empty())
return v8::Integer::New(-1);
@@ -191,7 +184,7 @@ class ExtensionImpl : public ChromeV8Extension {
base::DictionaryValue* filter_dict = NULL;
base::Value* filter_value =
- converter->FromV8Value(args[1]->ToObject(), context->v8_context());
+ converter->FromV8Value(args[1]->ToObject(), context()->v8_context());
if (!filter_value)
return v8::Integer::New(-1);
if (!filter_value->GetAsDictionary(&filter_dict)) {
@@ -206,7 +199,7 @@ class ExtensionImpl : public ChromeV8Extension {
// Only send IPCs the first time a filter gets added.
if (AddFilter(event_name, extension_id, filter.get())) {
- bool lazy = IsLazyBackgroundPage(GetRenderView(), context->extension());
+ bool lazy = IsLazyBackgroundPage(GetRenderView(), context()->extension());
content::RenderThread::Get()->Send(
new ExtensionHostMsg_AddFilteredListener(extension_id, event_name,
*filter, lazy));
@@ -252,12 +245,10 @@ class ExtensionImpl : public ChromeV8Extension {
DCHECK(args[0]->IsInt32());
DCHECK(args[1]->IsBoolean());
bool is_manual = args[1]->BooleanValue();
- const ChromeV8ContextSet& context_set = dispatcher_->v8_context_set();
- ChromeV8Context* context = context_set.GetByV8Context(v8_context());
- if (!context)
+ if (!context())
return v8::Undefined();
- std::string extension_id = context->GetExtensionID();
+ std::string extension_id = context()->GetExtensionID();
if (extension_id.empty())
return v8::Undefined();
@@ -271,7 +262,7 @@ class ExtensionImpl : public ChromeV8Extension {
// Only send IPCs the last time a filter gets removed.
if (RemoveFilter(event_name, extension_id, event_matcher->value())) {
bool lazy = is_manual && IsLazyBackgroundPage(GetRenderView(),
- context->extension());
+ context()->extension());
content::RenderThread::Get()->Send(
new ExtensionHostMsg_RemoveFilteredListener(extension_id, event_name,
*event_matcher->value(),
@@ -331,7 +322,7 @@ class ExtensionImpl : public ChromeV8Extension {
// static
ChromeV8Extension* EventBindings::Create(Dispatcher* dispatcher,
- v8::Handle<v8::Context> context) {
+ ChromeV8Context* context) {
return new ExtensionImpl(dispatcher, context);
}
« no previous file with comments | « chrome/renderer/extensions/event_bindings.h ('k') | chrome/renderer/extensions/extension_custom_bindings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698