Index: chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc |
diff --git a/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc |
index 33727e80d79684d1da765599bf0ae0de3468003d..758438eb27b76a8e30f784af3ea562301862f42f 100644 |
--- a/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc |
+++ b/chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc |
@@ -17,8 +17,6 @@ |
#include "chrome/browser/content_settings/host_content_settings_map.h" |
#include "chrome/browser/download/download_request_limiter.h" |
#include "chrome/browser/download/download_resource_throttle.h" |
-#include "chrome/browser/extensions/api/streams_private/streams_private_api.h" |
-#include "chrome/browser/extensions/user_script_listener.h" |
#include "chrome/browser/prefetch/prefetch.h" |
#include "chrome/browser/prerender/prerender_manager.h" |
#include "chrome/browser/prerender/prerender_manager_factory.h" |
@@ -34,8 +32,6 @@ |
#include "chrome/browser/tab_contents/tab_util.h" |
#include "chrome/browser/ui/login/login_prompt.h" |
#include "chrome/browser/ui/sync/one_click_signin_helper.h" |
-#include "chrome/common/extensions/extension_constants.h" |
-#include "chrome/common/extensions/manifest_handlers/mime_types_handler.h" |
#include "chrome/common/render_messages.h" |
#include "chrome/common/url_constants.h" |
#include "components/google/core/browser/google_util.h" |
@@ -50,9 +46,6 @@ |
#include "content/public/browser/stream_handle.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/common/resource_response.h" |
-#include "extensions/browser/info_map.h" |
-#include "extensions/common/constants.h" |
-#include "extensions/common/user_script.h" |
#include "net/base/load_flags.h" |
#include "net/base/load_timing_info.h" |
#include "net/base/request_priority.h" |
@@ -60,7 +53,16 @@ |
#include "net/url_request/url_request.h" |
#if defined(ENABLE_EXTENSIONS) |
+#include "chrome/browser/apps/app_url_redirector.h" |
+#include "chrome/browser/apps/ephemeral_app_throttle.h" |
+#include "chrome/browser/extensions/api/streams_private/streams_private_api.h" |
+#include "chrome/browser/extensions/user_script_listener.h" |
#include "chrome/browser/guest_view/web_view/web_view_renderer_state.h" |
+#include "chrome/common/extensions/extension_constants.h" |
+#include "chrome/common/extensions/manifest_handlers/mime_types_handler.h" |
+#include "extensions/browser/info_map.h" |
+#include "extensions/common/constants.h" |
+#include "extensions/common/user_script.h" |
#endif |
#if defined(ENABLE_CONFIGURATION_POLICY) |
@@ -81,9 +83,6 @@ |
#include "chrome/browser/android/intercept_download_resource_throttle.h" |
#include "chrome/browser/ui/android/infobars/auto_login_prompter.h" |
#include "components/navigation_interception/intercept_navigation_delegate.h" |
-#else |
-#include "chrome/browser/apps/app_url_redirector.h" |
-#include "chrome/browser/apps/ephemeral_app_throttle.h" |
#endif |
#if defined(OS_CHROMEOS) |
@@ -97,8 +96,11 @@ using content::RenderViewHost; |
using content::ResourceDispatcherHostLoginDelegate; |
using content::ResourceRequestInfo; |
using content::ResourceType; |
+ |
+#if defined(ENABLE_EXTENSIONS) |
using extensions::Extension; |
using extensions::StreamsPrivateAPI; |
+#endif |
#if defined(OS_ANDROID) |
using navigation_interception::InterceptNavigationDelegate; |
@@ -254,12 +256,16 @@ ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate( |
prerender::PrerenderTracker* prerender_tracker) |
: download_request_limiter_(g_browser_process->download_request_limiter()), |
safe_browsing_(g_browser_process->safe_browsing_service()), |
+#if defined(ENABLE_EXTENSIONS) |
user_script_listener_(new extensions::UserScriptListener()), |
+#endif |
prerender_tracker_(prerender_tracker) { |
} |
ChromeResourceDispatcherHostDelegate::~ChromeResourceDispatcherHostDelegate() { |
+#if defined(ENABLE_EXTENSIONS) |
CHECK(stream_target_info_.empty()); |
+#endif |
} |
bool ChromeResourceDispatcherHostDelegate::ShouldBeginRequest( |
@@ -503,11 +509,13 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles( |
io_data->supervised_user_url_filter())); |
#endif |
+#if defined(ENABLE_EXTENSIONS) |
content::ResourceThrottle* throttle = |
user_script_listener_->CreateResourceThrottle(request->url(), |
resource_type); |
if (throttle) |
throttles->push_back(throttle); |
+#endif |
const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); |
if (info->GetVisibilityState() == blink::WebPageVisibilityStatePrerender) { |
@@ -544,8 +552,12 @@ void ChromeResourceDispatcherHostDelegate::AppendChromeSyncGaiaHeader( |
bool ChromeResourceDispatcherHostDelegate::ShouldForceDownloadResource( |
const GURL& url, const std::string& mime_type) { |
+#if defined(ENABLE_EXTENSIONS) |
// Special-case user scripts to get downloaded instead of viewed. |
return extensions::UserScript::IsURLUserScript(url, mime_type); |
+#else |
+ return false; |
+#endif |
} |
bool ChromeResourceDispatcherHostDelegate::ShouldInterceptResourceAsStream( |
@@ -644,6 +656,7 @@ void ChromeResourceDispatcherHostDelegate::OnResponseStarted( |
info->GetChildID(), |
info->GetRouteID()); |
+#if defined(ENABLE_EXTENSIONS) |
// Build in additional protection for the chrome web store origin. |
Lei Zhang
2014/07/11 22:11:11
tsepez: Can we drop this on Android?
Tom Sepez
2014/07/14 16:12:43
Theoretically yes, but it is a nice line of defens
Lei Zhang
2014/07/14 21:26:06
Done. We will revisit this when I try to remove ch
|
GURL webstore_url(extension_urls::GetWebstoreLaunchURL()); |
if (request->url().DomainIs(webstore_url.host().c_str())) { |
@@ -654,6 +667,7 @@ void ChromeResourceDispatcherHostDelegate::OnResponseStarted( |
response_headers->AddHeader("x-frame-options: sameorigin"); |
} |
} |
+#endif |
// Ignores x-frame-options for the chrome signin UI. |
const std::string request_spec( |