Index: chrome/renderer/chrome_content_renderer_client.cc |
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc |
index e32b350cefd409456d0398be47472ec217bd751a..fa73f7ba1235869ebc196e3f1da289c184b1e772 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -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; |