summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/chrome_renderer.gypi8
-rw-r--r--chrome/renderer/chrome_content_renderer_client.cc43
-rw-r--r--chrome/renderer/chrome_content_renderer_client.h7
-rw-r--r--chrome/renderer/chrome_render_view_observer.cc8
-rw-r--r--chrome/renderer/chrome_render_view_observer.h6
-rw-r--r--chrome/renderer/extensions/chrome_app_bindings.cc31
-rw-r--r--chrome/renderer/extensions/chrome_app_bindings.h7
-rw-r--r--chrome/renderer/extensions/chrome_webstore_bindings.cc5
-rw-r--r--chrome/renderer/extensions/event_bindings.cc10
-rw-r--r--chrome/renderer/extensions/event_bindings.h4
-rw-r--r--chrome/renderer/extensions/extension_base.cc6
-rw-r--r--chrome/renderer/extensions/extension_base.h12
-rw-r--r--chrome/renderer/extensions/extension_bindings_context.cc11
-rw-r--r--chrome/renderer/extensions/extension_bindings_context.h11
-rw-r--r--chrome/renderer/extensions/extension_process_bindings.cc27
-rw-r--r--chrome/renderer/extensions/extension_process_bindings.h5
-rw-r--r--chrome/renderer/extensions/extension_render_view_helper.cc (renamed from chrome/renderer/extensions/extension_helper.cc)85
-rw-r--r--chrome/renderer/extensions/extension_render_view_helper.h (renamed from chrome/renderer/extensions/extension_helper.h)23
-rw-r--r--chrome/renderer/extensions/extension_renderer_context.cc (renamed from chrome/renderer/extensions/extension_dispatcher.cc)48
-rw-r--r--chrome/renderer/extensions/extension_renderer_context.h (renamed from chrome/renderer/extensions/extension_dispatcher.h)20
-rw-r--r--chrome/renderer/extensions/renderer_extension_bindings.cc11
-rw-r--r--chrome/renderer/extensions/renderer_extension_bindings.h4
-rw-r--r--chrome/renderer/extensions/user_script_idle_scheduler.cc16
-rw-r--r--chrome/renderer/extensions/user_script_idle_scheduler.h10
-rw-r--r--chrome/renderer/extensions/user_script_slave.cc4
-rw-r--r--chrome/test/base/render_view_test.cc7
-rw-r--r--chrome/test/base/render_view_test.h4
27 files changed, 232 insertions, 201 deletions
diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi
index 314d855..116e33f 100644
--- a/chrome/chrome_renderer.gypi
+++ b/chrome/chrome_renderer.gypi
@@ -65,11 +65,11 @@
'renderer/extensions/extension_base.h',
'renderer/extensions/extension_bindings_context.cc',
'renderer/extensions/extension_bindings_context.h',
- 'renderer/extensions/extension_dispatcher.cc',
- 'renderer/extensions/extension_dispatcher.h',
'renderer/extensions/extension_groups.h',
- 'renderer/extensions/extension_helper.cc',
- 'renderer/extensions/extension_helper.h',
+ 'renderer/extensions/extension_render_view_helper.cc',
+ 'renderer/extensions/extension_render_view_helper.h',
+ 'renderer/extensions/extension_renderer_context.cc',
+ 'renderer/extensions/extension_renderer_context.h',
'renderer/extensions/extension_process_bindings.cc',
'renderer/extensions/extension_process_bindings.h',
'renderer/extensions/extension_resource_request_policy.cc',
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 5fb7168..1a32d67 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -16,10 +16,10 @@
#include "chrome/common/chrome_content_client.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/external_ipc_fuzzer.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_constants.h"
#include "chrome/common/extensions/extension_set.h"
+#include "chrome/common/external_ipc_fuzzer.h"
#include "chrome/common/jstemplate_builder.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/url_constants.h"
@@ -34,9 +34,9 @@
#include "chrome/renderer/chrome_render_view_observer.h"
#include "chrome/renderer/content_settings_observer.h"
#include "chrome/renderer/extensions/extension_bindings_context.h"
-#include "chrome/renderer/extensions/extension_dispatcher.h"
-#include "chrome/renderer/extensions/extension_helper.h"
#include "chrome/renderer/extensions/extension_process_bindings.h"
+#include "chrome/renderer/extensions/extension_render_view_helper.h"
+#include "chrome/renderer/extensions/extension_renderer_context.h"
#include "chrome/renderer/extensions/extension_resource_request_policy.h"
#include "chrome/renderer/extensions/renderer_extension_bindings.h"
#include "chrome/renderer/external_extension.h"
@@ -153,7 +153,7 @@ ChromeContentRendererClient::~ChromeContentRendererClient() {
void ChromeContentRendererClient::RenderThreadStarted() {
chrome_observer_.reset(new ChromeRenderProcessObserver(this));
- extension_dispatcher_.reset(new ExtensionDispatcher());
+ extension_renderer_context_.reset(new ExtensionRendererContext());
histogram_snapshots_.reset(new RendererHistogramSnapshots());
net_predictor_.reset(new RendererNetPredictor());
spellcheck_.reset(new SpellCheck());
@@ -165,7 +165,7 @@ void ChromeContentRendererClient::RenderThreadStarted() {
RenderThread* thread = RenderThread::current();
thread->AddObserver(chrome_observer_.get());
- thread->AddObserver(extension_dispatcher_.get());
+ thread->AddObserver(extension_renderer_context_.get());
thread->AddObserver(histogram_snapshots_.get());
#if defined(ENABLE_SAFE_BROWSING)
thread->AddObserver(phishing_classifier_.get());
@@ -216,7 +216,7 @@ void ChromeContentRendererClient::RenderThreadStarted() {
void ChromeContentRendererClient::RenderViewCreated(RenderView* render_view) {
ContentSettingsObserver* content_settings =
new ContentSettingsObserver(render_view);
- new ExtensionHelper(render_view, extension_dispatcher_.get());
+ new ExtensionRenderViewHelper(render_view, extension_renderer_context_.get());
new PageLoadHistograms(render_view, histogram_snapshots_.get());
new PrintWebViewHelper(render_view);
new SearchBox(render_view);
@@ -242,7 +242,8 @@ void ChromeContentRendererClient::RenderViewCreated(RenderView* render_view) {
TranslateHelper* translate = new TranslateHelper(render_view, autofill_agent);
new ChromeRenderViewObserver(
- render_view, content_settings, extension_dispatcher_.get(), translate);
+ render_view, content_settings, extension_renderer_context_.get(),
+ translate);
// Used only for testing/automation.
if (CommandLine::ForCurrentProcess()->HasSwitch(
@@ -434,7 +435,7 @@ WebPlugin* ChromeContentRendererClient::CreatePluginImpl(
// that was installed from the Chrome Web Store, or part of a component
// extension, or part of an unpacked extension.
const Extension* extension =
- extension_dispatcher_->extensions()->GetByURL(nexe_url);
+ extension_renderer_context_->extensions()->GetByURL(nexe_url);
allow_nacl = extension &&
(extension->from_webstore() ||
extension->location() == Extension::COMPONENT ||
@@ -534,7 +535,7 @@ std::string ChromeContentRendererClient::GetNavigationErrorHtml(
int resource_id;
DictionaryValue error_strings;
if (failed_url.is_valid() && !failed_url.SchemeIs(chrome::kExtensionScheme))
- extension = extension_dispatcher_->extensions()->GetByURL(failed_url);
+ extension = extension_renderer_context_->extensions()->GetByURL(failed_url);
if (extension) {
LocalizedError::GetAppErrorStrings(error, failed_url, extension,
&error_strings);
@@ -567,13 +568,13 @@ std::string ChromeContentRendererClient::GetNavigationErrorHtml(
}
bool ChromeContentRendererClient::RunIdleHandlerWhenWidgetsHidden() {
- return !extension_dispatcher_->is_extension_process();
+ return !extension_renderer_context_->is_extension_process();
}
bool ChromeContentRendererClient::AllowPopup(const GURL& creator) {
// Extensions and apps always allowed to create unrequested popups. The second
// check is necessary to include content scripts.
- return extension_dispatcher_->extensions()->GetByURL(creator) ||
+ return extension_renderer_context_->extensions()->GetByURL(creator) ||
ExtensionBindingsContext::GetCurrent();
}
@@ -597,7 +598,7 @@ bool ChromeContentRendererClient::ShouldFork(WebFrame* frame,
if (is_content_initiated) {
const Extension* extension =
- extension_dispatcher_->extensions()->GetByURL(url);
+ extension_renderer_context_->extensions()->GetByURL(url);
if (extension && extension->is_app()) {
UMA_HISTOGRAM_ENUMERATION(
extension_misc::kAppLaunchHistogram,
@@ -619,7 +620,7 @@ bool ChromeContentRendererClient::WillSendRequest(WebKit::WebFrame* frame,
!ExtensionResourceRequestPolicy::CanRequestResource(
url,
GURL(frame->document().url()),
- extension_dispatcher_->extensions())) {
+ extension_renderer_context_->extensions())) {
*new_url = GURL("chrome-extension://invalid/");
return true;
}
@@ -645,7 +646,7 @@ void ChromeContentRendererClient::DidCreateScriptContext(WebFrame* frame) {
ExtensionBindingsContext::HandleV8ContextCreated(
frame,
frame->mainWorldScriptContext(),
- extension_dispatcher_.get(),
+ extension_renderer_context_.get(),
0); // isolated world id
}
@@ -658,7 +659,7 @@ void ChromeContentRendererClient::DidCreateIsolatedScriptContext(
ExtensionBindingsContext::HandleV8ContextCreated(
frame,
context,
- extension_dispatcher_.get(),
+ extension_renderer_context_.get(),
world_id);
}
@@ -715,16 +716,16 @@ bool ChromeContentRendererClient::HandleSetCookieRequest(
}
-void ChromeContentRendererClient::SetExtensionDispatcher(
- ExtensionDispatcher* extension_dispatcher) {
- extension_dispatcher_.reset(extension_dispatcher);
+void ChromeContentRendererClient::SetExtensionRendererContext(
+ ExtensionRendererContext* extension_renderer_context) {
+ extension_renderer_context_.reset(extension_renderer_context);
}
bool ChromeContentRendererClient::CrossesExtensionExtents(
WebFrame* frame,
const GURL& new_url,
bool is_initial_navigation) {
- const ExtensionSet* extensions = extension_dispatcher_->extensions();
+ const ExtensionSet* extensions = extension_renderer_context_->extensions();
bool is_extension_url = !!extensions->GetByURL(new_url);
GURL old_url(frame->top()->document().url());
@@ -739,7 +740,7 @@ bool ChromeContentRendererClient::CrossesExtensionExtents(
WebSecurityOrigin opener = frame->opener()->document().securityOrigin();
if (!is_extension_url &&
!opener_is_extension_url &&
- extension_dispatcher_->is_extension_process() &&
+ extension_renderer_context_->is_extension_process() &&
opener.canRequest(WebURL(new_url)))
return false;
@@ -754,7 +755,7 @@ bool ChromeContentRendererClient::CrossesExtensionExtents(
// in a normal process, or if it's a process for an extension that has been
// uninstalled.
if (old_url == new_url) {
- if (is_extension_url != extension_dispatcher_->is_extension_process())
+ if (is_extension_url != extension_renderer_context_->is_extension_process())
return true;
}
diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h
index 1b9073e..bd841b7 100644
--- a/chrome/renderer/chrome_content_renderer_client.h
+++ b/chrome/renderer/chrome_content_renderer_client.h
@@ -13,7 +13,7 @@
#include "content/renderer/content_renderer_client.h"
class ChromeRenderProcessObserver;
-class ExtensionDispatcher;
+class ExtensionRendererContext;
class RendererHistogramSnapshots;
class RendererNetPredictor;
class SpellCheck;
@@ -85,7 +85,8 @@ class ChromeContentRendererClient : public content::ContentRendererClient {
const std::string& value) OVERRIDE;
// For testing.
- void SetExtensionDispatcher(ExtensionDispatcher* extension_dispatcher);
+ void SetExtensionRendererContext(
+ ExtensionRendererContext* extension_renderer_context);
// Called in low-memory conditions to dump the memory used by the spellchecker
// and start over.
@@ -115,7 +116,7 @@ class ChromeContentRendererClient : public content::ContentRendererClient {
bool is_initial_navigation);
scoped_ptr<ChromeRenderProcessObserver> chrome_observer_;
- scoped_ptr<ExtensionDispatcher> extension_dispatcher_;
+ scoped_ptr<ExtensionRendererContext> extension_renderer_context_;
scoped_ptr<RendererHistogramSnapshots> histogram_snapshots_;
scoped_ptr<RendererNetPredictor> net_predictor_;
scoped_ptr<SpellCheck> spellcheck_;
diff --git a/chrome/renderer/chrome_render_view_observer.cc b/chrome/renderer/chrome_render_view_observer.cc
index b7fae081..6e7c1e5 100644
--- a/chrome/renderer/chrome_render_view_observer.cc
+++ b/chrome/renderer/chrome_render_view_observer.cc
@@ -17,7 +17,7 @@
#include "chrome/renderer/about_handler.h"
#include "chrome/renderer/content_settings_observer.h"
#include "chrome/renderer/automation/dom_automation_controller.h"
-#include "chrome/renderer/extensions/extension_dispatcher.h"
+#include "chrome/renderer/extensions/extension_renderer_context.h"
#include "chrome/renderer/external_host_bindings.h"
#include "chrome/renderer/prerender/prerender_helper.h"
#include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h"
@@ -197,11 +197,11 @@ GURL StripRef(const GURL& url) {
ChromeRenderViewObserver::ChromeRenderViewObserver(
RenderView* render_view,
ContentSettingsObserver* content_settings,
- ExtensionDispatcher* extension_dispatcher,
+ ExtensionRendererContext* extension_renderer_context,
TranslateHelper* translate_helper)
: RenderViewObserver(render_view),
content_settings_(content_settings),
- extension_dispatcher_(extension_dispatcher),
+ extension_renderer_context_(extension_renderer_context),
translate_helper_(translate_helper),
phishing_classifier_(NULL),
last_indexed_page_id_(-1),
@@ -377,7 +377,7 @@ bool ChromeRenderViewObserver::allowScript(WebFrame* frame,
bool ChromeRenderViewObserver::allowScriptExtension(
WebFrame* frame, const WebString& extension_name, int extension_group) {
- return extension_dispatcher_->AllowScriptExtension(
+ return extension_renderer_context_->AllowScriptExtension(
frame, extension_name.utf8(), extension_group);
}
diff --git a/chrome/renderer/chrome_render_view_observer.h b/chrome/renderer/chrome_render_view_observer.h
index 4d06aea..baba525 100644
--- a/chrome/renderer/chrome_render_view_observer.h
+++ b/chrome/renderer/chrome_render_view_observer.h
@@ -18,7 +18,7 @@
class ContentSettingsObserver;
class DomAutomationController;
-class ExtensionDispatcher;
+class ExtensionRendererContext;
class ExternalHostBindings;
class FilePath;
class SkBitmap;
@@ -43,7 +43,7 @@ class ChromeRenderViewObserver : public RenderViewObserver,
ChromeRenderViewObserver(
RenderView* render_view,
ContentSettingsObserver* content_settings,
- ExtensionDispatcher* extension_dispatcher,
+ ExtensionRendererContext* extension_renderer_context,
TranslateHelper* translate_helper);
virtual ~ChromeRenderViewObserver();
@@ -170,7 +170,7 @@ class ChromeRenderViewObserver : public RenderViewObserver,
// Have the same lifetime as us.
ContentSettingsObserver* content_settings_;
- ExtensionDispatcher* extension_dispatcher_;
+ ExtensionRendererContext* extension_renderer_context_;
TranslateHelper* translate_helper_;
safe_browsing::PhishingClassifierDelegate* phishing_classifier_;
diff --git a/chrome/renderer/extensions/chrome_app_bindings.cc b/chrome/renderer/extensions/chrome_app_bindings.cc
index b52b7ca..82f9f41 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_dispatcher.h"
-#include "chrome/renderer/extensions/extension_helper.h"
+#include "chrome/renderer/extensions/extension_render_view_helper.h"
+#include "chrome/renderer/extensions/extension_renderer_context.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,7 +59,8 @@ static const char* const kAppExtensionName = "v8/ChromeApp";
class ChromeAppExtensionWrapper : public v8::Extension {
public:
- explicit ChromeAppExtensionWrapper(ExtensionDispatcher* extension_dispatcher) :
+ explicit ChromeAppExtensionWrapper(
+ ExtensionRendererContext* extension_renderer_context) :
v8::Extension(kAppExtensionName,
"var chrome;"
"if (!chrome)"
@@ -76,11 +77,11 @@ class ChromeAppExtensionWrapper : public v8::Extension {
" this.getDetailsForFrame = GetDetailsForFrame;"
" };"
"}") {
- extension_dispatcher_ = extension_dispatcher;
+ extension_renderer_context_ = extension_renderer_context;
}
~ChromeAppExtensionWrapper() {
- extension_dispatcher_ = NULL;
+ extension_renderer_context_ = NULL;
}
virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
@@ -110,10 +111,11 @@ class ChromeAppExtensionWrapper : public v8::Extension {
return v8::False();
const ::Extension* extension =
- extension_dispatcher_->extensions()->GetByURL(frame->document().url());
+ extension_renderer_context_->extensions()->GetByURL(
+ frame->document().url());
bool has_web_extent = extension &&
- extension_dispatcher_->IsApplicationActive(extension->id());
+ extension_renderer_context_->IsApplicationActive(extension->id());
return v8::Boolean::New(has_web_extent);
}
@@ -127,7 +129,8 @@ class ChromeAppExtensionWrapper : public v8::Extension {
return v8::Undefined();
string16 error;
- ExtensionHelper* helper = ExtensionHelper::Get(render_view);
+ ExtensionRenderViewHelper* helper =
+ ExtensionRenderViewHelper::Get(render_view);
if (!helper->InstallWebApplicationUsingDefinitionFile(frame, &error))
v8::ThrowException(v8::String::New(UTF16ToUTF8(error).c_str()));
@@ -166,7 +169,8 @@ class ChromeAppExtensionWrapper : public v8::Extension {
static v8::Handle<v8::Value> GetDetailsForFrameImpl(const WebFrame* frame) {
const ::Extension* extension =
- extension_dispatcher_->extensions()->GetByURL(frame->document().url());
+ extension_renderer_context_->extensions()->GetByURL(
+ frame->document().url());
if (!extension)
return v8::Null();
@@ -178,14 +182,15 @@ class ChromeAppExtensionWrapper : public v8::Extension {
frame->mainWorldScriptContext());
}
- static ExtensionDispatcher* extension_dispatcher_;
+ static ExtensionRendererContext* extension_renderer_context_;
};
-ExtensionDispatcher* ChromeAppExtensionWrapper::extension_dispatcher_;
+ExtensionRendererContext*
+ ChromeAppExtensionWrapper::extension_renderer_context_;
v8::Extension* ChromeAppExtension::Get(
- ExtensionDispatcher* extension_dispatcher) {
- return new ChromeAppExtensionWrapper(extension_dispatcher);
+ ExtensionRendererContext* extension_renderer_context) {
+ return new ChromeAppExtensionWrapper(extension_renderer_context);
}
} // namespace extensions_v8
diff --git a/chrome/renderer/extensions/chrome_app_bindings.h b/chrome/renderer/extensions/chrome_app_bindings.h
index 8e7da1b..e58ebd8 100644
--- a/chrome/renderer/extensions/chrome_app_bindings.h
+++ b/chrome/renderer/extensions/chrome_app_bindings.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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 ExtensionDispatcher;
+class ExtensionRendererContext;
namespace v8 {
class Extension;
@@ -22,7 +22,8 @@ namespace extensions_v8 {
class ChromeAppExtension {
public:
- static v8::Extension* Get(ExtensionDispatcher* extension_dispatcher);
+ static v8::Extension* Get(
+ ExtensionRendererContext* extension_renderer_context);
};
} // namespace extensions_v8
diff --git a/chrome/renderer/extensions/chrome_webstore_bindings.cc b/chrome/renderer/extensions/chrome_webstore_bindings.cc
index 1f32fa2..feba7c4c 100644
--- a/chrome/renderer/extensions/chrome_webstore_bindings.cc
+++ b/chrome/renderer/extensions/chrome_webstore_bindings.cc
@@ -6,7 +6,7 @@
#include "base/string_util.h"
#include "chrome/common/extensions/extension.h"
-#include "chrome/renderer/extensions/extension_helper.h"
+#include "chrome/renderer/extensions/extension_render_view_helper.h"
#include "content/renderer/render_view.h"
#include "googleurl/src/gurl.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
@@ -74,7 +74,8 @@ class ChromeWebstoreExtensionWrapper : public v8::Extension {
std::string webstore_item_id;
std::string error;
if (GetWebstoreItemIdFromFrame(frame, &webstore_item_id, &error)) {
- ExtensionHelper* helper = ExtensionHelper::Get(render_view);
+ ExtensionRenderViewHelper* helper =
+ ExtensionRenderViewHelper::Get(render_view);
helper->InlineWebstoreInstall(webstore_item_id);
} else {
v8::ThrowException(v8::String::New(error.c_str()));
diff --git a/chrome/renderer/extensions/event_bindings.cc b/chrome/renderer/extensions/event_bindings.cc
index ed65e3f..679d85c 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(ExtensionDispatcher* dispatcher)
+ explicit ExtensionImpl(ExtensionRendererContext* context)
: ExtensionBase(EventBindings::kName,
GetStringResource(IDR_EVENT_BINDINGS_JS),
- 0, NULL, dispatcher) {
+ 0, NULL, context) {
}
~ExtensionImpl() {}
@@ -167,8 +167,8 @@ class ExtensionImpl : public ExtensionBase {
const char* EventBindings::kName = "chrome/EventBindings";
-v8::Extension* EventBindings::Get(ExtensionDispatcher* dispatcher) {
- static v8::Extension* extension = new ExtensionImpl(dispatcher);
+v8::Extension* EventBindings::Get(ExtensionRendererContext* context) {
+ static v8::Extension* extension = new ExtensionImpl(context);
return extension;
}
diff --git a/chrome/renderer/extensions/event_bindings.h b/chrome/renderer/extensions/event_bindings.h
index 4599217..5e27928 100644
--- a/chrome/renderer/extensions/event_bindings.h
+++ b/chrome/renderer/extensions/event_bindings.h
@@ -8,7 +8,7 @@
#include "v8/include/v8.h"
-class ExtensionDispatcher;
+class ExtensionRendererContext;
class RenderThreadBase;
// This class deals with the javascript bindings related to Event objects.
@@ -16,7 +16,7 @@ class EventBindings {
public:
static const char* kName; // The v8::Extension name, for dependencies.
- static v8::Extension* Get(ExtensionDispatcher* dispatcher);
+ static v8::Extension* Get(ExtensionRendererContext* context);
// 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 002c3b1..0529a51 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_dispatcher.h"
+#include "chrome/renderer/extensions/extension_renderer_context.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_dispatcher_->extensions();
+ const ExtensionSet* extensions = extension_renderer_context_->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_dispatcher_->IsExtensionActive(extension->id()) &&
+ extension_renderer_context_->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 9e9efb1..0aa2cef 100644
--- a/chrome/renderer/extensions/extension_base.h
+++ b/chrome/renderer/extensions/extension_base.h
@@ -12,7 +12,7 @@
#include <string>
class Extension;
-class ExtensionDispatcher;
+class ExtensionRendererContext;
class RenderView;
namespace WebKit {
@@ -29,9 +29,9 @@ class ExtensionBase : public v8::Extension {
const char* source,
int dep_count,
const char** deps,
- ExtensionDispatcher* extension_dispatcher)
+ ExtensionRendererContext* extension_renderer_context)
: v8::Extension(name, source, dep_count, deps),
- extension_dispatcher_(extension_dispatcher) {
+ extension_renderer_context_(extension_renderer_context) {
}
// Derived classes should call this at the end of their implementation in
@@ -41,7 +41,9 @@ class ExtensionBase : public v8::Extension {
GetNativeFunction(v8::Handle<v8::String> name);
// TODO(jstritar): Used for testing http://crbug.com/91582. Remove when done.
- ExtensionDispatcher* extension_dispatcher() { return extension_dispatcher_; }
+ ExtensionRendererContext* extension_renderer_context() {
+ return extension_renderer_context_;
+ }
// Returns a hidden variable for use by the bindings in the specified context
// that is unreachable by the page for the current context.
@@ -73,7 +75,7 @@ class ExtensionBase : public v8::Extension {
// Returns the chromeHidden object for the current context.
static v8::Handle<v8::Value> GetChromeHidden(const v8::Arguments& args);
- ExtensionDispatcher* extension_dispatcher_;
+ ExtensionRendererContext* extension_renderer_context_;
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 e6dad05..de96c63 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_dispatcher.h"
+#include "chrome/renderer/extensions/extension_renderer_context.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,
- ExtensionDispatcher* extension_dispatcher,
+ ExtensionRendererContext* extension_renderer_context,
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_dispatcher->extensions();
+ const ExtensionSet* extensions = extension_renderer_context->extensions();
extension_id = extensions->GetIdByURL(url);
if (!extensions->ExtensionBindingsAllowed(url))
return;
} else {
extension_id =
- extension_dispatcher->user_script_slave()->
+ extension_renderer_context->user_script_slave()->
GetExtensionIdForIsolatedWorld(isolated_world_id);
}
@@ -92,7 +92,8 @@ 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_dispatcher->is_extension_process());
+ argv[1] = v8::Boolean::New(
+ extension_renderer_context->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 44f8b0a..8f421e8 100644
--- a/chrome/renderer/extensions/extension_bindings_context.h
+++ b/chrome/renderer/extensions/extension_bindings_context.h
@@ -18,17 +18,18 @@ namespace WebKit {
class WebFrame;
}
-class ExtensionDispatcher;
+class ExtensionRendererContext;
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,
- ExtensionDispatcher* extension_dispatcher,
- int isolated_world_id);
+ static void HandleV8ContextCreated(
+ WebKit::WebFrame* frame,
+ const v8::Handle<v8::Context>& v8_context,
+ ExtensionRendererContext* extension_renderer_context,
+ int isolated_world_id);
static void HandleV8ContextDestroyed(WebKit::WebFrame* frame);
diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc
index 9cdc396..1bb5d36 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_bindings_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/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/js_only_v8_extensions.h"
#include "chrome/renderer/extensions/renderer_extension_bindings.h"
#include "chrome/renderer/extensions/user_script_slave.h"
@@ -90,7 +90,8 @@ class ExtensionViewAccumulator : public RenderViewVisitor {
v8::Local<v8::Array> views() { return views_; }
virtual bool Visit(RenderView* render_view) {
- ExtensionHelper* helper = ExtensionHelper::Get(render_view);
+ ExtensionRenderViewHelper* helper =
+ ExtensionRenderViewHelper::Get(render_view);
if (!ViewTypeMatches(helper->view_type(), view_type_))
return true;
@@ -152,12 +153,12 @@ class ExtensionViewAccumulator : public RenderViewVisitor {
class ExtensionImpl : public ExtensionBase {
public:
- explicit ExtensionImpl(ExtensionDispatcher* extension_dispatcher)
+ explicit ExtensionImpl(ExtensionRendererContext* extension_renderer_context)
: ExtensionBase(kExtensionName,
GetStringResource(IDR_EXTENSION_PROCESS_BINDINGS_JS),
arraysize(kExtensionDeps),
kExtensionDeps,
- extension_dispatcher) {
+ extension_renderer_context) {
}
~ExtensionImpl() {}
@@ -390,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_dispatcher_->extensions()->GetByID(
+ v8_extension->extension_renderer_context_->extensions()->GetByID(
extension_id);
CHECK(!extension_id.empty());
if (!extension)
@@ -421,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_dispatcher_->function_names();
+ v8_extension->extension_renderer_context_->function_names();
if (function_names.find(name) == function_names.end()) {
NOTREACHED() << "Unexpected function " << name;
return v8::Undefined();
@@ -562,10 +563,12 @@ class ExtensionImpl : public ExtensionBase {
} // namespace
v8::Extension* ExtensionProcessBindings::Get(
- ExtensionDispatcher* extension_dispatcher) {
- static v8::Extension* extension = new ExtensionImpl(extension_dispatcher);
- CHECK_EQ(extension_dispatcher,
- static_cast<ExtensionImpl*>(extension)->extension_dispatcher());
+ 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());
return extension;
}
diff --git a/chrome/renderer/extensions/extension_process_bindings.h b/chrome/renderer/extensions/extension_process_bindings.h
index 7977370..d72ecc1 100644
--- a/chrome/renderer/extensions/extension_process_bindings.h
+++ b/chrome/renderer/extensions/extension_process_bindings.h
@@ -14,7 +14,7 @@
#include "v8/include/v8.h"
-class ExtensionDispatcher;
+class ExtensionRendererContext;
class GURL;
class URLPattern;
@@ -24,7 +24,8 @@ class WebView;
class ExtensionProcessBindings {
public:
- static v8::Extension* Get(ExtensionDispatcher* extension_dispatcher);
+ static v8::Extension* Get(
+ ExtensionRendererContext* extension_renderer_context);
// Handles a response to an API request.
static void HandleResponse(int request_id, bool success,
diff --git a/chrome/renderer/extensions/extension_helper.cc b/chrome/renderer/extensions/extension_render_view_helper.cc
index e1a1e27..b994321 100644
--- a/chrome/renderer/extensions/extension_helper.cc
+++ b/chrome/renderer/extensions/extension_render_view_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_helper.h"
+#include "chrome/renderer/extensions/extension_render_view_helper.h"
#include "base/command_line.h"
#include "base/lazy_instance.h"
@@ -14,18 +14,18 @@
#include "chrome/common/url_constants.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;
@@ -44,20 +44,21 @@ typedef std::map<WebFrame*, UserScriptIdleScheduler*> SchedulerMap;
static base::LazyInstance<SchedulerMap> g_schedulers(base::LINKER_INITIALIZED);
}
-ExtensionHelper::ExtensionHelper(RenderView* render_view,
- ExtensionDispatcher* extension_dispatcher)
+ExtensionRenderViewHelper::ExtensionRenderViewHelper(
+ RenderView* render_view,
+ ExtensionRendererContext* extension_renderer_context)
: RenderViewObserver(render_view),
- RenderViewObserverTracker<ExtensionHelper>(render_view),
- extension_dispatcher_(extension_dispatcher),
+ RenderViewObserverTracker<ExtensionRenderViewHelper>(render_view),
+ extension_renderer_context_(extension_renderer_context),
pending_app_icon_requests_(0),
view_type_(ViewType::INVALID),
browser_window_id_(-1) {
}
-ExtensionHelper::~ExtensionHelper() {
+ExtensionRenderViewHelper::~ExtensionRenderViewHelper() {
}
-bool ExtensionHelper::InstallWebApplicationUsingDefinitionFile(
+bool ExtensionRenderViewHelper::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
@@ -99,16 +100,19 @@ bool ExtensionHelper::InstallWebApplicationUsingDefinitionFile(
app_definition_fetcher_.reset(new ResourceFetcher(
pending_app_info_->manifest_url, render_view()->webview()->mainFrame(),
WebURLRequest::TargetIsSubresource,
- NewCallback(this, &ExtensionHelper::DidDownloadApplicationDefinition)));
+ NewCallback(
+ this,
+ &ExtensionRenderViewHelper::DidDownloadApplicationDefinition)));
return true;
}
-void ExtensionHelper::InlineWebstoreInstall(std::string webstore_item_id) {
+void ExtensionRenderViewHelper::InlineWebstoreInstall(
+ std::string webstore_item_id) {
Send(new ExtensionHostMsg_InlineWebstoreInstall(
routing_id(), webstore_item_id));
}
-void ExtensionHelper::OnInlineWebstoreInstallResponse(
+void ExtensionRenderViewHelper::OnInlineWebstoreInstallResponse(
bool success,
const std::string& error) {
// TODO(mihaip): dispatch these as events to the the WebFrame that initiated
@@ -120,9 +124,9 @@ void ExtensionHelper::OnInlineWebstoreInstallResponse(
}
}
-bool ExtensionHelper::OnMessageReceived(const IPC::Message& message) {
+bool ExtensionRenderViewHelper::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(ExtensionHelper, message)
+ IPC_BEGIN_MESSAGE_MAP(ExtensionRenderViewHelper, message)
IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse)
IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke)
IPC_MESSAGE_HANDLER(ExtensionMsg_ExecuteCode, OnExecuteCode)
@@ -138,8 +142,8 @@ bool ExtensionHelper::OnMessageReceived(const IPC::Message& message) {
return handled;
}
-void ExtensionHelper::DidFinishDocumentLoad(WebFrame* frame) {
- extension_dispatcher_->user_script_slave()->InjectScripts(
+void ExtensionRenderViewHelper::DidFinishDocumentLoad(WebFrame* frame) {
+ extension_renderer_context_->user_script_slave()->InjectScripts(
frame, UserScript::DOCUMENT_END);
SchedulerMap::iterator i = g_schedulers.Get().find(frame);
@@ -147,24 +151,25 @@ void ExtensionHelper::DidFinishDocumentLoad(WebFrame* frame) {
i->second->DidFinishDocumentLoad();
}
-void ExtensionHelper::DidFinishLoad(WebKit::WebFrame* frame) {
+void ExtensionRenderViewHelper::DidFinishLoad(WebKit::WebFrame* frame) {
SchedulerMap::iterator i = g_schedulers.Get().find(frame);
if (i != g_schedulers.Get().end())
i->second->DidFinishLoad();
}
-void ExtensionHelper::DidCreateDocumentElement(WebFrame* frame) {
- extension_dispatcher_->user_script_slave()->InjectScripts(
+void ExtensionRenderViewHelper::DidCreateDocumentElement(WebFrame* frame) {
+ extension_renderer_context_->user_script_slave()->InjectScripts(
frame, UserScript::DOCUMENT_START);
}
-void ExtensionHelper::DidStartProvisionalLoad(WebKit::WebFrame* frame) {
+void ExtensionRenderViewHelper::DidStartProvisionalLoad(
+ WebKit::WebFrame* frame) {
SchedulerMap::iterator i = g_schedulers.Get().find(frame);
if (i != g_schedulers.Get().end())
i->second->DidStartProvisionalLoad();
}
-void ExtensionHelper::FrameDetached(WebFrame* frame) {
+void ExtensionRenderViewHelper::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);
@@ -175,7 +180,8 @@ void ExtensionHelper::FrameDetached(WebFrame* frame) {
g_schedulers.Get().erase(i);
}
-void ExtensionHelper::DidCreateDataSource(WebFrame* frame, WebDataSource* ds) {
+void ExtensionRenderViewHelper::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()) {
@@ -189,10 +195,10 @@ void ExtensionHelper::DidCreateDataSource(WebFrame* frame, WebDataSource* ds) {
return;
g_schedulers.Get()[frame] = new UserScriptIdleScheduler(
- frame, extension_dispatcher_);
+ frame, extension_renderer_context_);
}
-void ExtensionHelper::OnExtensionResponse(int request_id,
+void ExtensionRenderViewHelper::OnExtensionResponse(int request_id,
bool success,
const std::string& response,
const std::string& error) {
@@ -200,15 +206,16 @@ void ExtensionHelper::OnExtensionResponse(int request_id,
request_id, success, response, error);
}
-void ExtensionHelper::OnExtensionMessageInvoke(const std::string& extension_id,
- const std::string& function_name,
- const ListValue& args,
- const GURL& event_url) {
+void ExtensionRenderViewHelper::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 ExtensionHelper::OnExecuteCode(
+void ExtensionRenderViewHelper::OnExecuteCode(
const ExtensionMsg_ExecuteCode_Params& params) {
WebView* webview = render_view()->webview();
WebFrame* main_frame = webview->mainFrame();
@@ -225,7 +232,7 @@ void ExtensionHelper::OnExecuteCode(
i->second->ExecuteCode(params);
}
-void ExtensionHelper::OnGetApplicationInfo(int page_id) {
+void ExtensionRenderViewHelper::OnGetApplicationInfo(int page_id) {
WebApplicationInfo app_info;
if (page_id == render_view()->page_id()) {
string16 error;
@@ -248,15 +255,15 @@ void ExtensionHelper::OnGetApplicationInfo(int page_id) {
routing_id(), page_id, app_info));
}
-void ExtensionHelper::OnNotifyRendererViewType(ViewType::Type type) {
+void ExtensionRenderViewHelper::OnNotifyRendererViewType(ViewType::Type type) {
view_type_ = type;
}
-void ExtensionHelper::OnUpdateBrowserWindowId(int window_id) {
+void ExtensionRenderViewHelper::OnUpdateBrowserWindowId(int window_id) {
browser_window_id_ = window_id;
}
-void ExtensionHelper::DidDownloadApplicationDefinition(
+void ExtensionRenderViewHelper::DidDownloadApplicationDefinition(
const WebKit::WebURLResponse& response,
const std::string& data) {
scoped_ptr<WebApplicationInfo> app_info(
@@ -291,15 +298,17 @@ void ExtensionHelper::DidDownloadApplicationDefinition(
pending_app_info_->icons[i].width,
WebURLRequest::TargetIsFavicon,
NewCallback(
- this, &ExtensionHelper::DidDownloadApplicationIcon))));
+ this,
+ &ExtensionRenderViewHelper::DidDownloadApplicationIcon))));
}
} else {
Send(new ExtensionHostMsg_InstallApplication(routing_id(), *app_info));
}
}
-void ExtensionHelper::DidDownloadApplicationIcon(ImageResourceFetcher* fetcher,
- const SkBitmap& image) {
+void ExtensionRenderViewHelper::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
@@ -348,7 +357,7 @@ void ExtensionHelper::DidDownloadApplicationIcon(ImageResourceFetcher* fetcher,
pending_app_info_.reset(NULL);
}
-void ExtensionHelper::AddErrorToRootConsole(const string16& message) {
+void ExtensionRenderViewHelper::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_helper.h b/chrome/renderer/extensions/extension_render_view_helper.h
index fa1fb61..bff448c 100644
--- a/chrome/renderer/extensions/extension_helper.h
+++ b/chrome/renderer/extensions/extension_render_view_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_HELPER_H_
-#define CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_
+#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDER_VIEW_HELPER_H_
+#define CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDER_VIEW_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 ExtensionDispatcher;
+class ExtensionRendererContext;
class GURL;
struct ExtensionMsg_ExecuteCode_Params;
struct WebApplicationInfo;
@@ -27,12 +27,13 @@ class ResourceFetcher;
}
// RenderView-level plumbing for extension features.
-class ExtensionHelper : public RenderViewObserver,
- public RenderViewObserverTracker<ExtensionHelper> {
+class ExtensionRenderViewHelper
+ : public RenderViewObserver,
+ public RenderViewObserverTracker<ExtensionRenderViewHelper> {
public:
- ExtensionHelper(RenderView* render_view,
- ExtensionDispatcher* extension_dispatcher);
- virtual ~ExtensionHelper();
+ ExtensionRenderViewHelper(RenderView* render_view,
+ ExtensionRendererContext* extension_renderer_context);
+ virtual ~ExtensionRenderViewHelper();
// 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
@@ -83,7 +84,7 @@ class ExtensionHelper : public RenderViewObserver,
// Helper to add an error message to the root frame's console.
void AddErrorToRootConsole(const string16& message);
- ExtensionDispatcher* extension_dispatcher_;
+ ExtensionRendererContext* extension_renderer_context_;
// 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
@@ -106,7 +107,7 @@ class ExtensionHelper : public RenderViewObserver,
// Id number of browser window which RenderView is attached to.
int browser_window_id_;
- DISALLOW_COPY_AND_ASSIGN(ExtensionHelper);
+ DISALLOW_COPY_AND_ASSIGN(ExtensionRenderViewHelper);
};
-#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_HELPER_H_
+#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDER_VIEW_HELPER_H_
diff --git a/chrome/renderer/extensions/extension_dispatcher.cc b/chrome/renderer/extensions/extension_renderer_context.cc
index 5baa8d4..06dc57f 100644
--- a/chrome/renderer/extensions/extension_dispatcher.cc
+++ b/chrome/renderer/extensions/extension_renderer_context.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_dispatcher.h"
+#include "chrome/renderer/extensions/extension_renderer_context.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;
-ExtensionDispatcher::ExtensionDispatcher()
+ExtensionRendererContext::ExtensionRendererContext()
: is_webkit_initialized_(false) {
std::string type_str = CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kProcessType);
@@ -53,13 +53,13 @@ ExtensionDispatcher::ExtensionDispatcher()
user_script_slave_.reset(new UserScriptSlave(&extensions_));
}
-ExtensionDispatcher::~ExtensionDispatcher() {
+ExtensionRendererContext::~ExtensionRendererContext() {
}
-bool ExtensionDispatcher::OnControlMessageReceived(
+bool ExtensionRendererContext::OnControlMessageReceived(
const IPC::Message& message) {
bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(ExtensionDispatcher, message)
+ IPC_BEGIN_MESSAGE_MAP(ExtensionRendererContext, message)
IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnMessageInvoke)
IPC_MESSAGE_HANDLER(ExtensionMsg_SetFunctionNames, OnSetFunctionNames)
IPC_MESSAGE_HANDLER(ExtensionMsg_Loaded, OnLoaded)
@@ -76,7 +76,7 @@ bool ExtensionDispatcher::OnControlMessageReceived(
return handled;
}
-void ExtensionDispatcher::WebKitInitialized() {
+void ExtensionRendererContext::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 ExtensionDispatcher::WebKitInitialized() {
is_webkit_initialized_ = true;
}
-void ExtensionDispatcher::IdleNotification() {
+void ExtensionRendererContext::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 ExtensionDispatcher::IdleNotification() {
}
}
-void ExtensionDispatcher::OnSetFunctionNames(
+void ExtensionRendererContext::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 ExtensionDispatcher::OnMessageInvoke(const std::string& extension_id,
+void ExtensionRendererContext::OnMessageInvoke(const std::string& extension_id,
const std::string& function_name,
const ListValue& args,
const GURL& event_url) {
@@ -147,7 +147,8 @@ void ExtensionDispatcher::OnMessageInvoke(const std::string& extension_id,
}
}
-void ExtensionDispatcher::OnLoaded(const ExtensionMsg_Loaded_Params& params) {
+void ExtensionRendererContext::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
@@ -160,7 +161,7 @@ void ExtensionDispatcher::OnLoaded(const ExtensionMsg_Loaded_Params& params) {
extensions_.Insert(extension);
}
-void ExtensionDispatcher::OnUnloaded(const std::string& id) {
+void ExtensionRendererContext::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
@@ -168,24 +169,24 @@ void ExtensionDispatcher::OnUnloaded(const std::string& id) {
user_script_slave_->RemoveIsolatedWorld(id);
}
-void ExtensionDispatcher::OnSetScriptingWhitelist(
+void ExtensionRendererContext::OnSetScriptingWhitelist(
const Extension::ScriptingWhitelist& extension_ids) {
Extension::SetScriptingWhitelist(extension_ids);
}
-bool ExtensionDispatcher::IsApplicationActive(
+bool ExtensionRendererContext::IsApplicationActive(
const std::string& extension_id) const {
return active_application_ids_.find(extension_id) !=
active_application_ids_.end();
}
-bool ExtensionDispatcher::IsExtensionActive(
+bool ExtensionRendererContext::IsExtensionActive(
const std::string& extension_id) const {
return active_extension_ids_.find(extension_id) !=
active_extension_ids_.end();
}
-bool ExtensionDispatcher::AllowScriptExtension(
+bool ExtensionRendererContext::AllowScriptExtension(
WebFrame* frame,
const std::string& v8_extension_name,
int extension_group) {
@@ -219,12 +220,12 @@ bool ExtensionDispatcher::AllowScriptExtension(
}
-void ExtensionDispatcher::OnActivateApplication(
+void ExtensionRendererContext::OnActivateApplication(
const std::string& extension_id) {
active_application_ids_.insert(extension_id);
}
-void ExtensionDispatcher::OnActivateExtension(
+void ExtensionRendererContext::OnActivateExtension(
const std::string& extension_id) {
active_extension_ids_.insert(extension_id);
@@ -243,7 +244,8 @@ void ExtensionDispatcher::OnActivateExtension(
InitOriginPermissions(extension);
}
-void ExtensionDispatcher::InitOriginPermissions(const Extension* extension) {
+void ExtensionRendererContext::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.
@@ -260,7 +262,7 @@ void ExtensionDispatcher::InitOriginPermissions(const Extension* extension) {
extension->GetActivePermissions()->explicit_hosts());
}
-void ExtensionDispatcher::UpdateOriginPermissions(
+void ExtensionRendererContext::UpdateOriginPermissions(
UpdatedExtensionPermissionsInfo::Reason reason,
const Extension* extension,
const URLPatternSet& origins) {
@@ -286,7 +288,7 @@ void ExtensionDispatcher::UpdateOriginPermissions(
}
}
-void ExtensionDispatcher::OnUpdatePermissions(
+void ExtensionRendererContext::OnUpdatePermissions(
int reason_id,
const std::string& extension_id,
const ExtensionAPIPermissionSet& apis,
@@ -315,14 +317,14 @@ void ExtensionDispatcher::OnUpdatePermissions(
UpdateOriginPermissions(reason, extension, explicit_hosts);
}
-void ExtensionDispatcher::OnUpdateUserScripts(
+void ExtensionRendererContext::OnUpdateUserScripts(
base::SharedMemoryHandle scripts) {
DCHECK(base::SharedMemory::IsHandleValid(scripts)) << "Bad scripts handle";
user_script_slave_->UpdateScripts(scripts);
UpdateActiveExtensions();
}
-void ExtensionDispatcher::UpdateActiveExtensions() {
+void ExtensionRendererContext::UpdateActiveExtensions() {
// In single-process mode, the browser process reports the active extensions.
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess))
return;
@@ -332,7 +334,7 @@ void ExtensionDispatcher::UpdateActiveExtensions() {
child_process_logging::SetActiveExtensions(active_extensions);
}
-void ExtensionDispatcher::RegisterExtension(v8::Extension* extension,
+void ExtensionRendererContext::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_dispatcher.h b/chrome/renderer/extensions/extension_renderer_context.h
index 84a62cd..58a022f 100644
--- a/chrome/renderer/extensions/extension_dispatcher.h
+++ b/chrome/renderer/extensions/extension_renderer_context.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_DISPATCHER_H_
-#define CHROME_RENDERER_EXTENSIONS_EXTENSION_DISPATCHER_H_
+#ifndef CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDERER_CONTEXT_H_
+#define CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDERER_CONTEXT_H_
#pragma once
#include <set>
@@ -12,8 +12,8 @@
#include "base/shared_memory.h"
#include "base/timer.h"
-#include "content/renderer/render_process_observer.h"
#include "chrome/common/extensions/extension_set.h"
+#include "content/renderer/render_process_observer.h"
class GURL;
class RenderThread;
@@ -34,12 +34,12 @@ namespace v8 {
class Extension;
}
-// Dispatches extension control messages sent to the renderer and stores
-// renderer extension related state.
-class ExtensionDispatcher : public RenderProcessObserver {
+// Render-process level context for the extension system. Stores process-level
+// state and routes process-level IPC mesages.
+class ExtensionRendererContext : public RenderProcessObserver {
public:
- ExtensionDispatcher();
- virtual ~ExtensionDispatcher();
+ ExtensionRendererContext();
+ virtual ~ExtensionRendererContext();
const std::set<std::string>& function_names() const {
return function_names_;
@@ -127,7 +127,7 @@ class ExtensionDispatcher : public RenderProcessObserver {
// True once WebKit has been initialized (and it is therefore safe to poke).
bool is_webkit_initialized_;
- DISALLOW_COPY_AND_ASSIGN(ExtensionDispatcher);
+ DISALLOW_COPY_AND_ASSIGN(ExtensionRendererContext);
};
-#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_DISPATCHER_H_
+#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDERER_CONTEXT_H_
diff --git a/chrome/renderer/extensions/renderer_extension_bindings.cc b/chrome/renderer/extensions/renderer_extension_bindings.cc
index cb0e8be..1438590 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_dispatcher.h"
+#include "chrome/renderer/extensions/extension_renderer_context.h"
#include "content/renderer/render_thread.h"
#include "content/renderer/render_view.h"
#include "grit/renderer_resources.h"
@@ -61,10 +61,10 @@ const char* kExtensionDeps[] = { EventBindings::kName };
class ExtensionImpl : public ExtensionBase {
public:
- explicit ExtensionImpl(ExtensionDispatcher* dispatcher)
+ explicit ExtensionImpl(ExtensionRendererContext* context)
: ExtensionBase(RendererExtensionBindings::kName,
GetStringResource(IDR_RENDERER_EXTENSION_BINDINGS_JS),
- arraysize(kExtensionDeps), kExtensionDeps, dispatcher) {
+ arraysize(kExtensionDeps), kExtensionDeps, context) {
}
~ExtensionImpl() {}
@@ -247,7 +247,8 @@ class ExtensionImpl : public ExtensionBase {
const char* RendererExtensionBindings::kName =
"chrome/RendererExtensionBindings";
-v8::Extension* RendererExtensionBindings::Get(ExtensionDispatcher* dispatcher) {
- static v8::Extension* extension = new ExtensionImpl(dispatcher);
+v8::Extension* RendererExtensionBindings::Get(
+ ExtensionRendererContext* context) {
+ static v8::Extension* extension = new ExtensionImpl(context);
return extension;
}
diff --git a/chrome/renderer/extensions/renderer_extension_bindings.h b/chrome/renderer/extensions/renderer_extension_bindings.h
index 6786921..e796e2a 100644
--- a/chrome/renderer/extensions/renderer_extension_bindings.h
+++ b/chrome/renderer/extensions/renderer_extension_bindings.h
@@ -10,7 +10,7 @@
#include <string>
-class ExtensionDispatcher;
+class ExtensionRendererContext;
class GURL;
class RenderView;
@@ -22,7 +22,7 @@ class RendererExtensionBindings {
static const char* kName;
// Creates an instance of the extension.
- static v8::Extension* Get(ExtensionDispatcher* dispatcher);
+ static v8::Extension* Get(ExtensionRendererContext* context);
};
#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 5c9eea6..17a9335 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_helper.h"
+#include "chrome/renderer/extensions/extension_render_view_helper.h"
+#include "chrome/renderer/extensions/extension_renderer_context.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, ExtensionDispatcher* extension_dispatcher)
+ WebFrame* frame, ExtensionRendererContext* extension_renderer_context)
: ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
frame_(frame),
has_run_(false),
- extension_dispatcher_(extension_dispatcher) {
+ extension_renderer_context_(extension_renderer_context) {
}
UserScriptIdleScheduler::~UserScriptIdleScheduler() {
@@ -82,7 +82,7 @@ void UserScriptIdleScheduler::MaybeRun() {
// http://code.google.com/p/chromium/issues/detail?id=29644
has_run_ = true;
- extension_dispatcher_->user_script_slave()->InjectScripts(
+ extension_renderer_context_->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_dispatcher_->extensions()->GetByID(
- params.extension_id);
+ const Extension* extension =
+ extension_renderer_context_->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_dispatcher_->user_script_slave()->
+ extension_renderer_context_->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 62258c6..903c030 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 ExtensionDispatcher;
+class ExtensionRendererContext;
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
-// ExtensionHelper proxy these calls to the renderer process'
-// ExtensionDispatcher, which contains the mapping from WebFrame to us.
+// ExtensionRenderViewHelper proxy these calls to the renderer process'
+// ExtensionRendererContext, which contains the mapping from WebFrame to us.
class UserScriptIdleScheduler {
public:
UserScriptIdleScheduler(WebKit::WebFrame* frame,
- ExtensionDispatcher* extension_dispatcher);
+ ExtensionRendererContext* extension_renderer_context);
~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_;
- ExtensionDispatcher* extension_dispatcher_;
+ ExtensionRendererContext* extension_renderer_context_;
};
#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 dbdec79..d1e131e 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"
diff --git a/chrome/test/base/render_view_test.cc b/chrome/test/base/render_view_test.cc
index 10f5b60..f54b611 100644
--- a/chrome/test/base/render_view_test.cc
+++ b/chrome/test/base/render_view_test.cc
@@ -10,8 +10,8 @@
#include "chrome/common/render_messages.h"
#include "chrome/renderer/autofill/password_autofill_manager.h"
#include "chrome/renderer/extensions/event_bindings.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/renderer_extension_bindings.h"
#include "chrome/renderer/mock_render_process.h"
@@ -95,8 +95,9 @@ void RenderViewTest::LoadHTML(const char* html) {
void RenderViewTest::SetUp() {
content::GetContentClient()->set_renderer(&chrome_content_renderer_client_);
- extension_dispatcher_ = new ExtensionDispatcher();
- chrome_content_renderer_client_.SetExtensionDispatcher(extension_dispatcher_);
+ extension_dispatcher_ = new ExtensionRendererContext();
+ chrome_content_renderer_client_.SetExtensionRendererContext(
+ extension_dispatcher_);
sandbox_init_wrapper_.reset(new SandboxInitWrapper());
command_line_.reset(new CommandLine(CommandLine::NO_PROGRAM));
params_.reset(new MainFunctionParams(*command_line_, *sandbox_init_wrapper_,
diff --git a/chrome/test/base/render_view_test.h b/chrome/test/base/render_view_test.h
index 50a3564..f3deaf6 100644
--- a/chrome/test/base/render_view_test.h
+++ b/chrome/test/base/render_view_test.h
@@ -28,7 +28,7 @@ class AutofillAgent;
class PasswordAutofillManager;
}
-class ExtensionDispatcher;
+class ExtensionRendererContext;
class MockRenderProcess;
class RendererMainPlatformDelegate;
@@ -95,7 +95,7 @@ class RenderViewTest : public testing::Test {
MessageLoop msg_loop_;
chrome::ChromeContentRendererClient chrome_content_renderer_client_;
- ExtensionDispatcher* extension_dispatcher_;
+ ExtensionRendererContext* extension_dispatcher_;
MockRenderThread render_thread_;
scoped_ptr<MockRenderProcess> mock_process_;
scoped_refptr<RenderView> view_;