diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-08 01:13:18 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-08 01:13:18 +0000 |
commit | c2a4159fde2513225efe7267b416402287a709d4 (patch) | |
tree | f21dce2350f0fe5780f5f7a23087b88d88037a47 /chrome/renderer/extensions | |
parent | 4223df5774c08d900fe3fe0acedcd21d23020ba2 (diff) | |
download | chromium_src-c2a4159fde2513225efe7267b416402287a709d4.zip chromium_src-c2a4159fde2513225efe7267b416402287a709d4.tar.gz chromium_src-c2a4159fde2513225efe7267b416402287a709d4.tar.bz2 |
Revert r99696 and r99705 due to crashes.
BUG=95667
Review URL: http://codereview.chromium.org/7848009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100067 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions')
20 files changed, 161 insertions, 188 deletions
diff --git a/chrome/renderer/extensions/chrome_app_bindings.cc b/chrome/renderer/extensions/chrome_app_bindings.cc index 82f9f41..b52b7ca 100644 --- a/chrome/renderer/extensions/chrome_app_bindings.cc +++ b/chrome/renderer/extensions/chrome_app_bindings.cc @@ -12,8 +12,8 @@ #include "base/values.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension_set.h" -#include "chrome/renderer/extensions/extension_render_view_helper.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" +#include "chrome/renderer/extensions/extension_helper.h" #include "content/renderer/render_view.h" #include "content/renderer/v8_value_converter.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" @@ -59,8 +59,7 @@ static const char* const kAppExtensionName = "v8/ChromeApp"; class ChromeAppExtensionWrapper : public v8::Extension { public: - explicit ChromeAppExtensionWrapper( - ExtensionRendererContext* extension_renderer_context) : + explicit ChromeAppExtensionWrapper(ExtensionDispatcher* extension_dispatcher) : v8::Extension(kAppExtensionName, "var chrome;" "if (!chrome)" @@ -77,11 +76,11 @@ class ChromeAppExtensionWrapper : public v8::Extension { " this.getDetailsForFrame = GetDetailsForFrame;" " };" "}") { - extension_renderer_context_ = extension_renderer_context; + extension_dispatcher_ = extension_dispatcher; } ~ChromeAppExtensionWrapper() { - extension_renderer_context_ = NULL; + extension_dispatcher_ = NULL; } virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction( @@ -111,11 +110,10 @@ class ChromeAppExtensionWrapper : public v8::Extension { return v8::False(); const ::Extension* extension = - extension_renderer_context_->extensions()->GetByURL( - frame->document().url()); + extension_dispatcher_->extensions()->GetByURL(frame->document().url()); bool has_web_extent = extension && - extension_renderer_context_->IsApplicationActive(extension->id()); + extension_dispatcher_->IsApplicationActive(extension->id()); return v8::Boolean::New(has_web_extent); } @@ -129,8 +127,7 @@ class ChromeAppExtensionWrapper : public v8::Extension { return v8::Undefined(); string16 error; - ExtensionRenderViewHelper* helper = - ExtensionRenderViewHelper::Get(render_view); + ExtensionHelper* helper = ExtensionHelper::Get(render_view); if (!helper->InstallWebApplicationUsingDefinitionFile(frame, &error)) v8::ThrowException(v8::String::New(UTF16ToUTF8(error).c_str())); @@ -169,8 +166,7 @@ class ChromeAppExtensionWrapper : public v8::Extension { static v8::Handle<v8::Value> GetDetailsForFrameImpl(const WebFrame* frame) { const ::Extension* extension = - extension_renderer_context_->extensions()->GetByURL( - frame->document().url()); + extension_dispatcher_->extensions()->GetByURL(frame->document().url()); if (!extension) return v8::Null(); @@ -182,15 +178,14 @@ class ChromeAppExtensionWrapper : public v8::Extension { frame->mainWorldScriptContext()); } - static ExtensionRendererContext* extension_renderer_context_; + static ExtensionDispatcher* extension_dispatcher_; }; -ExtensionRendererContext* - ChromeAppExtensionWrapper::extension_renderer_context_; +ExtensionDispatcher* ChromeAppExtensionWrapper::extension_dispatcher_; v8::Extension* ChromeAppExtension::Get( - ExtensionRendererContext* extension_renderer_context) { - return new ChromeAppExtensionWrapper(extension_renderer_context); + ExtensionDispatcher* extension_dispatcher) { + return new ChromeAppExtensionWrapper(extension_dispatcher); } } // namespace extensions_v8 diff --git a/chrome/renderer/extensions/chrome_app_bindings.h b/chrome/renderer/extensions/chrome_app_bindings.h index e58ebd8..8e7da1b 100644 --- a/chrome/renderer/extensions/chrome_app_bindings.h +++ b/chrome/renderer/extensions/chrome_app_bindings.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -12,7 +12,7 @@ #define CHROME_RENDERER_EXTENSIONS_CHROME_APP_BINDINGS_H_ #pragma once -class ExtensionRendererContext; +class ExtensionDispatcher; namespace v8 { class Extension; @@ -22,8 +22,7 @@ namespace extensions_v8 { class ChromeAppExtension { public: - static v8::Extension* Get( - ExtensionRendererContext* extension_renderer_context); + static v8::Extension* Get(ExtensionDispatcher* extension_dispatcher); }; } // namespace extensions_v8 diff --git a/chrome/renderer/extensions/chrome_webstore_bindings.cc b/chrome/renderer/extensions/chrome_webstore_bindings.cc index ecc4d57..74e3f95 100644 --- a/chrome/renderer/extensions/chrome_webstore_bindings.cc +++ b/chrome/renderer/extensions/chrome_webstore_bindings.cc @@ -7,7 +7,7 @@ #include "base/lazy_instance.h" #include "base/string_util.h" #include "chrome/common/extensions/extension.h" -#include "chrome/renderer/extensions/extension_render_view_helper.h" +#include "chrome/renderer/extensions/extension_helper.h" #include "content/renderer/render_view.h" #include "googleurl/src/gurl.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" @@ -162,8 +162,7 @@ class ExtensionImpl : public v8::Extension { } } - ExtensionRenderViewHelper* helper = - ExtensionRenderViewHelper::Get(render_view); + ExtensionHelper* helper = ExtensionHelper::Get(render_view); helper->InlineWebstoreInstall( install_id, webstore_item_id, frame->document().url()); return v8::Undefined(); diff --git a/chrome/renderer/extensions/event_bindings.cc b/chrome/renderer/extensions/event_bindings.cc index 679d85c..ed65e3f 100644 --- a/chrome/renderer/extensions/event_bindings.cc +++ b/chrome/renderer/extensions/event_bindings.cc @@ -15,8 +15,8 @@ #include "chrome/renderer/extensions/event_bindings.h" #include "chrome/renderer/extensions/extension_base.h" #include "chrome/renderer/extensions/extension_bindings_context.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_process_bindings.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" #include "chrome/renderer/extensions/js_only_v8_extensions.h" #include "chrome/renderer/extensions/user_script_slave.h" #include "content/renderer/render_thread.h" @@ -59,10 +59,10 @@ static EventListenerCounts& GetListenerCounts(const std::string& extension_id) { class ExtensionImpl : public ExtensionBase { public: - explicit ExtensionImpl(ExtensionRendererContext* context) + explicit ExtensionImpl(ExtensionDispatcher* dispatcher) : ExtensionBase(EventBindings::kName, GetStringResource(IDR_EVENT_BINDINGS_JS), - 0, NULL, context) { + 0, NULL, dispatcher) { } ~ExtensionImpl() {} @@ -167,8 +167,8 @@ class ExtensionImpl : public ExtensionBase { const char* EventBindings::kName = "chrome/EventBindings"; -v8::Extension* EventBindings::Get(ExtensionRendererContext* context) { - static v8::Extension* extension = new ExtensionImpl(context); +v8::Extension* EventBindings::Get(ExtensionDispatcher* dispatcher) { + static v8::Extension* extension = new ExtensionImpl(dispatcher); return extension; } diff --git a/chrome/renderer/extensions/event_bindings.h b/chrome/renderer/extensions/event_bindings.h index bdf9c70..40e6d2b 100644 --- a/chrome/renderer/extensions/event_bindings.h +++ b/chrome/renderer/extensions/event_bindings.h @@ -6,7 +6,7 @@ #define CHROME_RENDERER_EXTENSIONS_EVENT_BINDINGS_H_ #pragma once -class ExtensionRendererContext; +class ExtensionDispatcher; class RenderThreadBase; namespace v8 { @@ -18,7 +18,7 @@ class EventBindings { public: static const char* kName; // The v8::Extension name, for dependencies. - static v8::Extension* Get(ExtensionRendererContext* context); + static v8::Extension* Get(ExtensionDispatcher* dispatcher); // Allow RenderThread to be mocked out. static void SetRenderThread(RenderThreadBase* thread); diff --git a/chrome/renderer/extensions/extension_base.cc b/chrome/renderer/extensions/extension_base.cc index 0529a51..002c3b1 100644 --- a/chrome/renderer/extensions/extension_base.cc +++ b/chrome/renderer/extensions/extension_base.cc @@ -10,7 +10,7 @@ #include "base/string_util.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_set.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" #include "content/renderer/render_view.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" @@ -69,7 +69,7 @@ const Extension* ExtensionBase::GetExtensionForCurrentRenderView() const { return NULL; // this can happen as a tab is closing. GURL url = renderview->webview()->mainFrame()->document().url(); - const ExtensionSet* extensions = extension_renderer_context_->extensions(); + const ExtensionSet* extensions = extension_dispatcher_->extensions(); if (!extensions->ExtensionBindingsAllowed(url)) return NULL; @@ -80,7 +80,7 @@ bool ExtensionBase::CheckPermissionForCurrentRenderView( const std::string& function_name) const { const ::Extension* extension = GetExtensionForCurrentRenderView(); if (extension && - extension_renderer_context_->IsExtensionActive(extension->id()) && + extension_dispatcher_->IsExtensionActive(extension->id()) && extension->HasAPIPermission(function_name)) return true; diff --git a/chrome/renderer/extensions/extension_base.h b/chrome/renderer/extensions/extension_base.h index 0aa2cef..9e9efb1 100644 --- a/chrome/renderer/extensions/extension_base.h +++ b/chrome/renderer/extensions/extension_base.h @@ -12,7 +12,7 @@ #include <string> class Extension; -class ExtensionRendererContext; +class ExtensionDispatcher; class RenderView; namespace WebKit { @@ -29,9 +29,9 @@ class ExtensionBase : public v8::Extension { const char* source, int dep_count, const char** deps, - ExtensionRendererContext* extension_renderer_context) + ExtensionDispatcher* extension_dispatcher) : v8::Extension(name, source, dep_count, deps), - extension_renderer_context_(extension_renderer_context) { + extension_dispatcher_(extension_dispatcher) { } // Derived classes should call this at the end of their implementation in @@ -41,9 +41,7 @@ class ExtensionBase : public v8::Extension { GetNativeFunction(v8::Handle<v8::String> name); // TODO(jstritar): Used for testing http://crbug.com/91582. Remove when done. - ExtensionRendererContext* extension_renderer_context() { - return extension_renderer_context_; - } + ExtensionDispatcher* extension_dispatcher() { return extension_dispatcher_; } // Returns a hidden variable for use by the bindings in the specified context // that is unreachable by the page for the current context. @@ -75,7 +73,7 @@ class ExtensionBase : public v8::Extension { // Returns the chromeHidden object for the current context. static v8::Handle<v8::Value> GetChromeHidden(const v8::Arguments& args); - ExtensionRendererContext* extension_renderer_context_; + ExtensionDispatcher* extension_dispatcher_; private: // Helper to print from bindings javascript. diff --git a/chrome/renderer/extensions/extension_bindings_context.cc b/chrome/renderer/extensions/extension_bindings_context.cc index de96c63..e6dad05 100644 --- a/chrome/renderer/extensions/extension_bindings_context.cc +++ b/chrome/renderer/extensions/extension_bindings_context.cc @@ -16,7 +16,7 @@ #include "chrome/common/extensions/extension_set.h" #include "chrome/renderer/chrome_render_process_observer.h" #include "chrome/renderer/extensions/extension_base.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/user_script_slave.h" #include "content/common/url_constants.h" #include "content/renderer/render_view.h" @@ -59,7 +59,7 @@ static bool HasSufficientPermissions(RenderView* render_view, void ExtensionBindingsContext::HandleV8ContextCreated( WebKit::WebFrame* web_frame, const v8::Handle<v8::Context>& v8_context, - ExtensionRendererContext* extension_renderer_context, + ExtensionDispatcher* extension_dispatcher, int isolated_world_id) { std::string extension_id; @@ -72,14 +72,14 @@ void ExtensionBindingsContext::HandleV8ContextCreated( if (!ds) ds = web_frame->dataSource(); GURL url = ds->request().url(); - const ExtensionSet* extensions = extension_renderer_context->extensions(); + const ExtensionSet* extensions = extension_dispatcher->extensions(); extension_id = extensions->GetIdByURL(url); if (!extensions->ExtensionBindingsAllowed(url)) return; } else { extension_id = - extension_renderer_context->user_script_slave()-> + extension_dispatcher->user_script_slave()-> GetExtensionIdForIsolatedWorld(isolated_world_id); } @@ -92,8 +92,7 @@ void ExtensionBindingsContext::HandleV8ContextCreated( v8::HandleScope handle_scope; v8::Handle<v8::Value> argv[3]; argv[0] = v8::String::New(extension_id.c_str()); - argv[1] = v8::Boolean::New( - extension_renderer_context->is_extension_process()); + argv[1] = v8::Boolean::New(extension_dispatcher->is_extension_process()); argv[2] = v8::Boolean::New( ChromeRenderProcessObserver::is_incognito_process()); instance->CallChromeHiddenMethod("dispatchOnLoad", arraysize(argv), argv); diff --git a/chrome/renderer/extensions/extension_bindings_context.h b/chrome/renderer/extensions/extension_bindings_context.h index 8f421e8..44f8b0a 100644 --- a/chrome/renderer/extensions/extension_bindings_context.h +++ b/chrome/renderer/extensions/extension_bindings_context.h @@ -18,18 +18,17 @@ namespace WebKit { class WebFrame; } -class ExtensionRendererContext; +class ExtensionDispatcher; class GURL; class RenderView; // A v8 context that contains extension bindings. class ExtensionBindingsContext { public: - static void HandleV8ContextCreated( - WebKit::WebFrame* frame, - const v8::Handle<v8::Context>& v8_context, - ExtensionRendererContext* extension_renderer_context, - int isolated_world_id); + static void HandleV8ContextCreated(WebKit::WebFrame* frame, + const v8::Handle<v8::Context>& v8_context, + ExtensionDispatcher* extension_dispatcher, + int isolated_world_id); static void HandleV8ContextDestroyed(WebKit::WebFrame* frame); diff --git a/chrome/renderer/extensions/extension_renderer_context.cc b/chrome/renderer/extensions/extension_dispatcher.cc index 1f3433b..267e5a7 100644 --- a/chrome/renderer/extensions/extension_renderer_context.cc +++ b/chrome/renderer/extensions/extension_dispatcher.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/renderer/extensions/extension_renderer_context.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" #include "base/command_line.h" #include "chrome/common/child_process_logging.h" @@ -38,7 +38,7 @@ using WebKit::WebFrame; using WebKit::WebSecurityPolicy; using WebKit::WebString; -ExtensionRendererContext::ExtensionRendererContext() +ExtensionDispatcher::ExtensionDispatcher() : is_webkit_initialized_(false) { std::string type_str = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( switches::kProcessType); @@ -53,13 +53,13 @@ ExtensionRendererContext::ExtensionRendererContext() user_script_slave_.reset(new UserScriptSlave(&extensions_)); } -ExtensionRendererContext::~ExtensionRendererContext() { +ExtensionDispatcher::~ExtensionDispatcher() { } -bool ExtensionRendererContext::OnControlMessageReceived( +bool ExtensionDispatcher::OnControlMessageReceived( const IPC::Message& message) { bool handled = true; - IPC_BEGIN_MESSAGE_MAP(ExtensionRendererContext, message) + IPC_BEGIN_MESSAGE_MAP(ExtensionDispatcher, message) IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnMessageInvoke) IPC_MESSAGE_HANDLER(ExtensionMsg_SetFunctionNames, OnSetFunctionNames) IPC_MESSAGE_HANDLER(ExtensionMsg_Loaded, OnLoaded) @@ -76,7 +76,7 @@ bool ExtensionRendererContext::OnControlMessageReceived( return handled; } -void ExtensionRendererContext::WebKitInitialized() { +void ExtensionDispatcher::WebKitInitialized() { // For extensions, we want to ensure we call the IdleHandler every so often, // even if the extension keeps up activity. if (is_extension_process_) { @@ -111,7 +111,7 @@ void ExtensionRendererContext::WebKitInitialized() { is_webkit_initialized_ = true; } -void ExtensionRendererContext::IdleNotification() { +void ExtensionDispatcher::IdleNotification() { if (is_extension_process_) { // Dampen the forced delay as well if the extension stays idle for long // periods of time. @@ -125,14 +125,14 @@ void ExtensionRendererContext::IdleNotification() { } } -void ExtensionRendererContext::OnSetFunctionNames( +void ExtensionDispatcher::OnSetFunctionNames( const std::vector<std::string>& names) { function_names_.clear(); for (size_t i = 0; i < names.size(); ++i) function_names_.insert(names[i]); } -void ExtensionRendererContext::OnMessageInvoke(const std::string& extension_id, +void ExtensionDispatcher::OnMessageInvoke(const std::string& extension_id, const std::string& function_name, const ListValue& args, const GURL& event_url) { @@ -147,8 +147,7 @@ void ExtensionRendererContext::OnMessageInvoke(const std::string& extension_id, } } -void ExtensionRendererContext::OnLoaded( - const ExtensionMsg_Loaded_Params& params) { +void ExtensionDispatcher::OnLoaded(const ExtensionMsg_Loaded_Params& params) { scoped_refptr<const Extension> extension(params.ConvertToExtension()); if (!extension) { // This can happen if extension parsing fails for any reason. One reason @@ -161,7 +160,7 @@ void ExtensionRendererContext::OnLoaded( extensions_.Insert(extension); } -void ExtensionRendererContext::OnUnloaded(const std::string& id) { +void ExtensionDispatcher::OnUnloaded(const std::string& id) { extensions_.Remove(id); // If the extension is later reloaded with a different set of permissions, // we'd like it to get a new isolated world ID, so that it can pick up the @@ -169,24 +168,24 @@ void ExtensionRendererContext::OnUnloaded(const std::string& id) { user_script_slave_->RemoveIsolatedWorld(id); } -void ExtensionRendererContext::OnSetScriptingWhitelist( +void ExtensionDispatcher::OnSetScriptingWhitelist( const Extension::ScriptingWhitelist& extension_ids) { Extension::SetScriptingWhitelist(extension_ids); } -bool ExtensionRendererContext::IsApplicationActive( +bool ExtensionDispatcher::IsApplicationActive( const std::string& extension_id) const { return active_application_ids_.find(extension_id) != active_application_ids_.end(); } -bool ExtensionRendererContext::IsExtensionActive( +bool ExtensionDispatcher::IsExtensionActive( const std::string& extension_id) const { return active_extension_ids_.find(extension_id) != active_extension_ids_.end(); } -bool ExtensionRendererContext::AllowScriptExtension( +bool ExtensionDispatcher::AllowScriptExtension( WebFrame* frame, const std::string& v8_extension_name, int extension_group) { @@ -220,12 +219,12 @@ bool ExtensionRendererContext::AllowScriptExtension( } -void ExtensionRendererContext::OnActivateApplication( +void ExtensionDispatcher::OnActivateApplication( const std::string& extension_id) { active_application_ids_.insert(extension_id); } -void ExtensionRendererContext::OnActivateExtension( +void ExtensionDispatcher::OnActivateExtension( const std::string& extension_id) { active_extension_ids_.insert(extension_id); @@ -244,8 +243,7 @@ void ExtensionRendererContext::OnActivateExtension( InitOriginPermissions(extension); } -void ExtensionRendererContext::InitOriginPermissions( - const Extension* extension) { +void ExtensionDispatcher::InitOriginPermissions(const Extension* extension) { // TODO(jstritar): We should try to remove this special case. Also, these // whitelist entries need to be updated when the kManagement permission // changes. @@ -262,7 +260,7 @@ void ExtensionRendererContext::InitOriginPermissions( extension->GetActivePermissions()->explicit_hosts()); } -void ExtensionRendererContext::UpdateOriginPermissions( +void ExtensionDispatcher::UpdateOriginPermissions( UpdatedExtensionPermissionsInfo::Reason reason, const Extension* extension, const URLPatternSet& origins) { @@ -288,7 +286,7 @@ void ExtensionRendererContext::UpdateOriginPermissions( } } -void ExtensionRendererContext::OnUpdatePermissions( +void ExtensionDispatcher::OnUpdatePermissions( int reason_id, const std::string& extension_id, const ExtensionAPIPermissionSet& apis, @@ -317,14 +315,14 @@ void ExtensionRendererContext::OnUpdatePermissions( UpdateOriginPermissions(reason, extension, explicit_hosts); } -void ExtensionRendererContext::OnUpdateUserScripts( +void ExtensionDispatcher::OnUpdateUserScripts( base::SharedMemoryHandle scripts) { DCHECK(base::SharedMemory::IsHandleValid(scripts)) << "Bad scripts handle"; user_script_slave_->UpdateScripts(scripts); UpdateActiveExtensions(); } -void ExtensionRendererContext::UpdateActiveExtensions() { +void ExtensionDispatcher::UpdateActiveExtensions() { // In single-process mode, the browser process reports the active extensions. if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)) return; @@ -334,7 +332,7 @@ void ExtensionRendererContext::UpdateActiveExtensions() { child_process_logging::SetActiveExtensions(active_extensions); } -void ExtensionRendererContext::RegisterExtension(v8::Extension* extension, +void ExtensionDispatcher::RegisterExtension(v8::Extension* extension, bool restrict_to_extensions) { if (restrict_to_extensions) restricted_v8_extensions_.insert(extension->name()); diff --git a/chrome/renderer/extensions/extension_renderer_context.h b/chrome/renderer/extensions/extension_dispatcher.h index 58a022f..84a62cd 100644 --- a/chrome/renderer/extensions/extension_renderer_context.h +++ b/chrome/renderer/extensions/extension_dispatcher.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDERER_CONTEXT_H_ -#define CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDERER_CONTEXT_H_ +#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_DISPATCHER_H_ +#define CHROME_RENDERER_EXTENSIONS_EXTENSION_DISPATCHER_H_ #pragma once #include <set> @@ -12,8 +12,8 @@ #include "base/shared_memory.h" #include "base/timer.h" -#include "chrome/common/extensions/extension_set.h" #include "content/renderer/render_process_observer.h" +#include "chrome/common/extensions/extension_set.h" class GURL; class RenderThread; @@ -34,12 +34,12 @@ namespace v8 { class Extension; } -// Render-process level context for the extension system. Stores process-level -// state and routes process-level IPC mesages. -class ExtensionRendererContext : public RenderProcessObserver { +// Dispatches extension control messages sent to the renderer and stores +// renderer extension related state. +class ExtensionDispatcher : public RenderProcessObserver { public: - ExtensionRendererContext(); - virtual ~ExtensionRendererContext(); + ExtensionDispatcher(); + virtual ~ExtensionDispatcher(); const std::set<std::string>& function_names() const { return function_names_; @@ -127,7 +127,7 @@ class ExtensionRendererContext : public RenderProcessObserver { // True once WebKit has been initialized (and it is therefore safe to poke). bool is_webkit_initialized_; - DISALLOW_COPY_AND_ASSIGN(ExtensionRendererContext); + DISALLOW_COPY_AND_ASSIGN(ExtensionDispatcher); }; -#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDERER_CONTEXT_H_ +#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_DISPATCHER_H_ diff --git a/chrome/renderer/extensions/extension_render_view_helper.cc b/chrome/renderer/extensions/extension_helper.cc index 8654b7d..0f0bae5 100644 --- a/chrome/renderer/extensions/extension_render_view_helper.cc +++ b/chrome/renderer/extensions/extension_helper.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/renderer/extensions/extension_render_view_helper.h" +#include "chrome/renderer/extensions/extension_helper.h" #include "base/command_line.h" #include "base/lazy_instance.h" @@ -15,18 +15,18 @@ #include "chrome/renderer/extensions/chrome_webstore_bindings.h" #include "chrome/renderer/extensions/event_bindings.h" #include "chrome/renderer/extensions/extension_bindings_context.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_process_bindings.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" #include "chrome/renderer/extensions/user_script_idle_scheduler.h" #include "chrome/renderer/extensions/user_script_slave.h" #include "content/common/json_value_serializer.h" #include "content/renderer/render_view.h" +#include "webkit/glue/image_resource_fetcher.h" +#include "webkit/glue/resource_fetcher.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" -#include "webkit/glue/image_resource_fetcher.h" -#include "webkit/glue/resource_fetcher.h" using WebKit::WebConsoleMessage; using WebKit::WebDataSource; @@ -45,21 +45,20 @@ typedef std::map<WebFrame*, UserScriptIdleScheduler*> SchedulerMap; static base::LazyInstance<SchedulerMap> g_schedulers(base::LINKER_INITIALIZED); } -ExtensionRenderViewHelper::ExtensionRenderViewHelper( - RenderView* render_view, - ExtensionRendererContext* extension_renderer_context) +ExtensionHelper::ExtensionHelper(RenderView* render_view, + ExtensionDispatcher* extension_dispatcher) : RenderViewObserver(render_view), - RenderViewObserverTracker<ExtensionRenderViewHelper>(render_view), - extension_renderer_context_(extension_renderer_context), + RenderViewObserverTracker<ExtensionHelper>(render_view), + extension_dispatcher_(extension_dispatcher), pending_app_icon_requests_(0), view_type_(ViewType::INVALID), browser_window_id_(-1) { } -ExtensionRenderViewHelper::~ExtensionRenderViewHelper() { +ExtensionHelper::~ExtensionHelper() { } -bool ExtensionRenderViewHelper::InstallWebApplicationUsingDefinitionFile( +bool ExtensionHelper::InstallWebApplicationUsingDefinitionFile( WebFrame* frame, string16* error) { // There is an issue of drive-by installs with the below implementation. A web // site could force a user to install an app by timing the dialog to come up @@ -101,28 +100,26 @@ bool ExtensionRenderViewHelper::InstallWebApplicationUsingDefinitionFile( app_definition_fetcher_.reset(new ResourceFetcher( pending_app_info_->manifest_url, render_view()->webview()->mainFrame(), WebURLRequest::TargetIsSubresource, - NewCallback( - this, - &ExtensionRenderViewHelper::DidDownloadApplicationDefinition))); + NewCallback(this, &ExtensionHelper::DidDownloadApplicationDefinition))); return true; } -void ExtensionRenderViewHelper::InlineWebstoreInstall( +void ExtensionHelper::InlineWebstoreInstall( int install_id, std::string webstore_item_id, GURL requestor_url) { Send(new ExtensionHostMsg_InlineWebstoreInstall( routing_id(), install_id, webstore_item_id, requestor_url)); } -void ExtensionRenderViewHelper::OnInlineWebstoreInstallResponse( +void ExtensionHelper::OnInlineWebstoreInstallResponse( int install_id, bool success, const std::string& error) { ChromeWebstoreExtension::HandleInstallResponse(install_id, success, error); } -bool ExtensionRenderViewHelper::OnMessageReceived(const IPC::Message& message) { +bool ExtensionHelper::OnMessageReceived(const IPC::Message& message) { bool handled = true; - IPC_BEGIN_MESSAGE_MAP(ExtensionRenderViewHelper, message) + IPC_BEGIN_MESSAGE_MAP(ExtensionHelper, message) IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke) IPC_MESSAGE_HANDLER(ExtensionMsg_ExecuteCode, OnExecuteCode) @@ -138,8 +135,8 @@ bool ExtensionRenderViewHelper::OnMessageReceived(const IPC::Message& message) { return handled; } -void ExtensionRenderViewHelper::DidFinishDocumentLoad(WebFrame* frame) { - extension_renderer_context_->user_script_slave()->InjectScripts( +void ExtensionHelper::DidFinishDocumentLoad(WebFrame* frame) { + extension_dispatcher_->user_script_slave()->InjectScripts( frame, UserScript::DOCUMENT_END); SchedulerMap::iterator i = g_schedulers.Get().find(frame); @@ -147,25 +144,24 @@ void ExtensionRenderViewHelper::DidFinishDocumentLoad(WebFrame* frame) { i->second->DidFinishDocumentLoad(); } -void ExtensionRenderViewHelper::DidFinishLoad(WebKit::WebFrame* frame) { +void ExtensionHelper::DidFinishLoad(WebKit::WebFrame* frame) { SchedulerMap::iterator i = g_schedulers.Get().find(frame); if (i != g_schedulers.Get().end()) i->second->DidFinishLoad(); } -void ExtensionRenderViewHelper::DidCreateDocumentElement(WebFrame* frame) { - extension_renderer_context_->user_script_slave()->InjectScripts( +void ExtensionHelper::DidCreateDocumentElement(WebFrame* frame) { + extension_dispatcher_->user_script_slave()->InjectScripts( frame, UserScript::DOCUMENT_START); } -void ExtensionRenderViewHelper::DidStartProvisionalLoad( - WebKit::WebFrame* frame) { +void ExtensionHelper::DidStartProvisionalLoad(WebKit::WebFrame* frame) { SchedulerMap::iterator i = g_schedulers.Get().find(frame); if (i != g_schedulers.Get().end()) i->second->DidStartProvisionalLoad(); } -void ExtensionRenderViewHelper::FrameDetached(WebFrame* frame) { +void ExtensionHelper::FrameDetached(WebFrame* frame) { // This could be called before DidCreateDataSource, in which case the frame // won't be in the map. SchedulerMap::iterator i = g_schedulers.Get().find(frame); @@ -176,8 +172,7 @@ void ExtensionRenderViewHelper::FrameDetached(WebFrame* frame) { g_schedulers.Get().erase(i); } -void ExtensionRenderViewHelper::DidCreateDataSource(WebFrame* frame, - WebDataSource* ds) { +void ExtensionHelper::DidCreateDataSource(WebFrame* frame, WebDataSource* ds) { // If there are any app-related fetches in progress, they can be cancelled now // since we have navigated away from the page that created them. if (!frame->parent()) { @@ -191,10 +186,10 @@ void ExtensionRenderViewHelper::DidCreateDataSource(WebFrame* frame, return; g_schedulers.Get()[frame] = new UserScriptIdleScheduler( - frame, extension_renderer_context_); + frame, extension_dispatcher_); } -void ExtensionRenderViewHelper::OnExtensionResponse(int request_id, +void ExtensionHelper::OnExtensionResponse(int request_id, bool success, const std::string& response, const std::string& error) { @@ -202,16 +197,15 @@ void ExtensionRenderViewHelper::OnExtensionResponse(int request_id, request_id, success, response, error); } -void ExtensionRenderViewHelper::OnExtensionMessageInvoke( - const std::string& extension_id, - const std::string& function_name, - const ListValue& args, - const GURL& event_url) { +void ExtensionHelper::OnExtensionMessageInvoke(const std::string& extension_id, + const std::string& function_name, + const ListValue& args, + const GURL& event_url) { ExtensionBindingsContext::DispatchChromeHiddenMethod( extension_id, function_name, args, render_view(), event_url); } -void ExtensionRenderViewHelper::OnExecuteCode( +void ExtensionHelper::OnExecuteCode( const ExtensionMsg_ExecuteCode_Params& params) { WebView* webview = render_view()->webview(); WebFrame* main_frame = webview->mainFrame(); @@ -228,7 +222,7 @@ void ExtensionRenderViewHelper::OnExecuteCode( i->second->ExecuteCode(params); } -void ExtensionRenderViewHelper::OnGetApplicationInfo(int page_id) { +void ExtensionHelper::OnGetApplicationInfo(int page_id) { WebApplicationInfo app_info; if (page_id == render_view()->page_id()) { string16 error; @@ -251,15 +245,15 @@ void ExtensionRenderViewHelper::OnGetApplicationInfo(int page_id) { routing_id(), page_id, app_info)); } -void ExtensionRenderViewHelper::OnNotifyRendererViewType(ViewType::Type type) { +void ExtensionHelper::OnNotifyRendererViewType(ViewType::Type type) { view_type_ = type; } -void ExtensionRenderViewHelper::OnUpdateBrowserWindowId(int window_id) { +void ExtensionHelper::OnUpdateBrowserWindowId(int window_id) { browser_window_id_ = window_id; } -void ExtensionRenderViewHelper::DidDownloadApplicationDefinition( +void ExtensionHelper::DidDownloadApplicationDefinition( const WebKit::WebURLResponse& response, const std::string& data) { scoped_ptr<WebApplicationInfo> app_info( @@ -294,17 +288,15 @@ void ExtensionRenderViewHelper::DidDownloadApplicationDefinition( pending_app_info_->icons[i].width, WebURLRequest::TargetIsFavicon, NewCallback( - this, - &ExtensionRenderViewHelper::DidDownloadApplicationIcon)))); + this, &ExtensionHelper::DidDownloadApplicationIcon)))); } } else { Send(new ExtensionHostMsg_InstallApplication(routing_id(), *app_info)); } } -void ExtensionRenderViewHelper::DidDownloadApplicationIcon( - ImageResourceFetcher* fetcher, - const SkBitmap& image) { +void ExtensionHelper::DidDownloadApplicationIcon(ImageResourceFetcher* fetcher, + const SkBitmap& image) { pending_app_info_->icons[fetcher->id()].data = image; // Remove the image fetcher from our pending list. We're in the callback from @@ -353,7 +345,7 @@ void ExtensionRenderViewHelper::DidDownloadApplicationIcon( pending_app_info_.reset(NULL); } -void ExtensionRenderViewHelper::AddErrorToRootConsole(const string16& message) { +void ExtensionHelper::AddErrorToRootConsole(const string16& message) { if (render_view()->webview() && render_view()->webview()->mainFrame()) { render_view()->webview()->mainFrame()->addMessageToConsole( WebConsoleMessage(WebConsoleMessage::LevelError, message)); diff --git a/chrome/renderer/extensions/extension_render_view_helper.h b/chrome/renderer/extensions/extension_helper.h index 4329130..7356fc9 100644 --- a/chrome/renderer/extensions/extension_render_view_helper.h +++ b/chrome/renderer/extensions/extension_helper.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDER_VIEW_HELPER_H_ -#define CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDER_VIEW_HELPER_H_ +#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ +#define CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ #pragma once #include <map> @@ -13,7 +13,7 @@ #include "content/renderer/render_view_observer.h" #include "content/renderer/render_view_observer_tracker.h" -class ExtensionRendererContext; +class ExtensionDispatcher; class GURL; struct ExtensionMsg_ExecuteCode_Params; struct WebApplicationInfo; @@ -27,13 +27,12 @@ class ResourceFetcher; } // RenderView-level plumbing for extension features. -class ExtensionRenderViewHelper - : public RenderViewObserver, - public RenderViewObserverTracker<ExtensionRenderViewHelper> { +class ExtensionHelper : public RenderViewObserver, + public RenderViewObserverTracker<ExtensionHelper> { public: - ExtensionRenderViewHelper(RenderView* render_view, - ExtensionRendererContext* extension_renderer_context); - virtual ~ExtensionRenderViewHelper(); + ExtensionHelper(RenderView* render_view, + ExtensionDispatcher* extension_dispatcher); + virtual ~ExtensionHelper(); // Starts installation of the page in the specified frame as a web app. The // page must link to an external 'definition file'. This is different from @@ -87,7 +86,7 @@ class ExtensionRenderViewHelper // Helper to add an error message to the root frame's console. void AddErrorToRootConsole(const string16& message); - ExtensionRendererContext* extension_renderer_context_; + ExtensionDispatcher* extension_dispatcher_; // The app info that we are processing. This is used when installing an app // via application definition. The in-progress web app is stored here while @@ -110,7 +109,7 @@ class ExtensionRenderViewHelper // Id number of browser window which RenderView is attached to. int browser_window_id_; - DISALLOW_COPY_AND_ASSIGN(ExtensionRenderViewHelper); + DISALLOW_COPY_AND_ASSIGN(ExtensionHelper); }; -#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDER_VIEW_HELPER_H_ +#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_ diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc index 35a6f8f..a673183 100644 --- a/chrome/renderer/extensions/extension_process_bindings.cc +++ b/chrome/renderer/extensions/extension_process_bindings.cc @@ -26,10 +26,10 @@ #include "chrome/common/url_constants.h" #include "chrome/renderer/chrome_render_process_observer.h" #include "chrome/renderer/extensions/event_bindings.h" -#include "chrome/renderer/extensions/extension_base.h" #include "chrome/renderer/extensions/extension_bindings_context.h" -#include "chrome/renderer/extensions/extension_render_view_helper.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" +#include "chrome/renderer/extensions/extension_base.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" +#include "chrome/renderer/extensions/extension_helper.h" #include "chrome/renderer/extensions/js_only_v8_extensions.h" #include "chrome/renderer/extensions/renderer_extension_bindings.h" #include "chrome/renderer/extensions/user_script_slave.h" @@ -91,8 +91,7 @@ class ExtensionViewAccumulator : public RenderViewVisitor { v8::Local<v8::Array> views() { return views_; } virtual bool Visit(RenderView* render_view) { - ExtensionRenderViewHelper* helper = - ExtensionRenderViewHelper::Get(render_view); + ExtensionHelper* helper = ExtensionHelper::Get(render_view); if (!ViewTypeMatches(helper->view_type(), view_type_)) return true; @@ -154,12 +153,12 @@ class ExtensionViewAccumulator : public RenderViewVisitor { class ExtensionImpl : public ExtensionBase { public: - explicit ExtensionImpl(ExtensionRendererContext* extension_renderer_context) + explicit ExtensionImpl(ExtensionDispatcher* extension_dispatcher) : ExtensionBase(kExtensionName, GetStringResource(IDR_EXTENSION_PROCESS_BINDINGS_JS), arraysize(kExtensionDeps), kExtensionDeps, - extension_renderer_context) { + extension_dispatcher) { } ~ExtensionImpl() {} @@ -392,7 +391,7 @@ class ExtensionImpl : public ExtensionBase { ExtensionImpl* v8_extension = GetFromArguments<ExtensionImpl>(args); std::string extension_id = *v8::String::Utf8Value(args[0]->ToString()); const ::Extension* extension = - v8_extension->extension_renderer_context_->extensions()->GetByID( + v8_extension->extension_dispatcher_->extensions()->GetByID( extension_id); CHECK(!extension_id.empty()); if (!extension) @@ -423,7 +422,7 @@ class ExtensionImpl : public ExtensionBase { std::string name = *v8::String::AsciiValue(args[0]); const std::set<std::string>& function_names = - v8_extension->extension_renderer_context_->function_names(); + v8_extension->extension_dispatcher_->function_names(); if (function_names.find(name) == function_names.end()) { NOTREACHED() << "Unexpected function " << name; return v8::Undefined(); @@ -564,12 +563,10 @@ class ExtensionImpl : public ExtensionBase { } // namespace v8::Extension* ExtensionProcessBindings::Get( - ExtensionRendererContext* extension_renderer_context) { - static v8::Extension* extension = - new ExtensionImpl(extension_renderer_context); - CHECK_EQ( - extension_renderer_context, - static_cast<ExtensionImpl*>(extension)->extension_renderer_context()); + ExtensionDispatcher* extension_dispatcher) { + static v8::Extension* extension = new ExtensionImpl(extension_dispatcher); + CHECK_EQ(extension_dispatcher, + static_cast<ExtensionImpl*>(extension)->extension_dispatcher()); return extension; } diff --git a/chrome/renderer/extensions/extension_process_bindings.h b/chrome/renderer/extensions/extension_process_bindings.h index c636cf0..28a1ebe 100644 --- a/chrome/renderer/extensions/extension_process_bindings.h +++ b/chrome/renderer/extensions/extension_process_bindings.h @@ -12,7 +12,7 @@ #include <string> #include <vector> -class ExtensionRendererContext; +class ExtensionDispatcher; class GURL; class URLPattern; @@ -26,8 +26,7 @@ class Extension; class ExtensionProcessBindings { public: - static v8::Extension* Get( - ExtensionRendererContext* extension_renderer_context); + static v8::Extension* Get(ExtensionDispatcher* extension_dispatcher); // Handles a response to an API request. static void HandleResponse(int request_id, bool success, diff --git a/chrome/renderer/extensions/renderer_extension_bindings.cc b/chrome/renderer/extensions/renderer_extension_bindings.cc index be76080..367fca3 100644 --- a/chrome/renderer/extensions/renderer_extension_bindings.cc +++ b/chrome/renderer/extensions/renderer_extension_bindings.cc @@ -14,7 +14,7 @@ #include "chrome/common/url_constants.h" #include "chrome/renderer/extensions/event_bindings.h" #include "chrome/renderer/extensions/extension_base.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" #include "content/renderer/render_thread.h" #include "content/renderer/render_view.h" #include "grit/renderer_resources.h" @@ -62,10 +62,10 @@ const char* kExtensionDeps[] = { EventBindings::kName }; class ExtensionImpl : public ExtensionBase { public: - explicit ExtensionImpl(ExtensionRendererContext* context) + explicit ExtensionImpl(ExtensionDispatcher* dispatcher) : ExtensionBase(RendererExtensionBindings::kName, GetStringResource(IDR_RENDERER_EXTENSION_BINDINGS_JS), - arraysize(kExtensionDeps), kExtensionDeps, context) { + arraysize(kExtensionDeps), kExtensionDeps, dispatcher) { } ~ExtensionImpl() {} @@ -248,8 +248,7 @@ class ExtensionImpl : public ExtensionBase { const char* RendererExtensionBindings::kName = "chrome/RendererExtensionBindings"; -v8::Extension* RendererExtensionBindings::Get( - ExtensionRendererContext* context) { - static v8::Extension* extension = new ExtensionImpl(context); +v8::Extension* RendererExtensionBindings::Get(ExtensionDispatcher* dispatcher) { + static v8::Extension* extension = new ExtensionImpl(dispatcher); return extension; } diff --git a/chrome/renderer/extensions/renderer_extension_bindings.h b/chrome/renderer/extensions/renderer_extension_bindings.h index 43c50bb..59b726e 100644 --- a/chrome/renderer/extensions/renderer_extension_bindings.h +++ b/chrome/renderer/extensions/renderer_extension_bindings.h @@ -8,7 +8,7 @@ #include <string> -class ExtensionRendererContext; +class ExtensionDispatcher; class GURL; class RenderView; @@ -24,7 +24,7 @@ class RendererExtensionBindings { static const char* kName; // Creates an instance of the extension. - static v8::Extension* Get(ExtensionRendererContext* context); + static v8::Extension* Get(ExtensionDispatcher* dispatcher); }; #endif // CHROME_RENDERER_EXTENSIONS_RENDERER_EXTENSION_BINDINGS_H_ diff --git a/chrome/renderer/extensions/user_script_idle_scheduler.cc b/chrome/renderer/extensions/user_script_idle_scheduler.cc index 17a9335..5c9eea6 100644 --- a/chrome/renderer/extensions/user_script_idle_scheduler.cc +++ b/chrome/renderer/extensions/user_script_idle_scheduler.cc @@ -7,9 +7,9 @@ #include "base/message_loop.h" #include "chrome/common/extensions/extension_error_utils.h" #include "chrome/common/extensions/extension_messages.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_groups.h" -#include "chrome/renderer/extensions/extension_render_view_helper.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" +#include "chrome/renderer/extensions/extension_helper.h" #include "chrome/renderer/extensions/user_script_slave.h" #include "content/renderer/render_view.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" @@ -29,11 +29,11 @@ using WebKit::WebString; using WebKit::WebView; UserScriptIdleScheduler::UserScriptIdleScheduler( - WebFrame* frame, ExtensionRendererContext* extension_renderer_context) + WebFrame* frame, ExtensionDispatcher* extension_dispatcher) : ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), frame_(frame), has_run_(false), - extension_renderer_context_(extension_renderer_context) { + extension_dispatcher_(extension_dispatcher) { } UserScriptIdleScheduler::~UserScriptIdleScheduler() { @@ -82,7 +82,7 @@ void UserScriptIdleScheduler::MaybeRun() { // http://code.google.com/p/chromium/issues/detail?id=29644 has_run_ = true; - extension_renderer_context_->user_script_slave()->InjectScripts( + extension_dispatcher_->user_script_slave()->InjectScripts( frame_, UserScript::DOCUMENT_IDLE); while (!pending_code_execution_queue_.empty()) { @@ -95,8 +95,8 @@ void UserScriptIdleScheduler::MaybeRun() { void UserScriptIdleScheduler::ExecuteCodeImpl( const ExtensionMsg_ExecuteCode_Params& params) { - const Extension* extension = - extension_renderer_context_->extensions()->GetByID(params.extension_id); + const Extension* extension = extension_dispatcher_->extensions()->GetByID( + params.extension_id); RenderView* render_view = RenderView::FromWebView(frame_->view()); // Since extension info is sent separately from user script info, they can @@ -147,7 +147,7 @@ void UserScriptIdleScheduler::ExecuteCodeImpl( std::vector<WebScriptSource> sources; sources.push_back(source); frame->executeScriptInIsolatedWorld( - extension_renderer_context_->user_script_slave()-> + extension_dispatcher_->user_script_slave()-> GetIsolatedWorldIdForExtension(extension, frame), &sources.front(), sources.size(), EXTENSION_GROUP_CONTENT_SCRIPTS); } diff --git a/chrome/renderer/extensions/user_script_idle_scheduler.h b/chrome/renderer/extensions/user_script_idle_scheduler.h index 903c030..62258c6 100644 --- a/chrome/renderer/extensions/user_script_idle_scheduler.h +++ b/chrome/renderer/extensions/user_script_idle_scheduler.h @@ -12,7 +12,7 @@ #include "base/memory/linked_ptr.h" #include "base/task.h" -class ExtensionRendererContext; +class ExtensionDispatcher; class RenderView; struct ExtensionMsg_ExecuteCode_Params; @@ -34,12 +34,12 @@ class WebFrame; // NOTE: this class does not inherit from RenderViewObserver on purpose. The // reason is that this object is per frame, and a frame can move across // RenderViews thanks to adoptNode. So we have each RenderView's -// ExtensionRenderViewHelper proxy these calls to the renderer process' -// ExtensionRendererContext, which contains the mapping from WebFrame to us. +// ExtensionHelper proxy these calls to the renderer process' +// ExtensionDispatcher, which contains the mapping from WebFrame to us. class UserScriptIdleScheduler { public: UserScriptIdleScheduler(WebKit::WebFrame* frame, - ExtensionRendererContext* extension_renderer_context); + ExtensionDispatcher* extension_dispatcher); ~UserScriptIdleScheduler(); void ExecuteCode(const ExtensionMsg_ExecuteCode_Params& params); @@ -72,7 +72,7 @@ class UserScriptIdleScheduler { std::queue<linked_ptr<ExtensionMsg_ExecuteCode_Params> > pending_code_execution_queue_; - ExtensionRendererContext* extension_renderer_context_; + ExtensionDispatcher* extension_dispatcher_; }; #endif // CHROME_RENDERER_EXTENSIONS_USER_SCRIPT_IDLE_SCHEDULER_H_ diff --git a/chrome/renderer/extensions/user_script_slave.cc b/chrome/renderer/extensions/user_script_slave.cc index d1e131e..dbdec79 100644 --- a/chrome/renderer/extensions/user_script_slave.cc +++ b/chrome/renderer/extensions/user_script_slave.cc @@ -8,17 +8,17 @@ #include "base/command_line.h" #include "base/logging.h" -#include "base/metrics/histogram.h" #include "base/perftimer.h" #include "base/pickle.h" #include "base/shared_memory.h" +#include "base/metrics/histogram.h" #include "base/stringprintf.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_set.h" #include "chrome/common/url_constants.h" #include "chrome/renderer/chrome_render_process_observer.h" +#include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_groups.h" -#include "chrome/renderer/extensions/extension_renderer_context.h" #include "content/renderer/render_thread.h" #include "googleurl/src/gurl.h" #include "grit/renderer_resources.h" |