Commit 97b8a2da authored by Takeshi Yoshino's avatar Takeshi Yoshino Committed by Commit Bot

Don't store RequestContext in WorkerScriptLoader

WorkerScriptLoader doesn't need to store it. The setter is always called
right before kicking the loader. We should just pass it via the
argument of the Load.* method.

As a bonus, inlined CreateResourceRequest(). It reduces copy and makes
the code simpler given that after removing SetRequestContext() call from
it, it's small enough to be inlined.

Bug: 
Change-Id: I8fe423921cad2d2a40f213e7310e8e991ae52825
Reviewed-on: https://chromium-review.googlesource.com/544418Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Takeshi Yoshino <tyoshino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481823}
parent 65b4c4b7
......@@ -188,8 +188,6 @@ void WebSharedWorkerImpl::DidFinishDocumentLoad() {
main_frame_->DataSource()->SetServiceWorkerNetworkProvider(
client_->CreateServiceWorkerNetworkProvider());
main_script_loader_ = WorkerScriptLoader::Create();
main_script_loader_->SetRequestContext(
WebURLRequest::kRequestContextSharedWorker);
loading_document_ = main_frame_->GetFrame()->GetDocument();
WebURLRequest::FetchRequestMode fetch_request_mode =
......@@ -202,7 +200,8 @@ void WebSharedWorkerImpl::DidFinishDocumentLoad() {
}
main_script_loader_->LoadAsynchronously(
*loading_document_.Get(), url_, fetch_request_mode,
*loading_document_.Get(), url_,
WebURLRequest::kRequestContextSharedWorker, fetch_request_mode,
fetch_credentials_mode, creation_address_space_,
Bind(&WebSharedWorkerImpl::DidReceiveScriptLoaderResponse,
WTF::Unretained(this)),
......
......@@ -61,7 +61,8 @@ bool InProcessWorkerBase::Initialize(ExecutionContext* context,
script_loader_ = WorkerScriptLoader::Create();
script_loader_->LoadAsynchronously(
*context, script_url, fetch_request_mode, fetch_credentials_mode,
*context, script_url, WebURLRequest::kRequestContextWorker,
fetch_request_mode, fetch_credentials_mode,
context->GetSecurityContext().AddressSpace(),
WTF::Bind(&InProcessWorkerBase::OnResponse, WrapPersistent(this)),
WTF::Bind(&InProcessWorkerBase::OnFinished, WrapPersistent(this)));
......
......@@ -192,9 +192,8 @@ void WorkerGlobalScope::importScripts(const Vector<String>& urls,
for (const KURL& complete_url : completed_urls) {
RefPtr<WorkerScriptLoader> script_loader(WorkerScriptLoader::Create());
script_loader->SetRequestContext(WebURLRequest::kRequestContextScript);
script_loader->LoadSynchronously(
execution_context, complete_url,
execution_context, complete_url, WebURLRequest::kRequestContextScript,
execution_context.GetSecurityContext().AddressSpace());
// If the fetching attempt failed, throw a NetworkError exception and
......
......@@ -51,7 +51,6 @@ namespace blink {
WorkerScriptLoader::WorkerScriptLoader()
: response_callback_(nullptr),
finished_callback_(nullptr),
request_context_(WebURLRequest::kRequestContextWorker),
response_address_space_(kWebAddressSpacePublic) {}
WorkerScriptLoader::~WorkerScriptLoader() {
......@@ -66,11 +65,16 @@ WorkerScriptLoader::~WorkerScriptLoader() {
void WorkerScriptLoader::LoadSynchronously(
ExecutionContext& execution_context,
const KURL& url,
WebURLRequest::RequestContext request_context,
WebAddressSpace creation_address_space) {
url_ = url;
execution_context_ = &execution_context;
ResourceRequest request(CreateResourceRequest(creation_address_space));
ResourceRequest request(url);
request.SetHTTPMethod(HTTPNames::GET);
request.SetExternalRequestStateFromRequestorAddressSpace(
creation_address_space);
request.SetRequestContext(request_context);
request.SetFetchCredentialsMode(WebURLRequest::kFetchCredentialsModeInclude);
SECURITY_DCHECK(execution_context.IsWorkerGlobalScope());
......@@ -91,6 +95,7 @@ void WorkerScriptLoader::LoadSynchronously(
void WorkerScriptLoader::LoadAsynchronously(
ExecutionContext& execution_context,
const KURL& url,
WebURLRequest::RequestContext request_context,
WebURLRequest::FetchRequestMode fetch_request_mode,
WebURLRequest::FetchCredentialsMode fetch_credentials_mode,
WebAddressSpace creation_address_space,
......@@ -102,7 +107,11 @@ void WorkerScriptLoader::LoadAsynchronously(
url_ = url;
execution_context_ = &execution_context;
ResourceRequest request(CreateResourceRequest(creation_address_space));
ResourceRequest request(url);
request.SetHTTPMethod(HTTPNames::GET);
request.SetExternalRequestStateFromRequestorAddressSpace(
creation_address_space);
request.SetRequestContext(request_context);
request.SetFetchCredentialsMode(fetch_credentials_mode);
ThreadableLoaderOptions options;
......@@ -128,16 +137,6 @@ const KURL& WorkerScriptLoader::ResponseURL() const {
return response_url_;
}
ResourceRequest WorkerScriptLoader::CreateResourceRequest(
WebAddressSpace creation_address_space) {
ResourceRequest request(url_);
request.SetHTTPMethod(HTTPNames::GET);
request.SetRequestContext(request_context_);
request.SetExternalRequestStateFromRequestorAddressSpace(
creation_address_space);
return request;
}
void WorkerScriptLoader::DidReceiveResponse(
unsigned long identifier,
const ResourceResponse& response,
......
......@@ -62,11 +62,13 @@ class CORE_EXPORT WorkerScriptLoader final
void LoadSynchronously(ExecutionContext&,
const KURL&,
WebURLRequest::RequestContext,
WebAddressSpace);
// Note that callbacks could be invoked before loadAsynchronously() returns.
void LoadAsynchronously(ExecutionContext&,
const KURL&,
WebURLRequest::RequestContext,
WebURLRequest::FetchRequestMode,
WebURLRequest::FetchCredentialsMode,
WebAddressSpace,
......@@ -117,17 +119,12 @@ class CORE_EXPORT WorkerScriptLoader final
void DidFail(const ResourceError&) override;
void DidFailRedirectCheck() override;
void SetRequestContext(WebURLRequest::RequestContext request_context) {
request_context_ = request_context;
}
private:
friend class WTF::RefCounted<WorkerScriptLoader>;
WorkerScriptLoader();
~WorkerScriptLoader() override;
ResourceRequest CreateResourceRequest(WebAddressSpace);
void NotifyError();
void NotifyFinished();
......@@ -152,7 +149,6 @@ class CORE_EXPORT WorkerScriptLoader final
unsigned long identifier_ = 0;
long long app_cache_id_ = 0;
std::unique_ptr<Vector<char>> cached_metadata_;
WebURLRequest::RequestContext request_context_;
Persistent<ContentSecurityPolicy> content_security_policy_;
Persistent<ExecutionContext> execution_context_;
WebAddressSpace response_address_space_;
......
......@@ -331,10 +331,9 @@ void WebEmbeddedWorkerImpl::DidFinishDocumentLoad() {
main_frame_->DataSource()->SetServiceWorkerNetworkProvider(
worker_context_client_->CreateServiceWorkerNetworkProvider());
main_script_loader_ = WorkerScriptLoader::Create();
main_script_loader_->SetRequestContext(
WebURLRequest::kRequestContextServiceWorker);
main_script_loader_->LoadAsynchronously(
*main_frame_->GetFrame()->GetDocument(), worker_start_data_.script_url,
WebURLRequest::kRequestContextServiceWorker,
WebURLRequest::kFetchRequestModeSameOrigin,
WebURLRequest::kFetchCredentialsModeSameOrigin,
worker_start_data_.address_space, nullptr,
......
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