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

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

Issue 240603003: Remove ChromeV8Extension & most of ChromeV8Context (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 6 years, 8 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: chrome/renderer/extensions/dispatcher.cc
diff --git a/chrome/renderer/extensions/dispatcher.cc b/chrome/renderer/extensions/dispatcher.cc
index 6f654dd993a5d1972ae7803aec3d214c01ea614e..f4b2f467d40b402dec05ef6d0ff23905e1843ddf 100644
--- a/chrome/renderer/extensions/dispatcher.cc
+++ b/chrome/renderer/extensions/dispatcher.cc
@@ -27,7 +27,6 @@
#include "chrome/renderer/extensions/app_runtime_custom_bindings.h"
#include "chrome/renderer/extensions/app_window_custom_bindings.h"
#include "chrome/renderer/extensions/chrome_v8_context.h"
-#include "chrome/renderer/extensions/chrome_v8_extension.h"
#include "chrome/renderer/extensions/dom_activity_logger.h"
#include "chrome/renderer/extensions/extension_helper.h"
#include "chrome/renderer/extensions/file_browser_handler_custom_bindings.h"
@@ -82,6 +81,7 @@
#include "extensions/renderer/request_sender.h"
#include "extensions/renderer/safe_builtins.h"
#include "extensions/renderer/script_context.h"
+#include "extensions/renderer/script_context_set.h"
#include "extensions/renderer/send_request_natives.h"
#include "extensions/renderer/set_icon_natives.h"
#include "extensions/renderer/utils_native_handler.h"
@@ -152,7 +152,7 @@ v8::Handle<v8::Object> AsObjectOrEmpty(v8::Handle<v8::Value> value) {
class TestFeaturesNativeHandler : public ObjectBackedNativeHandler {
public:
- explicit TestFeaturesNativeHandler(ChromeV8Context* context)
+ explicit TestFeaturesNativeHandler(ScriptContext* context)
: ObjectBackedNativeHandler(context) {
RouteFunction("GetAPIFeatures",
base::Bind(&TestFeaturesNativeHandler::GetAPIFeatures,
@@ -173,7 +173,7 @@ class TestFeaturesNativeHandler : public ObjectBackedNativeHandler {
class UserGesturesNativeHandler : public ObjectBackedNativeHandler {
public:
- explicit UserGesturesNativeHandler(ChromeV8Context* context)
+ explicit UserGesturesNativeHandler(ScriptContext* context)
: ObjectBackedNativeHandler(context) {
RouteFunction("IsProcessingUserGesture",
base::Bind(&UserGesturesNativeHandler::IsProcessingUserGesture,
@@ -217,7 +217,7 @@ class UserGesturesNativeHandler : public ObjectBackedNativeHandler {
class V8ContextNativeHandler : public ObjectBackedNativeHandler {
public:
- V8ContextNativeHandler(ChromeV8Context* context, Dispatcher* dispatcher)
+ V8ContextNativeHandler(ScriptContext* context, Dispatcher* dispatcher)
: ObjectBackedNativeHandler(context),
context_(context),
dispatcher_(dispatcher) {
@@ -251,18 +251,18 @@ class V8ContextNativeHandler : public ObjectBackedNativeHandler {
CHECK(args[0]->IsObject());
v8::Handle<v8::Context> v8_context =
v8::Handle<v8::Object>::Cast(args[0])->CreationContext();
- ChromeV8Context* context = dispatcher_->v8_context_set().GetByV8Context(
- v8_context);
+ ScriptContext* context =
+ dispatcher_->script_context_set().GetByV8Context(v8_context);
args.GetReturnValue().Set(context->module_system()->NewInstance());
}
- ChromeV8Context* context_;
+ ScriptContext* context_;
Dispatcher* dispatcher_;
};
class ChromeNativeHandler : public ObjectBackedNativeHandler {
public:
- explicit ChromeNativeHandler(ChromeV8Context* context)
+ explicit ChromeNativeHandler(ScriptContext* context)
: ObjectBackedNativeHandler(context) {
RouteFunction("GetChrome",
base::Bind(&ChromeNativeHandler::GetChrome, base::Unretained(this)));
@@ -275,7 +275,7 @@ class ChromeNativeHandler : public ObjectBackedNativeHandler {
class PrintNativeHandler : public ObjectBackedNativeHandler {
public:
- explicit PrintNativeHandler(ChromeV8Context* context)
+ explicit PrintNativeHandler(ScriptContext* context)
: ObjectBackedNativeHandler(context) {
RouteFunction("Print",
base::Bind(&PrintNativeHandler::Print,
@@ -427,11 +427,11 @@ void InstallWebstoreBindings(ModuleSystem* module_system,
// Calls a method |method_name| in a module |module_name| belonging to the
// module system from |context|. Intended as a callback target from
-// ChromeV8ContextSet::ForEach.
+// ScriptContextSet::ForEach.
void CallModuleMethod(const std::string& module_name,
const std::string& method_name,
const base::ListValue* args,
- ChromeV8Context* context) {
+ ScriptContext* context) {
v8::HandleScope handle_scope(context->isolate());
v8::Context::Scope context_scope(context->v8_context());
@@ -593,12 +593,15 @@ void Dispatcher::OnDispatchOnConnect(
source_tab.GetInteger("id", &sender_tab_id);
port_to_tab_id_map_[target_port_id] = sender_tab_id;
- MessagingBindings::DispatchOnConnect(
- v8_context_set_.GetAll(),
- target_port_id, channel_name, source_tab,
- info.source_id, info.target_id, info.source_url,
- tls_channel_id,
- NULL); // All render views.
+ MessagingBindings::DispatchOnConnect(script_context_set_.GetAll(),
not at google - send to devlin 2014/04/17 15:11:10 MessagingBindings is another class that should be
+ target_port_id,
+ channel_name,
+ source_tab,
+ info.source_id,
+ info.target_id,
+ info.source_url,
+ tls_channel_id,
+ NULL); // All render views.
}
void Dispatcher::OnDeliverMessage(int target_port_id,
@@ -611,19 +614,18 @@ void Dispatcher::OnDeliverMessage(int target_port_id,
it->second));
}
- MessagingBindings::DeliverMessage(
- v8_context_set_.GetAll(),
- target_port_id,
- message,
- NULL); // All render views.
+ MessagingBindings::DeliverMessage(script_context_set_.GetAll(),
+ target_port_id,
+ message,
+ NULL); // All render views.
}
void Dispatcher::OnDispatchOnDisconnect(int port_id,
const std::string& error_message) {
- MessagingBindings::DispatchOnDisconnect(
- v8_context_set_.GetAll(),
- port_id, error_message,
- NULL); // All render views.
+ MessagingBindings::DispatchOnDisconnect(script_context_set_.GetAll(),
+ port_id,
+ error_message,
+ NULL); // All render views.
}
void Dispatcher::OnLoaded(
@@ -658,11 +660,12 @@ void Dispatcher::OnUnloaded(const std::string& id) {
user_script_slave_->RemoveIsolatedWorld(id);
// Invalidate all of the contexts that were removed.
- // TODO(kalman): add an invalidation observer interface to ChromeV8Context.
- ChromeV8ContextSet::ContextSet removed_contexts =
- v8_context_set_.OnExtensionUnloaded(id);
- for (ChromeV8ContextSet::ContextSet::iterator it = removed_contexts.begin();
- it != removed_contexts.end(); ++it) {
+ // TODO(kalman): add an invalidation observer interface to ScriptContext.
+ ScriptContextSet::ContextSet removed_contexts =
+ script_context_set_.OnExtensionUnloaded(id);
+ for (ScriptContextSet::ContextSet::iterator it = removed_contexts.begin();
+ it != removed_contexts.end();
+ ++it) {
request_sender_->InvalidateSource(*it);
}
@@ -715,7 +718,7 @@ v8::Handle<v8::Object> Dispatcher::GetOrCreateObject(
return new_object;
}
-void Dispatcher::AddOrRemoveBindingsForContext(ChromeV8Context* context) {
+void Dispatcher::AddOrRemoveBindingsForContext(ScriptContext* context) {
v8::HandleScope handle_scope(context->isolate());
v8::Context::Scope context_scope(context->v8_context());
@@ -786,7 +789,7 @@ void Dispatcher::AddOrRemoveBindingsForContext(ChromeV8Context* context) {
v8::Handle<v8::Object> Dispatcher::GetOrCreateBindObjectIfAvailable(
const std::string& api_name,
std::string* bind_name,
- ChromeV8Context* context) {
+ ScriptContext* context) {
std::vector<std::string> split;
base::SplitString(api_name, '.', &split);
@@ -834,7 +837,7 @@ v8::Handle<v8::Object> Dispatcher::GetOrCreateBindObjectIfAvailable(
}
void Dispatcher::RegisterBinding(const std::string& api_name,
- ChromeV8Context* context) {
+ ScriptContext* context) {
std::string bind_name;
v8::Handle<v8::Object> bind_object =
GetOrCreateBindObjectIfAvailable(api_name, &bind_name, context);
@@ -886,7 +889,7 @@ void Dispatcher::RegisterBinding(const std::string& api_name,
// NOTE: please use the naming convention "foo_natives" for these.
void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system,
- ChromeV8Context* context) {
+ ScriptContext* context) {
module_system->RegisterNativeHandler(
"event_natives",
scoped_ptr<NativeHandler>(new EventBindings(this, context)));
@@ -902,8 +905,9 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system,
"setIcon",
scoped_ptr<NativeHandler>(
new SetIconNatives(request_sender_.get(), context)));
- module_system->RegisterNativeHandler("activityLogger",
- scoped_ptr<NativeHandler>(new APIActivityLogger(this, context)));
+ module_system->RegisterNativeHandler(
+ "activityLogger",
+ scoped_ptr<NativeHandler>(new APIActivityLogger(context)));
module_system->RegisterNativeHandler(
"renderViewObserverNatives",
scoped_ptr<NativeHandler>(new RenderViewObserverNatives(context)));
@@ -915,9 +919,9 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system,
// Custom bindings.
module_system->RegisterNativeHandler("app",
scoped_ptr<NativeHandler>(new AppBindings(this, context)));
- module_system->RegisterNativeHandler("app_runtime",
- scoped_ptr<NativeHandler>(
- new AppRuntimeCustomBindings(this, context)));
+ module_system->RegisterNativeHandler(
+ "app_runtime",
+ scoped_ptr<NativeHandler>(new AppRuntimeCustomBindings(context)));
module_system->RegisterNativeHandler("app_window_natives",
scoped_ptr<NativeHandler>(
new AppWindowCustomBindings(this, context)));
@@ -931,38 +935,38 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system,
module_system->RegisterNativeHandler(
"document_natives",
scoped_ptr<NativeHandler>(new DocumentCustomBindings(context)));
- module_system->RegisterNativeHandler("sync_file_system",
- scoped_ptr<NativeHandler>(
- new SyncFileSystemCustomBindings(this, context)));
- module_system->RegisterNativeHandler("file_browser_handler",
- scoped_ptr<NativeHandler>(new FileBrowserHandlerCustomBindings(
- this, context)));
- module_system->RegisterNativeHandler("file_browser_private",
- scoped_ptr<NativeHandler>(new FileBrowserPrivateCustomBindings(
- this, context)));
+ module_system->RegisterNativeHandler(
+ "sync_file_system",
+ scoped_ptr<NativeHandler>(new SyncFileSystemCustomBindings(context)));
+ module_system->RegisterNativeHandler(
+ "file_browser_handler",
+ scoped_ptr<NativeHandler>(new FileBrowserHandlerCustomBindings(context)));
+ module_system->RegisterNativeHandler(
+ "file_browser_private",
+ scoped_ptr<NativeHandler>(new FileBrowserPrivateCustomBindings(context)));
module_system->RegisterNativeHandler(
"i18n", scoped_ptr<NativeHandler>(new I18NCustomBindings(context)));
module_system->RegisterNativeHandler(
"id_generator",
scoped_ptr<NativeHandler>(new IdGeneratorCustomBindings(context)));
- module_system->RegisterNativeHandler("mediaGalleries",
- scoped_ptr<NativeHandler>(
- new MediaGalleriesCustomBindings(this, context)));
- module_system->RegisterNativeHandler("page_actions",
- scoped_ptr<NativeHandler>(
- new PageActionsCustomBindings(this, context)));
- module_system->RegisterNativeHandler("page_capture",
- scoped_ptr<NativeHandler>(
- new PageCaptureCustomBindings(this, context)));
+ module_system->RegisterNativeHandler(
+ "mediaGalleries",
+ scoped_ptr<NativeHandler>(new MediaGalleriesCustomBindings(context)));
+ module_system->RegisterNativeHandler(
+ "page_actions",
+ scoped_ptr<NativeHandler>(new PageActionsCustomBindings(this, context)));
+ module_system->RegisterNativeHandler(
+ "page_capture",
+ scoped_ptr<NativeHandler>(new PageCaptureCustomBindings(context)));
module_system->RegisterNativeHandler(
"pepper_request_natives",
scoped_ptr<NativeHandler>(new PepperRequestNatives(context)));
- module_system->RegisterNativeHandler("runtime",
- scoped_ptr<NativeHandler>(new RuntimeCustomBindings(this, context)));
- module_system->RegisterNativeHandler("tabs",
- scoped_ptr<NativeHandler>(new TabsCustomBindings(this, context)));
- module_system->RegisterNativeHandler("webstore",
- scoped_ptr<NativeHandler>(new WebstoreBindings(this, context)));
+ module_system->RegisterNativeHandler(
+ "runtime", scoped_ptr<NativeHandler>(new RuntimeCustomBindings(context)));
+ module_system->RegisterNativeHandler(
+ "tabs", scoped_ptr<NativeHandler>(new TabsCustomBindings(context)));
+ module_system->RegisterNativeHandler(
+ "webstore", scoped_ptr<NativeHandler>(new WebstoreBindings(context)));
#if defined(ENABLE_WEBRTC)
module_system->RegisterNativeHandler("cast_streaming_natives",
scoped_ptr<NativeHandler>(new CastStreamingNativeHandler(context)));
@@ -1137,9 +1141,9 @@ void Dispatcher::DidCreateScriptContext(
ScriptContext::GetDataSourceURLForFrame(frame),
frame->document().securityOrigin());
- ChromeV8Context* context =
+ ScriptContext* context =
new ChromeV8Context(v8_context, frame, extension, context_type);
- v8_context_set_.Add(context);
+ script_context_set_.Add(context);
if (extension)
InitOriginPermissions(extension, context_type);
@@ -1260,7 +1264,7 @@ void Dispatcher::DidCreateScriptContext(
}
}
- VLOG(1) << "Num tracked contexts: " << v8_context_set_.size();
+ VLOG(1) << "Num tracked contexts: " << script_context_set_.size();
}
std::string Dispatcher::GetExtensionID(const WebFrame* frame, int world_id) {
@@ -1290,16 +1294,16 @@ bool Dispatcher::IsWithinPlatformApp() {
void Dispatcher::WillReleaseScriptContext(
WebFrame* frame, v8::Handle<v8::Context> v8_context, int world_id) {
- ChromeV8Context* context = v8_context_set_.GetByV8Context(v8_context);
+ ScriptContext* context = script_context_set_.GetByV8Context(v8_context);
if (!context)
return;
context->DispatchOnUnloadEvent();
- // TODO(kalman): add an invalidation observer interface to ChromeV8Context.
+ // TODO(kalman): add an invalidation observer interface to ScriptContext.
request_sender_->InvalidateSource(context);
- v8_context_set_.Remove(context);
- VLOG(1) << "Num tracked contexts: " << v8_context_set_.size();
+ script_context_set_.Remove(context);
+ VLOG(1) << "Num tracked contexts: " << script_context_set_.size();
}
void Dispatcher::DidCreateDocumentElement(blink::WebFrame* frame) {
@@ -1414,7 +1418,7 @@ void Dispatcher::EnableCustomElementWhiteList() {
}
void Dispatcher::AddOrRemoveBindings(const std::string& extension_id) {
- v8_context_set().ForEach(
+ script_context_set().ForEach(
extension_id,
NULL, // all render views
base::Bind(&Dispatcher::AddOrRemoveBindingsForContext,
@@ -1652,13 +1656,12 @@ void Dispatcher::DispatchEvent(const std::string& extension_id,
// Needed for Windows compilation, since kEventBindings is declared extern.
const char* local_event_bindings = kEventBindings;
- v8_context_set_.ForEach(
- extension_id,
- NULL, // all render views
- base::Bind(&CallModuleMethod,
- local_event_bindings,
- kEventDispatchFunction,
- &args));
+ script_context_set_.ForEach(extension_id,
+ NULL, // all render views
+ base::Bind(&CallModuleMethod,
+ local_event_bindings,
+ kEventDispatchFunction,
+ &args));
}
void Dispatcher::InvokeModuleSystemMethod(
@@ -1672,7 +1675,7 @@ void Dispatcher::InvokeModuleSystemMethod(
if (user_gesture)
web_user_gesture.reset(new WebScopedUserGesture);
- v8_context_set_.ForEach(
+ script_context_set_.ForEach(
extension_id,
render_view,
base::Bind(&CallModuleMethod, module_name, function_name, &args));

Powered by Google App Engine
This is Rietveld 408576698