OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/service_worker/service_worker_controllee_request_handl
er.h" | 5 #include "content/browser/service_worker/service_worker_controllee_request_handl
er.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 ServiceWorkerControlleeRequestHandler::ServiceWorkerControlleeRequestHandler( | 63 ServiceWorkerControlleeRequestHandler::ServiceWorkerControlleeRequestHandler( |
64 base::WeakPtr<ServiceWorkerContextCore> context, | 64 base::WeakPtr<ServiceWorkerContextCore> context, |
65 base::WeakPtr<ServiceWorkerProviderHost> provider_host, | 65 base::WeakPtr<ServiceWorkerProviderHost> provider_host, |
66 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, | 66 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, |
67 FetchRequestMode request_mode, | 67 FetchRequestMode request_mode, |
68 FetchCredentialsMode credentials_mode, | 68 FetchCredentialsMode credentials_mode, |
69 FetchRedirectMode redirect_mode, | 69 FetchRedirectMode redirect_mode, |
70 ResourceType resource_type, | 70 ResourceType resource_type, |
71 RequestContextType request_context_type, | 71 RequestContextType request_context_type, |
72 RequestContextFrameType frame_type, | 72 RequestContextFrameType frame_type, |
73 scoped_refptr<ResourceRequestBodyImpl> body) | 73 scoped_refptr<ResourceRequestBodyImpl> body, |
| 74 base::TimeTicks request_start) |
74 : ServiceWorkerRequestHandler(context, | 75 : ServiceWorkerRequestHandler(context, |
75 provider_host, | 76 provider_host, |
76 blob_storage_context, | 77 blob_storage_context, |
77 resource_type), | 78 resource_type), |
78 is_main_resource_load_( | 79 is_main_resource_load_( |
79 ServiceWorkerUtils::IsMainResourceType(resource_type)), | 80 ServiceWorkerUtils::IsMainResourceType(resource_type)), |
80 is_main_frame_load_(resource_type == RESOURCE_TYPE_MAIN_FRAME), | 81 is_main_frame_load_(resource_type == RESOURCE_TYPE_MAIN_FRAME), |
81 request_mode_(request_mode), | 82 request_mode_(request_mode), |
82 credentials_mode_(credentials_mode), | 83 credentials_mode_(credentials_mode), |
83 redirect_mode_(redirect_mode), | 84 redirect_mode_(redirect_mode), |
84 request_context_type_(request_context_type), | 85 request_context_type_(request_context_type), |
85 frame_type_(frame_type), | 86 frame_type_(frame_type), |
86 body_(body), | 87 body_(body), |
87 force_update_started_(false), | 88 force_update_started_(false), |
88 use_network_(false), | 89 use_network_(false), |
| 90 renderer_request_time_(request_start), |
| 91 handler_creation_time_(base::TimeTicks::Now()), |
89 weak_factory_(this) {} | 92 weak_factory_(this) {} |
90 | 93 |
91 ServiceWorkerControlleeRequestHandler:: | 94 ServiceWorkerControlleeRequestHandler:: |
92 ~ServiceWorkerControlleeRequestHandler() { | 95 ~ServiceWorkerControlleeRequestHandler() { |
93 // Navigation triggers an update to occur shortly after the page and | 96 // Navigation triggers an update to occur shortly after the page and |
94 // its initial subresources load. | 97 // its initial subresources load. |
95 if (provider_host_ && provider_host_->active_version()) { | 98 if (provider_host_ && provider_host_->active_version()) { |
96 if (is_main_resource_load_ && !force_update_started_) | 99 if (is_main_resource_load_ && !force_update_started_) |
97 provider_host_->active_version()->ScheduleUpdate(); | 100 provider_host_->active_version()->ScheduleUpdate(); |
98 else | 101 else |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 | 137 |
135 // It's for original request (A) or redirect case (B-a or B-b). | 138 // It's for original request (A) or redirect case (B-a or B-b). |
136 std::unique_ptr<ServiceWorkerURLRequestJob> job( | 139 std::unique_ptr<ServiceWorkerURLRequestJob> job( |
137 new ServiceWorkerURLRequestJob( | 140 new ServiceWorkerURLRequestJob( |
138 request, network_delegate, provider_host_->client_uuid(), | 141 request, network_delegate, provider_host_->client_uuid(), |
139 blob_storage_context_, resource_context, request_mode_, | 142 blob_storage_context_, resource_context, request_mode_, |
140 credentials_mode_, redirect_mode_, resource_type_, | 143 credentials_mode_, redirect_mode_, resource_type_, |
141 request_context_type_, frame_type_, body_, | 144 request_context_type_, frame_type_, body_, |
142 ServiceWorkerFetchType::FETCH, base::nullopt, this)); | 145 ServiceWorkerFetchType::FETCH, base::nullopt, this)); |
143 job_ = job->GetWeakPtr(); | 146 job_ = job->GetWeakPtr(); |
| 147 job_->set_renderer_request_time(renderer_request_time_); |
| 148 job_->set_handler_creation_time(handler_creation_time_); |
144 | 149 |
145 resource_context_ = resource_context; | 150 resource_context_ = resource_context; |
146 | 151 |
147 if (is_main_resource_load_) | 152 if (is_main_resource_load_) |
148 PrepareForMainResource(request); | 153 PrepareForMainResource(request); |
149 else | 154 else |
150 PrepareForSubResource(); | 155 PrepareForSubResource(); |
151 | 156 |
152 if (job_->ShouldFallbackToNetwork()) { | 157 if (job_->ShouldFallbackToNetwork()) { |
153 // If we know we can fallback to network at this point (in case | 158 // If we know we can fallback to network at this point (in case |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 DCHECK(provider_host_); | 473 DCHECK(provider_host_); |
469 // Detach the controller so subresource requests also skip the worker. | 474 // Detach the controller so subresource requests also skip the worker. |
470 provider_host_->NotifyControllerLost(); | 475 provider_host_->NotifyControllerLost(); |
471 } | 476 } |
472 | 477 |
473 void ServiceWorkerControlleeRequestHandler::ClearJob() { | 478 void ServiceWorkerControlleeRequestHandler::ClearJob() { |
474 job_.reset(); | 479 job_.reset(); |
475 } | 480 } |
476 | 481 |
477 } // namespace content | 482 } // namespace content |
OLD | NEW |