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

Unified Diff: content/browser/service_worker/service_worker_controllee_request_handler.cc

Issue 2874073004: network service: Add job wrapper to SWControlleeRequestHandler (Closed)
Patch Set: . Created 3 years, 7 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
Index: content/browser/service_worker/service_worker_controllee_request_handler.cc
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc
index 76e9c2d3139b242ea1acf4b0bc601f4edd6c3a0c..872308271933aa8c15ee42abca14208f7fdba2e5 100644
--- a/content/browser/service_worker/service_worker_controllee_request_handler.cc
+++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc
@@ -10,6 +10,7 @@
#include "base/trace_event/trace_event.h"
#include "content/browser/service_worker/service_worker_context_core.h"
+#include "content/browser/service_worker/service_worker_job_wrapper.h"
#include "content/browser/service_worker/service_worker_metrics.h"
#include "content/browser/service_worker/service_worker_provider_host.h"
#include "content/browser/service_worker/service_worker_registration.h"
@@ -34,7 +35,7 @@ namespace content {
namespace {
-bool MaybeForwardToServiceWorker(ServiceWorkerURLRequestJob* job,
+bool MaybeForwardToServiceWorker(ServiceWorkerJobWrapper* job,
const ServiceWorkerVersion* version) {
DCHECK(job);
DCHECK(version);
@@ -50,14 +51,6 @@ bool MaybeForwardToServiceWorker(ServiceWorkerURLRequestJob* job,
return false;
}
-ui::PageTransition GetPageTransition(net::URLRequest* request) {
- const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
- // ResourceRequestInfo may not be set in some tests.
- if (!info)
- return ui::PAGE_TRANSITION_LINK;
- return info->GetPageTransition();
-}
-
} // namespace
ServiceWorkerControlleeRequestHandler::ServiceWorkerControlleeRequestHandler(
@@ -140,12 +133,12 @@ net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob(
credentials_mode_, redirect_mode_, resource_type_,
request_context_type_, frame_type_, body_,
ServiceWorkerFetchType::FETCH, base::nullopt, this));
- job_ = job->GetWeakPtr();
+ job_ = base::MakeUnique<ServiceWorkerJobWrapper>(job->GetWeakPtr());
resource_context_ = resource_context;
if (is_main_resource_load_)
- PrepareForMainResource(request);
+ PrepareForMainResource(request->url(), request->first_party_for_cookies());
else
PrepareForSubResource();
@@ -167,15 +160,15 @@ net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob(
}
void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
- const net::URLRequest* request) {
+ const GURL& url,
+ const GURL& first_party_for_cookies) {
DCHECK(job_.get());
DCHECK(context_);
DCHECK(provider_host_);
TRACE_EVENT_ASYNC_BEGIN1(
"ServiceWorker",
"ServiceWorkerControlleeRequestHandler::PrepareForMainResource",
- job_.get(),
- "URL", request->url().spec());
+ job_.get(), "URL", url.spec());
// The corresponding provider_host may already have associated a registration
// in redirect case, unassociate it now.
provider_host_->DisassociateRegistration();
@@ -184,9 +177,9 @@ void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
// registration while we're finding an existing registration.
provider_host_->SetAllowAssociation(false);
- stripped_url_ = net::SimplifyUrlForRequest(request->url());
+ stripped_url_ = net::SimplifyUrlForRequest(url);
provider_host_->SetDocumentUrl(stripped_url_);
- provider_host_->SetTopmostFrameUrl(request->first_party_for_cookies());
+ provider_host_->SetTopmostFrameUrl(first_party_for_cookies);
context_->storage()->FindRegistrationForDocument(
stripped_url_, base::Bind(&self::DidLookupRegistrationForMainResource,
weak_factory_.GetWeakPtr()));
@@ -197,7 +190,7 @@ void ServiceWorkerControlleeRequestHandler::
ServiceWorkerStatusCode status,
scoped_refptr<ServiceWorkerRegistration> registration) {
// The job may have been canceled and then destroyed before this was invoked.
falken 2017/05/17 01:29:05 I guess "and then destroyed" is no longer needed o
scottmg 2017/05/17 18:27:59 Done.
- if (!job_)
+ if (JobWasCanceled())
return;
const bool need_to_update = !force_update_started_ && registration &&
@@ -312,7 +305,7 @@ void ServiceWorkerControlleeRequestHandler::
ServiceWorkerVersion::FetchHandlerExistence::UNKNOWN);
ServiceWorkerMetrics::CountControlledPageLoad(
active_version->site_for_uma(), stripped_url_, is_main_frame_load_,
- GetPageTransition(job_->request()), job_->request()->url_chain().size());
+ job_->GetPageTransition(), job_->GetURLChainSize());
bool is_forwarded =
MaybeForwardToServiceWorker(job_.get(), active_version.get());
@@ -329,7 +322,7 @@ void ServiceWorkerControlleeRequestHandler::OnVersionStatusChanged(
ServiceWorkerRegistration* registration,
ServiceWorkerVersion* version) {
// The job may have been canceled and then destroyed before this was invoked.
- if (!job_)
+ if (JobWasCanceled())
return;
if (provider_host_)
@@ -345,7 +338,7 @@ void ServiceWorkerControlleeRequestHandler::OnVersionStatusChanged(
ServiceWorkerVersion::FetchHandlerExistence::UNKNOWN);
ServiceWorkerMetrics::CountControlledPageLoad(
version->site_for_uma(), stripped_url_, is_main_frame_load_,
- GetPageTransition(job_->request()), job_->request()->url_chain().size());
+ job_->GetPageTransition(), job_->GetURLChainSize());
provider_host_->AssociateRegistration(registration,
false /* notify_controllerchange */);
@@ -361,7 +354,7 @@ void ServiceWorkerControlleeRequestHandler::DidUpdateRegistration(
DCHECK(force_update_started_);
// The job may have been canceled and then destroyed before this was invoked.
- if (!job_)
+ if (JobWasCanceled())
return;
if (!context_) {
@@ -391,7 +384,7 @@ void ServiceWorkerControlleeRequestHandler::OnUpdatedVersionStatusChanged(
const scoped_refptr<ServiceWorkerRegistration>& registration,
const scoped_refptr<ServiceWorkerVersion>& version) {
// The job may have been canceled and then destroyed before this was invoked.
- if (!job_)
+ if (JobWasCanceled())
return;
if (!context_) {
@@ -474,4 +467,8 @@ void ServiceWorkerControlleeRequestHandler::ClearJob() {
job_.reset();
}
+bool ServiceWorkerControlleeRequestHandler::JobWasCanceled() const {
+ return !job_ || job_->WasCanceled();
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698