Commit 9502c644 authored by thestig's avatar thestig Committed by Commit bot

Cleanup: Remove Dispatcher and UserScript classes from builds where extensions are disabled.

BUG=402728

Review URL: https://codereview.chromium.org/559103003

Cr-Commit-Position: refs/heads/master@{#294713}
parent c9e38a27
......@@ -35,12 +35,7 @@
#include "chrome/renderer/chrome_render_process_observer.h"
#include "chrome/renderer/chrome_render_view_observer.h"
#include "chrome/renderer/content_settings_observer.h"
#include "chrome/renderer/extensions/chrome_extension_helper.h"
#include "chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.h"
#include "chrome/renderer/extensions/chrome_extensions_renderer_client.h"
#include "chrome/renderer/extensions/extension_frame_helper.h"
#include "chrome/renderer/extensions/renderer_permissions_policy_delegate.h"
#include "chrome/renderer/extensions/resource_request_policy.h"
#include "chrome/renderer/external_extension.h"
#include "chrome/renderer/loadtimes_extension_bindings.h"
#include "chrome/renderer/media/cast_ipc_dispatcher.h"
......@@ -90,9 +85,6 @@
#include "extensions/common/extension_set.h"
#include "extensions/common/extension_urls.h"
#include "extensions/common/switches.h"
#include "extensions/renderer/dispatcher.h"
#include "extensions/renderer/extension_helper.h"
#include "extensions/renderer/script_context.h"
#include "ipc/ipc_sync_channel.h"
#include "net/base/net_errors.h"
#include "ppapi/c/private/ppb_nacl_private.h"
......@@ -122,7 +114,15 @@
#endif
#if defined(ENABLE_EXTENSIONS)
#include "chrome/renderer/extensions/chrome_extension_helper.h"
#include "chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.h"
#include "chrome/renderer/extensions/extension_frame_helper.h"
#include "chrome/renderer/extensions/renderer_permissions_policy_delegate.h"
#include "chrome/renderer/extensions/resource_request_policy.h"
#include "extensions/renderer/dispatcher.h"
#include "extensions/renderer/extension_helper.h"
#include "extensions/renderer/extensions_render_frame_observer.h"
#include "extensions/renderer/script_context.h"
#endif
#if defined(ENABLE_FULL_PRINTING)
......@@ -254,6 +254,7 @@ bool ShouldUseJavaScriptSettingForPlugin(const WebPluginInfo& plugin) {
return false;
}
#if defined(ENABLE_EXTENSIONS)
void IsGuestViewApiAvailableToScriptContext(
bool* api_is_available,
extensions::ScriptContext* context) {
......@@ -261,6 +262,7 @@ void IsGuestViewApiAvailableToScriptContext(
*api_is_available = true;
}
}
#endif
} // namespace
......@@ -290,6 +292,7 @@ void ChromeContentRendererClient::RenderThreadStarted() {
chrome_observer_.reset(new ChromeRenderProcessObserver(this));
web_cache_observer_.reset(new web_cache::WebCacheRenderProcessObserver());
#if defined(ENABLE_EXTENSIONS)
extension_dispatcher_delegate_.reset(
new ChromeExtensionsDispatcherDelegate());
// ChromeRenderViewTest::SetUp() creates its own ExtensionDispatcher and
......@@ -301,6 +304,8 @@ void ChromeContentRendererClient::RenderThreadStarted() {
permissions_policy_delegate_.reset(
new extensions::RendererPermissionsPolicyDelegate(
extension_dispatcher_.get()));
#endif
prescient_networking_dispatcher_.reset(new PrescientNetworkingDispatcher());
net_predictor_.reset(new RendererNetPredictor());
#if defined(ENABLE_SPELLCHECK)
......@@ -324,7 +329,9 @@ void ChromeContentRendererClient::RenderThreadStarted() {
thread->AddObserver(chrome_observer_.get());
thread->AddObserver(web_cache_observer_.get());
#if defined(ENABLE_EXTENSIONS)
thread->AddObserver(extension_dispatcher_.get());
#endif
#if defined(FULL_SAFE_BROWSING)
thread->AddObserver(phishing_classifier_.get());
#endif
......@@ -435,8 +442,12 @@ void ChromeContentRendererClient::RenderFrameCreated(
content::RenderFrame* render_frame) {
new ChromeRenderFrameObserver(render_frame);
extensions::Dispatcher* ext_dispatcher = NULL;
#if defined(ENABLE_EXTENSIONS)
ext_dispatcher = extension_dispatcher_.get();
#endif
ContentSettingsObserver* content_settings =
new ContentSettingsObserver(render_frame, extension_dispatcher_.get());
new ContentSettingsObserver(render_frame, ext_dispatcher);
if (chrome_observer_.get()) {
content_settings->SetContentSettingRules(
chrome_observer_->content_setting_rules());
......@@ -444,9 +455,8 @@ void ChromeContentRendererClient::RenderFrameCreated(
#if defined(ENABLE_EXTENSIONS)
new extensions::ExtensionsRenderFrameObserver(render_frame);
new extensions::ExtensionFrameHelper(render_frame, ext_dispatcher);
#endif
new extensions::ExtensionFrameHelper(render_frame,
extension_dispatcher_.get());
#if defined(ENABLE_PLUGINS)
new PepperHelper(render_frame);
......@@ -478,9 +488,11 @@ void ChromeContentRendererClient::RenderFrameCreated(
void ChromeContentRendererClient::RenderViewCreated(
content::RenderView* render_view) {
#if defined(ENABLE_EXTENSIONS)
new extensions::ExtensionHelper(render_view, extension_dispatcher_.get());
new extensions::ChromeExtensionHelper(render_view);
extension_dispatcher_->OnRenderViewCreated(render_view);
#endif
new PageLoadHistograms(render_view);
#if defined(ENABLE_PRINTING)
new printing::PrintWebViewHelper(render_view);
......@@ -529,6 +541,7 @@ std::string ChromeContentRendererClient::GetDefaultEncoding() {
return l10n_util::GetStringUTF8(IDS_DEFAULT_ENCODING);
}
#if defined(ENABLE_EXTENSIONS)
const Extension* ChromeContentRendererClient::GetExtensionByOrigin(
const WebSecurityOrigin& origin) const {
if (!EqualsASCII(origin.protocol(), extensions::kExtensionScheme))
......@@ -537,6 +550,7 @@ const Extension* ChromeContentRendererClient::GetExtensionByOrigin(
const std::string extension_id = origin.host().utf8().data();
return extension_dispatcher_->extensions()->GetByID(extension_id);
}
#endif
bool ChromeContentRendererClient::OverrideCreatePlugin(
content::RenderFrame* render_frame,
......@@ -544,6 +558,7 @@ bool ChromeContentRendererClient::OverrideCreatePlugin(
const WebPluginParams& params,
WebPlugin** plugin) {
std::string orig_mime_type = params.mimeType.utf8();
#if defined(ENABLE_EXTENSIONS)
if (orig_mime_type == content::kBrowserPluginMimeType) {
bool guest_view_api_available = false;
extension_dispatcher_->script_context_set().ForEach(
......@@ -553,6 +568,7 @@ bool ChromeContentRendererClient::OverrideCreatePlugin(
if (guest_view_api_available)
return false;
}
#endif
ChromeViewHostMsg_GetPluginInfo_Output output;
#if defined(ENABLE_PLUGINS)
......@@ -1086,11 +1102,13 @@ void ChromeContentRendererClient::GetNavigationErrorStrings(
const GURL failed_url = error.unreachableURL;
const Extension* extension = NULL;
#if defined(ENABLE_EXTENSIONS)
if (failed_url.is_valid() &&
!failed_url.SchemeIs(extensions::kExtensionScheme)) {
extension = extension_dispatcher_->extensions()->GetExtensionOrAppByURL(
failed_url);
}
#endif
bool is_post = EqualsASCII(failed_request.httpMethod(), "POST");
......@@ -1133,10 +1151,15 @@ void ChromeContentRendererClient::GetNavigationErrorStrings(
}
bool ChromeContentRendererClient::RunIdleHandlerWhenWidgetsHidden() {
#if defined(ENABLE_EXTENSIONS)
return !extension_dispatcher_->is_extension_process();
#else
return true;
#endif
}
bool ChromeContentRendererClient::AllowPopup() {
#if defined(ENABLE_EXTENSIONS)
extensions::ScriptContext* current_context =
extension_dispatcher_->script_context_set().GetCurrent();
if (!current_context || !current_context->extension())
......@@ -1155,6 +1178,7 @@ bool ChromeContentRendererClient::AllowPopup() {
return !current_context->web_frame()->parent();
}
NOTREACHED();
#endif
return false;
}
......@@ -1205,6 +1229,7 @@ bool ChromeContentRendererClient::ShouldFork(WebFrame* frame,
return true;
}
#if defined(ENABLE_EXTENSIONS)
const extensions::ExtensionSet* extensions =
extension_dispatcher_->extensions();
......@@ -1247,6 +1272,7 @@ bool ChromeContentRendererClient::ShouldFork(WebFrame* frame,
if (is_extension_url != extension_dispatcher_->is_extension_process())
return true;
}
#endif // defined(ENABLE_EXTENSIONS)
return false;
}
......@@ -1259,6 +1285,7 @@ bool ChromeContentRendererClient::WillSendRequest(
GURL* new_url) {
// Check whether the request should be allowed. If not allowed, we reset the
// URL to something invalid to prevent the request and cause an error.
#if defined(ENABLE_EXTENSIONS)
if (url.SchemeIs(extensions::kExtensionScheme) &&
!extensions::ResourceRequestPolicy::CanRequestResource(
url,
......@@ -1276,6 +1303,7 @@ bool ChromeContentRendererClient::WillSendRequest(
*new_url = GURL(chrome::kExtensionResourceInvalidRequestURL);
return true;
}
#endif
const content::RenderView* render_view =
content::RenderView::FromWebView(frame->view());
......@@ -1293,8 +1321,10 @@ bool ChromeContentRendererClient::WillSendRequest(
void ChromeContentRendererClient::DidCreateScriptContext(
WebFrame* frame, v8::Handle<v8::Context> context, int extension_group,
int world_id) {
#if defined(ENABLE_EXTENSIONS)
extension_dispatcher_->DidCreateScriptContext(
frame, context, extension_group, world_id);
#endif
}
unsigned long long ChromeContentRendererClient::VisitedLinkHash(
......@@ -1321,6 +1351,7 @@ bool ChromeContentRendererClient::ShouldOverridePageVisibilityState(
return true;
}
#if defined(ENABLE_EXTENSIONS)
void ChromeContentRendererClient::SetExtensionDispatcherForTest(
extensions::Dispatcher* extension_dispatcher) {
extension_dispatcher_.reset(extension_dispatcher);
......@@ -1373,6 +1404,7 @@ bool ChromeContentRendererClient::CrossesExtensionExtents(
return extensions::CrossesExtensionProcessBoundary(
extensions, old_url, new_url, should_consider_workaround);
}
#endif // defined(ENABLE_EXTENSIONS)
#if defined(ENABLE_SPELLCHECK)
void ChromeContentRendererClient::SetSpellcheck(SpellCheck* spellcheck) {
......@@ -1389,8 +1421,12 @@ void ChromeContentRendererClient::SetSpellcheck(SpellCheck* spellcheck) {
// static
bool ChromeContentRendererClient::WasWebRequestUsedBySomeExtensions() {
#if defined(ENABLE_EXTENSIONS)
return g_current_client->extension_dispatcher_delegate_
->WasWebRequestUsedBySomeExtensions();
#else
return false;
#endif
}
const void* ChromeContentRendererClient::CreatePPAPIInterface(
......@@ -1414,6 +1450,7 @@ bool ChromeContentRendererClient::IsExternalPepperPlugin(
return module_name == "Native Client";
}
#if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS)
bool ChromeContentRendererClient::IsExtensionOrSharedModuleWhitelisted(
const GURL& url, const std::set<std::string>& whitelist) {
const extensions::ExtensionSet* extension_set =
......@@ -1421,6 +1458,7 @@ bool ChromeContentRendererClient::IsExtensionOrSharedModuleWhitelisted(
return chrome::IsExtensionOrSharedModuleWhitelisted(url, extension_set,
whitelist);
}
#endif
blink::WebSpeechSynthesizer*
ChromeContentRendererClient::OverrideSpeechSynthesizer(
......@@ -1498,7 +1536,7 @@ bool ChromeContentRendererClient::IsPluginAllowedToUseDevChannelAPIs() {
bool ChromeContentRendererClient::IsPluginAllowedToUseCompositorAPI(
const GURL& url) {
#if defined(ENABLE_PLUGINS)
#if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS)
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnablePepperTesting))
return true;
......@@ -1514,7 +1552,7 @@ bool ChromeContentRendererClient::IsPluginAllowedToUseCompositorAPI(
bool ChromeContentRendererClient::IsPluginAllowedToUseVideoDecodeAPI(
const GURL& url) {
#if defined(ENABLE_PLUGINS)
#if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS)
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnablePepperTesting))
return true;
......
......@@ -148,10 +148,12 @@ class ChromeContentRendererClient : public content::ContentRendererClient {
content::RenderFrame* render_frame,
const std::string& mime_type) OVERRIDE;
#if defined(ENABLE_EXTENSIONS)
// Takes ownership.
void SetExtensionDispatcherForTest(
extensions::Dispatcher* extension_dispatcher);
extensions::Dispatcher* GetExtensionDispatcherForTest();
#endif
#if defined(ENABLE_SPELLCHECK)
// Sets a new |spellcheck|. Used for testing only.
......@@ -165,8 +167,10 @@ class ChromeContentRendererClient : public content::ContentRendererClient {
const blink::WebPluginParams& params,
const ChromeViewHostMsg_GetPluginInfo_Output& output);
#if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS)
static bool IsExtensionOrSharedModuleWhitelisted(
const GURL& url, const std::set<std::string>& whitelist);
#endif
static bool WasWebRequestUsedBySomeExtensions();
......@@ -175,6 +179,7 @@ class ChromeContentRendererClient : public content::ContentRendererClient {
FRIEND_TEST_ALL_PREFIXES(ChromeContentRendererClientTest,
ShouldSuppressErrorPage);
#if defined(ENABLE_EXTENSIONS)
// Gets extension by the given origin, regardless of whether the extension
// is active in the current process.
const extensions::Extension* GetExtensionByOrigin(
......@@ -187,6 +192,7 @@ class ChromeContentRendererClient : public content::ContentRendererClient {
const extensions::ExtensionSet& extensions,
bool is_extension_url,
bool is_initial_navigation);
#endif
static GURL GetNaClContentHandlerURL(const std::string& actual_mime_type,
const content::WebPluginInfo& plugin);
......@@ -201,10 +207,16 @@ class ChromeContentRendererClient : public content::ContentRendererClient {
scoped_ptr<ChromeRenderProcessObserver> chrome_observer_;
scoped_ptr<web_cache::WebCacheRenderProcessObserver> web_cache_observer_;
// TODO(thestig): Extract into a separate file if possible. Cleanup
// ENABLE_EXTENSIONS ifdefs in the .cc file as well.
#if defined(ENABLE_EXTENSIONS)
scoped_ptr<ChromeExtensionsDispatcherDelegate> extension_dispatcher_delegate_;
scoped_ptr<extensions::Dispatcher> extension_dispatcher_;
scoped_ptr<extensions::RendererPermissionsPolicyDelegate>
permissions_policy_delegate_;
#endif
scoped_ptr<PrescientNetworkingDispatcher> prescient_networking_dispatcher_;
scoped_ptr<RendererNetPredictor> net_predictor_;
scoped_ptr<password_manager::CredentialManagerClient>
......
......@@ -25,8 +25,12 @@ ExtensionFrameHelper::~ExtensionFrameHelper() {
void ExtensionFrameHelper::WillReleaseScriptContext(
v8::Handle<v8::Context> context,
int world_id) {
// TODO(thestig): Remove scaffolding once this file no longer builds with
// extensions disabled.
#if defined(ENABLE_EXTENSIONS)
extension_dispatcher_->WillReleaseScriptContext(
render_frame()->GetWebFrame(), context, world_id);
#endif
}
bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) {
......
......@@ -46,11 +46,15 @@ bool RendererPermissionsPolicyDelegate::CanExecuteScriptOnPage(
return false;
}
// TODO(thestig): Remove scaffolding once this file no longer builds with
// extensions disabled.
#if defined(ENABLE_EXTENSIONS)
if (dispatcher_->IsExtensionActive(extensions::kWebStoreAppId)) {
if (error)
*error = errors::kCannotScriptGallery;
return false;
}
#endif
return true;
}
......
......@@ -89,8 +89,12 @@ int32_t PepperUMAHost::OnResourceMessageReceived(
}
bool PepperUMAHost::IsPluginWhitelisted() {
#if defined(ENABLE_EXTENSIONS)
return ChromeContentRendererClient::IsExtensionOrSharedModuleWhitelisted(
document_url_, allowed_origins_);
#else
return false;
#endif
}
bool PepperUMAHost::IsHistogramAllowed(const std::string& histogram) {
......
......@@ -9,7 +9,6 @@
#include "chrome/common/chrome_content_client.h"
#include "chrome/common/render_messages.h"
#include "chrome/renderer/chrome_content_renderer_client.h"
#include "chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.h"
#include "chrome/renderer/spellchecker/spellcheck.h"
#include "chrome/test/base/chrome_unit_test_suite.h"
#include "components/autofill/content/renderer/autofill_agent.h"
......@@ -19,10 +18,6 @@
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/common/renderer_preferences.h"
#include "content/public/renderer/render_view.h"
#include "extensions/browser/extension_function_dispatcher.h"
#include "extensions/common/extension.h"
#include "extensions/renderer/dispatcher.h"
#include "extensions/renderer/event_bindings.h"
#include "third_party/WebKit/public/platform/WebURLRequest.h"
#include "third_party/WebKit/public/web/WebFrame.h"
#include "third_party/WebKit/public/web/WebInputEvent.h"
......@@ -31,6 +26,17 @@
#include "third_party/WebKit/public/web/WebScriptSource.h"
#include "third_party/WebKit/public/web/WebView.h"
#if defined(ENABLE_EXTENSIONS)
#include "chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.h"
#include "extensions/browser/extension_function_dispatcher.h"
#include "extensions/common/extension.h"
#include "extensions/renderer/dispatcher.h"
#include "extensions/renderer/event_bindings.h"
#endif
using autofill::AutofillAgent;
using autofill::PasswordAutofillAgent;
using autofill::PasswordGenerationAgent;
using blink::WebFrame;
using blink::WebInputEvent;
using blink::WebMouseEvent;
......@@ -38,9 +44,6 @@ using blink::WebScriptController;
using blink::WebScriptSource;
using blink::WebString;
using blink::WebURLRequest;
using autofill::AutofillAgent;
using autofill::PasswordAutofillAgent;
using autofill::PasswordGenerationAgent;
ChromeRenderViewTest::ChromeRenderViewTest()
: password_autofill_(NULL),
......@@ -71,9 +74,11 @@ void ChromeRenderViewTest::SetUp() {
}
void ChromeRenderViewTest::TearDown() {
#if defined(ENABLE_EXTENSIONS)
ChromeContentRendererClient* client =
static_cast<ChromeContentRendererClient*>(content_renderer_client_.get());
client->GetExtensionDispatcherForTest()->OnRenderProcessShutdown();
#endif
#if defined(LEAK_SANITIZER)
// Do this before shutting down V8 in RenderViewTest::TearDown().
......@@ -94,11 +99,13 @@ content::ContentBrowserClient*
content::ContentRendererClient*
ChromeRenderViewTest::CreateContentRendererClient() {
ChromeContentRendererClient* client = new ChromeContentRendererClient();
#if defined(ENABLE_EXTENSIONS)
extension_dispatcher_delegate_.reset(
new ChromeExtensionsDispatcherDelegate());
ChromeContentRendererClient* client = new ChromeContentRendererClient();
client->SetExtensionDispatcherForTest(
new extensions::Dispatcher(extension_dispatcher_delegate_.get()));
#endif
#if defined(ENABLE_SPELLCHECK)
client->SetSpellcheck(new SpellCheck());
#endif
......
......@@ -35,7 +35,9 @@ class ChromeRenderViewTest : public content::RenderViewTest {
virtual content::ContentRendererClient*
CreateContentRendererClient() OVERRIDE;
#if defined(ENABLE_EXTENSIONS)
scoped_ptr<extensions::DispatcherDelegate> extension_dispatcher_delegate_;
#endif
autofill::TestPasswordAutofillAgent* password_autofill_;
autofill::TestPasswordGenerationAgent* password_generation_;
......
......@@ -896,8 +896,16 @@
'sources!': [
'renderer/api_definitions_natives.cc',
'renderer/context_menus_custom_bindings.cc',
'renderer/dispatcher.cc',
'renderer/dispatcher.h',
'renderer/render_view_observer_natives.cc',
'renderer/send_request_natives.cc',
'renderer/user_script_injector.cc',
'renderer/user_script_injector.h',
'renderer/user_script_set.cc',
'renderer/user_script_set.h',
'renderer/user_script_set_manager.cc',
'renderer/user_script_set_manager.h',
],
}],
]
......
......@@ -163,8 +163,16 @@ source_set("renderer") {
sources -= [
"api_definitions_natives.cc",
"context_menus_custom_bindings.cc",
"dispatcher.cc",
"dispatcher.h",
"render_view_observer_natives.cc",
"send_request_natives.cc",
"user_script_injector.cc",
"user_script_injector.h",
"user_script_set.cc",
"user_script_set.h",
"user_script_set_manager.cc",
"user_script_set_manager.h",
]
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment