Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: content/child/resource_dispatcher.cc

Issue 2345253002: Remove content::RequestInfo (Closed)
Patch Set: Rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/child/resource_dispatcher.h ('k') | content/child/resource_dispatcher_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/child/resource_dispatcher.cc
diff --git a/content/child/resource_dispatcher.cc b/content/child/resource_dispatcher.cc
index 3568dc61f78ca57891f430f14151d0f50d1b81c9..aa413aeb97706540315d10f869a9a418683dffde 100644
--- a/content/child/resource_dispatcher.cc
+++ b/content/child/resource_dispatcher.cc
@@ -23,7 +23,6 @@
#include "base/strings/string_util.h"
#include "build/build_config.h"
#include "content/child/request_extra_data.h"
-#include "content/child/request_info.h"
#include "content/child/resource_scheduling_filter.h"
#include "content/child/shared_memory_received_data_factory.h"
#include "content/child/site_isolation_stats_gatherer.h"
@@ -117,6 +116,19 @@ class URLLoaderClientImpl final : public mojom::URLLoaderClient {
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
};
+void CheckSchemeForReferrerPolicy(const ResourceRequest& request) {
+ if ((request.referrer_policy == blink::WebReferrerPolicyDefault ||
+ request.referrer_policy ==
+ blink::WebReferrerPolicyNoReferrerWhenDowngrade) &&
+ request.referrer.SchemeIsCryptographic() &&
+ !request.url.SchemeIsCryptographic()) {
+ LOG(FATAL) << "Trying to send secure referrer for insecure request "
+ << "without an appropriate referrer policy.\n"
+ << "URL = " << request.url << "\n"
+ << "Referrer = " << request.referrer;
+ }
+}
+
} // namespace
ResourceDispatcher::ResourceDispatcher(
@@ -590,19 +602,19 @@ void ResourceDispatcher::FlushDeferredMessages(int request_id) {
}
void ResourceDispatcher::StartSync(
- const RequestInfo& request_info,
- ResourceRequestBodyImpl* request_body,
+ std::unique_ptr<ResourceRequest> request,
+ int routing_id,
SyncLoadResponse* response,
blink::WebURLRequest::LoadingIPCType ipc_type,
mojom::URLLoaderFactory* url_loader_factory) {
- std::unique_ptr<ResourceRequest> request =
- CreateRequest(request_info, request_body, NULL);
+ CheckSchemeForReferrerPolicy(*request);
+
// TODO(yhirano): Use url_loader_factory otherwise.
DCHECK_EQ(blink::WebURLRequest::LoadingIPCType::ChromeIPC, ipc_type);
SyncLoadResult result;
IPC::SyncMessage* msg = new ResourceHostMsg_SyncLoad(
- request_info.routing_id, MakeRequestID(), *request, &result);
+ routing_id, MakeRequestID(), *request, &result);
// NOTE: This may pump events (see RenderThread::Send).
if (!message_sender_->Send(msg)) {
@@ -627,24 +639,24 @@ void ResourceDispatcher::StartSync(
}
int ResourceDispatcher::StartAsync(
- const RequestInfo& request_info,
- ResourceRequestBodyImpl* request_body,
+ std::unique_ptr<ResourceRequest> request,
+ int routing_id,
+ scoped_refptr<base::SingleThreadTaskRunner> loading_task_runner,
+ const GURL& frame_origin,
std::unique_ptr<RequestPeer> peer,
blink::WebURLRequest::LoadingIPCType ipc_type,
mojom::URLLoaderFactory* url_loader_factory) {
- GURL frame_origin;
- std::unique_ptr<ResourceRequest> request =
- CreateRequest(request_info, request_body, &frame_origin);
+ CheckSchemeForReferrerPolicy(*request);
// Compute a unique request_id for this renderer process.
int request_id = MakeRequestID();
pending_requests_[request_id] = base::MakeUnique<PendingRequestInfo>(
std::move(peer), request->resource_type, request->origin_pid,
- frame_origin, request->url, request_info.download_to_file);
+ frame_origin, request->url, request->download_to_file);
- if (resource_scheduling_filter_.get() && request_info.loading_task_runner) {
- resource_scheduling_filter_->SetRequestIdTaskRunner(
- request_id, request_info.loading_task_runner);
+ if (resource_scheduling_filter_.get() && loading_task_runner) {
+ resource_scheduling_filter_->SetRequestIdTaskRunner(request_id,
+ loading_task_runner);
}
if (ipc_type == blink::WebURLRequest::LoadingIPCType::Mojo) {
@@ -657,8 +669,8 @@ int ResourceDispatcher::StartAsync(
pending_requests_[request_id]->url_loader = std::move(url_loader);
pending_requests_[request_id]->url_loader_client = std::move(client);
} else {
- message_sender_->Send(new ResourceHostMsg_RequestResource(
- request_info.routing_id, request_id, *request));
+ message_sender_->Send(
+ new ResourceHostMsg_RequestResource(routing_id, request_id, *request));
}
return request_id;
@@ -799,84 +811,6 @@ void ResourceDispatcher::ReleaseResourcesInMessageQueue(MessageQueue* queue) {
}
}
-std::unique_ptr<ResourceRequest> ResourceDispatcher::CreateRequest(
- const RequestInfo& request_info,
- ResourceRequestBodyImpl* request_body,
- GURL* frame_origin) {
- std::unique_ptr<ResourceRequest> request(new ResourceRequest);
- request->method = request_info.method;
- request->url = request_info.url;
- request->first_party_for_cookies = request_info.first_party_for_cookies;
- request->request_initiator = request_info.request_initiator;
- request->referrer = request_info.referrer.url;
- request->referrer_policy = request_info.referrer.policy;
- request->headers = request_info.headers;
- request->load_flags = request_info.load_flags;
- request->origin_pid = request_info.requestor_pid;
- request->resource_type = request_info.request_type;
- request->priority = request_info.priority;
- request->request_context = request_info.request_context;
- request->appcache_host_id = request_info.appcache_host_id;
- request->download_to_file = request_info.download_to_file;
- request->has_user_gesture = request_info.has_user_gesture;
- request->skip_service_worker = request_info.skip_service_worker;
- request->should_reset_appcache = request_info.should_reset_appcache;
- request->fetch_request_mode = request_info.fetch_request_mode;
- request->fetch_credentials_mode = request_info.fetch_credentials_mode;
- request->fetch_redirect_mode = request_info.fetch_redirect_mode;
- request->fetch_request_context_type = request_info.fetch_request_context_type;
- request->fetch_frame_type = request_info.fetch_frame_type;
- request->enable_load_timing = request_info.enable_load_timing;
- request->enable_upload_progress = request_info.enable_upload_progress;
- request->do_not_prompt_for_login = request_info.do_not_prompt_for_login;
- request->report_raw_headers = request_info.report_raw_headers;
- request->lofi_state = request_info.lofi_state;
-
- if ((request_info.referrer.policy == blink::WebReferrerPolicyDefault ||
- request_info.referrer.policy ==
- blink::WebReferrerPolicyNoReferrerWhenDowngrade) &&
- request_info.referrer.url.SchemeIsCryptographic() &&
- !request_info.url.SchemeIsCryptographic()) {
- LOG(FATAL) << "Trying to send secure referrer for insecure request "
- << "without an appropriate referrer policy.\n"
- << "URL = " << request_info.url << "\n"
- << "Referrer = " << request_info.referrer.url;
- }
-
- const RequestExtraData kEmptyData;
- const RequestExtraData* extra_data;
- if (request_info.extra_data)
- extra_data = static_cast<RequestExtraData*>(request_info.extra_data);
- else
- extra_data = &kEmptyData;
- request->visiblity_state = extra_data->visibility_state();
- request->render_frame_id = extra_data->render_frame_id();
- request->is_main_frame = extra_data->is_main_frame();
- request->parent_is_main_frame = extra_data->parent_is_main_frame();
- request->parent_render_frame_id = extra_data->parent_render_frame_id();
- request->allow_download = extra_data->allow_download();
- request->transition_type = extra_data->transition_type();
- request->should_replace_current_entry =
- extra_data->should_replace_current_entry();
- request->transferred_request_child_id =
- extra_data->transferred_request_child_id();
- request->transferred_request_request_id =
- extra_data->transferred_request_request_id();
- request->service_worker_provider_id =
- extra_data->service_worker_provider_id();
- request->originated_from_service_worker =
- extra_data->originated_from_service_worker();
- request->request_body = request_body;
- request->resource_body_stream_url = request_info.resource_body_stream_url;
- request->initiated_in_secure_context =
- extra_data->initiated_in_secure_context();
- request->download_to_network_cache_only =
- extra_data->download_to_network_cache_only();
- if (frame_origin)
- *frame_origin = extra_data->frame_origin();
- return request;
-}
-
void ResourceDispatcher::SetResourceSchedulingFilter(
scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter) {
resource_scheduling_filter_ = resource_scheduling_filter;
« no previous file with comments | « content/child/resource_dispatcher.h ('k') | content/child/resource_dispatcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698