| Index: content/browser/loader/resource_dispatcher_host_impl.cc
|
| diff --git a/content/browser/loader/resource_dispatcher_host_impl.cc b/content/browser/loader/resource_dispatcher_host_impl.cc
|
| index 9c29a28cb911278decb182d32d28838666afcb00..9ff7fb9f09acebf0cca094e2b121da5a1944f8bc 100644
|
| --- a/content/browser/loader/resource_dispatcher_host_impl.cc
|
| +++ b/content/browser/loader/resource_dispatcher_host_impl.cc
|
| @@ -11,7 +11,6 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| -#include "base/command_line.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/debug/alias.h"
|
| #include "base/logging.h"
|
| @@ -42,6 +41,7 @@
|
| #include "content/browser/loader/throttling_resource_handler.h"
|
| #include "content/browser/loader/transfer_navigation_resource_throttle.h"
|
| #include "content/browser/loader/upload_data_stream_builder.h"
|
| +#include "content/browser/net/referrer.h"
|
| #include "content/browser/plugin_service_impl.h"
|
| #include "content/browser/renderer_host/render_view_host_delegate.h"
|
| #include "content/browser/renderer_host/render_view_host_impl.h"
|
| @@ -63,7 +63,6 @@
|
| #include "content/public/browser/resource_throttle.h"
|
| #include "content/public/browser/stream_handle.h"
|
| #include "content/public/browser/user_metrics.h"
|
| -#include "content/public/common/content_switches.h"
|
| #include "content/public/common/process_type.h"
|
| #include "content/public/common/url_constants.h"
|
| #include "ipc/ipc_message_macros.h"
|
| @@ -128,14 +127,6 @@ const int kUserGestureWindowMs = 3500;
|
| // use. Arbitrarily chosen.
|
| const double kMaxRequestsPerProcessRatio = 0.45;
|
|
|
| -// All possible error codes from the network module. Note that the error codes
|
| -// are all positive (since histograms expect positive sample values).
|
| -const int kAllNetErrorCodes[] = {
|
| -#define NET_ERROR(label, value) -(value),
|
| -#include "net/base/net_error_list.h"
|
| -#undef NET_ERROR
|
| -};
|
| -
|
| // Aborts a request before an URLRequest has actually been created.
|
| void AbortRequestBeforeItStarts(ResourceMessageFilter* filter,
|
| IPC::Message* sync_result,
|
| @@ -156,30 +147,6 @@ void AbortRequestBeforeItStarts(ResourceMessageFilter* filter,
|
| }
|
| }
|
|
|
| -void SetReferrerForRequest(net::URLRequest* request, const Referrer& referrer) {
|
| - if (!referrer.url.is_valid() ||
|
| - CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoReferrers)) {
|
| - request->SetReferrer(std::string());
|
| - } else {
|
| - request->SetReferrer(referrer.url.spec());
|
| - }
|
| -
|
| - net::URLRequest::ReferrerPolicy net_referrer_policy =
|
| - net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
|
| - switch (referrer.policy) {
|
| - case WebKit::WebReferrerPolicyDefault:
|
| - net_referrer_policy =
|
| - net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
|
| - break;
|
| - case WebKit::WebReferrerPolicyAlways:
|
| - case WebKit::WebReferrerPolicyNever:
|
| - case WebKit::WebReferrerPolicyOrigin:
|
| - net_referrer_policy = net::URLRequest::NEVER_CLEAR_REFERRER;
|
| - break;
|
| - }
|
| - request->set_referrer_policy(net_referrer_policy);
|
| -}
|
| -
|
| // Consults the RendererSecurity policy to determine whether the
|
| // ResourceDispatcherHostImpl should service this request. A request might be
|
| // disallowed if the renderer is not authorized to retrieve the request URL or
|
| @@ -244,18 +211,6 @@ void RemoveDownloadFileFromChildSecurityPolicy(int child_id,
|
| #pragma warning(default: 4748)
|
| #endif
|
|
|
| -net::Error CallbackAndReturn(
|
| - const DownloadUrlParameters::OnStartedCallback& started_cb,
|
| - net::Error net_error) {
|
| - if (started_cb.is_null())
|
| - return net_error;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(started_cb, static_cast<DownloadItem*>(NULL), net_error));
|
| -
|
| - return net_error;
|
| -}
|
| -
|
| int GetCertID(net::URLRequest* request, int child_id) {
|
| if (request->ssl_info().cert.get()) {
|
| return CertStore::GetInstance()->StoreCert(request->ssl_info().cert.get(),
|
| @@ -445,92 +400,6 @@ void ResourceDispatcherHostImpl::CancelRequestsForContext(
|
| }
|
| }
|
|
|
| -net::Error ResourceDispatcherHostImpl::BeginDownload(
|
| - scoped_ptr<net::URLRequest> request,
|
| - const Referrer& referrer,
|
| - bool is_content_initiated,
|
| - ResourceContext* context,
|
| - int child_id,
|
| - int route_id,
|
| - bool prefer_cache,
|
| - scoped_ptr<DownloadSaveInfo> save_info,
|
| - uint32 download_id,
|
| - const DownloadStartedCallback& started_callback) {
|
| - if (is_shutdown_)
|
| - return CallbackAndReturn(started_callback, net::ERR_INSUFFICIENT_RESOURCES);
|
| -
|
| - const GURL& url = request->original_url();
|
| -
|
| - // http://crbug.com/90971
|
| - char url_buf[128];
|
| - base::strlcpy(url_buf, url.spec().c_str(), arraysize(url_buf));
|
| - base::debug::Alias(url_buf);
|
| - CHECK(ContainsKey(active_resource_contexts_, context));
|
| -
|
| - SetReferrerForRequest(request.get(), referrer);
|
| -
|
| - int extra_load_flags = net::LOAD_IS_DOWNLOAD;
|
| - if (prefer_cache) {
|
| - // If there is upload data attached, only retrieve from cache because there
|
| - // is no current mechanism to prompt the user for their consent for a
|
| - // re-post. For GETs, try to retrieve data from the cache and skip
|
| - // validating the entry if present.
|
| - if (request->get_upload() != NULL)
|
| - extra_load_flags |= net::LOAD_ONLY_FROM_CACHE;
|
| - else
|
| - extra_load_flags |= net::LOAD_PREFERRING_CACHE;
|
| - } else {
|
| - extra_load_flags |= net::LOAD_DISABLE_CACHE;
|
| - }
|
| - request->set_load_flags(request->load_flags() | extra_load_flags);
|
| -
|
| - // No need to get offline load flags for downloads, but make sure
|
| - // we have an OfflinePolicy to receive request completions.
|
| - GlobalRoutingID id(child_id, route_id);
|
| - if (!offline_policy_map_[id])
|
| - offline_policy_map_[id] = new OfflinePolicy();
|
| -
|
| - // Check if the renderer is permitted to request the requested URL.
|
| - if (!ChildProcessSecurityPolicyImpl::GetInstance()->
|
| - CanRequestURL(child_id, url)) {
|
| - VLOG(1) << "Denied unauthorized download request for "
|
| - << url.possibly_invalid_spec();
|
| - return CallbackAndReturn(started_callback, net::ERR_ACCESS_DENIED);
|
| - }
|
| -
|
| - request_id_--;
|
| -
|
| - const net::URLRequestContext* request_context = context->GetRequestContext();
|
| - if (!request_context->job_factory()->IsHandledURL(url)) {
|
| - VLOG(1) << "Download request for unsupported protocol: "
|
| - << url.possibly_invalid_spec();
|
| - return CallbackAndReturn(started_callback, net::ERR_ACCESS_DENIED);
|
| - }
|
| -
|
| - ResourceRequestInfoImpl* extra_info =
|
| - CreateRequestInfo(child_id, route_id, true, context);
|
| - extra_info->AssociateWithRequest(request.get()); // Request takes ownership.
|
| -
|
| - if (request->url().SchemeIs(chrome::kBlobScheme)) {
|
| - ChromeBlobStorageContext* blob_context =
|
| - GetChromeBlobStorageContextForResourceContext(context);
|
| - webkit_blob::BlobProtocolHandler::SetRequestedBlobDataHandle(
|
| - request.get(),
|
| - blob_context->context()->GetBlobDataFromPublicURL(request->url()));
|
| - }
|
| -
|
| - // From this point forward, the |DownloadResourceHandler| is responsible for
|
| - // |started_callback|.
|
| - scoped_ptr<ResourceHandler> handler(
|
| - CreateResourceHandlerForDownload(request.get(), is_content_initiated,
|
| - true, download_id, save_info.Pass(),
|
| - started_callback));
|
| -
|
| - BeginRequestInternal(request.Pass(), handler.Pass());
|
| -
|
| - return net::OK;
|
| -}
|
| -
|
| void ResourceDispatcherHostImpl::ClearLoginDelegateForRequest(
|
| net::URLRequest* request) {
|
| ResourceRequestInfoImpl* info = ResourceRequestInfoImpl::ForRequest(request);
|
| @@ -552,13 +421,8 @@ void ResourceDispatcherHostImpl::Shutdown() {
|
| scoped_ptr<ResourceHandler>
|
| ResourceDispatcherHostImpl::CreateResourceHandlerForDownload(
|
| net::URLRequest* request,
|
| - bool is_content_initiated,
|
| - bool must_download,
|
| - uint32 id,
|
| - scoped_ptr<DownloadSaveInfo> save_info,
|
| - const DownloadUrlParameters::OnStartedCallback& started_cb) {
|
| - scoped_ptr<ResourceHandler> handler(
|
| - new DownloadResourceHandler(id, request, started_cb, save_info.Pass()));
|
| + bool must_download) {
|
| + scoped_ptr<ResourceHandler> handler(new DownloadResourceHandler(request));
|
| if (delegate_) {
|
| const ResourceRequestInfo* request_info(
|
| ResourceRequestInfo::ForRequest(request));
|
| @@ -567,7 +431,7 @@ ResourceDispatcherHostImpl::CreateResourceHandlerForDownload(
|
| delegate_->DownloadStarting(
|
| request, request_info->GetContext(), request_info->GetChildID(),
|
| request_info->GetRouteID(), request_info->GetRequestID(),
|
| - is_content_initiated, must_download, &throttles);
|
| + true /* content_intiated */, must_download, &throttles);
|
| if (!throttles.empty()) {
|
| handler.reset(
|
| new ThrottlingResourceHandler(
|
|
|