OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_register_job.h" | 5 #include "content/browser/service_worker/service_worker_register_job.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 typedef ServiceWorkerRegisterJobBase::RegistrationJobType RegistrationJobType; | 67 typedef ServiceWorkerRegisterJobBase::RegistrationJobType RegistrationJobType; |
68 | 68 |
69 ServiceWorkerRegisterJob::ServiceWorkerRegisterJob( | 69 ServiceWorkerRegisterJob::ServiceWorkerRegisterJob( |
70 base::WeakPtr<ServiceWorkerContextCore> context, | 70 base::WeakPtr<ServiceWorkerContextCore> context, |
71 const GURL& script_url, | 71 const GURL& script_url, |
72 const ServiceWorkerRegistrationOptions& options) | 72 const ServiceWorkerRegistrationOptions& options) |
73 : context_(context), | 73 : context_(context), |
74 job_type_(REGISTRATION_JOB), | 74 job_type_(REGISTRATION_JOB), |
75 pattern_(options.scope), | 75 pattern_(options.scope), |
76 script_url_(script_url), | 76 script_url_(script_url), |
| 77 update_via_cache_(options.update_via_cache), |
77 phase_(INITIAL), | 78 phase_(INITIAL), |
78 doom_installing_worker_(false), | 79 doom_installing_worker_(false), |
79 is_promise_resolved_(false), | 80 is_promise_resolved_(false), |
80 should_uninstall_on_failure_(false), | 81 should_uninstall_on_failure_(false), |
81 force_bypass_cache_(false), | 82 force_bypass_cache_(false), |
82 skip_script_comparison_(false), | 83 skip_script_comparison_(false), |
83 promise_resolved_status_(SERVICE_WORKER_OK), | 84 promise_resolved_status_(SERVICE_WORKER_OK), |
84 weak_factory_(this) {} | 85 weak_factory_(this) {} |
85 | 86 |
86 ServiceWorkerRegisterJob::ServiceWorkerRegisterJob( | 87 ServiceWorkerRegisterJob::ServiceWorkerRegisterJob( |
87 base::WeakPtr<ServiceWorkerContextCore> context, | 88 base::WeakPtr<ServiceWorkerContextCore> context, |
88 ServiceWorkerRegistration* registration, | 89 ServiceWorkerRegistration* registration, |
89 bool force_bypass_cache, | 90 bool force_bypass_cache, |
90 bool skip_script_comparison) | 91 bool skip_script_comparison) |
91 : context_(context), | 92 : context_(context), |
92 job_type_(UPDATE_JOB), | 93 job_type_(UPDATE_JOB), |
93 pattern_(registration->pattern()), | 94 pattern_(registration->pattern()), |
| 95 update_via_cache_(registration->update_via_cache()), |
94 phase_(INITIAL), | 96 phase_(INITIAL), |
95 doom_installing_worker_(false), | 97 doom_installing_worker_(false), |
96 is_promise_resolved_(false), | 98 is_promise_resolved_(false), |
97 should_uninstall_on_failure_(false), | 99 should_uninstall_on_failure_(false), |
98 force_bypass_cache_(force_bypass_cache), | 100 force_bypass_cache_(force_bypass_cache), |
99 skip_script_comparison_(skip_script_comparison), | 101 skip_script_comparison_(skip_script_comparison), |
100 promise_resolved_status_(SERVICE_WORKER_OK), | 102 promise_resolved_status_(SERVICE_WORKER_OK), |
101 weak_factory_(this) { | 103 weak_factory_(this) { |
102 internal_.registration = registration; | 104 internal_.registration = registration; |
103 } | 105 } |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 void ServiceWorkerRegisterJob::RegisterAndContinue() { | 315 void ServiceWorkerRegisterJob::RegisterAndContinue() { |
314 SetPhase(REGISTER); | 316 SetPhase(REGISTER); |
315 | 317 |
316 int64_t registration_id = context_->storage()->NewRegistrationId(); | 318 int64_t registration_id = context_->storage()->NewRegistrationId(); |
317 if (registration_id == kInvalidServiceWorkerRegistrationId) { | 319 if (registration_id == kInvalidServiceWorkerRegistrationId) { |
318 Complete(SERVICE_WORKER_ERROR_ABORT); | 320 Complete(SERVICE_WORKER_ERROR_ABORT); |
319 return; | 321 return; |
320 } | 322 } |
321 | 323 |
322 set_registration(new ServiceWorkerRegistration( | 324 set_registration(new ServiceWorkerRegistration( |
323 ServiceWorkerRegistrationOptions(pattern_), registration_id, context_)); | 325 ServiceWorkerRegistrationOptions(pattern_, update_via_cache_), |
| 326 registration_id, context_)); |
324 AddRegistrationToMatchingProviderHosts(registration()); | 327 AddRegistrationToMatchingProviderHosts(registration()); |
325 UpdateAndContinue(); | 328 UpdateAndContinue(); |
326 } | 329 } |
327 | 330 |
328 void ServiceWorkerRegisterJob::ContinueWithUninstallingRegistration( | 331 void ServiceWorkerRegisterJob::ContinueWithUninstallingRegistration( |
329 scoped_refptr<ServiceWorkerRegistration> existing_registration, | 332 scoped_refptr<ServiceWorkerRegistration> existing_registration, |
330 ServiceWorkerStatusCode status) { | 333 ServiceWorkerStatusCode status) { |
331 if (status != SERVICE_WORKER_OK) { | 334 if (status != SERVICE_WORKER_OK) { |
332 Complete(status); | 335 Complete(status); |
333 return; | 336 return; |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 new_version()->force_bypass_cache_for_scripts() || | 675 new_version()->force_bypass_cache_for_scripts() || |
673 registration()->last_update_check().is_null()) { | 676 registration()->last_update_check().is_null()) { |
674 registration()->set_last_update_check(base::Time::Now()); | 677 registration()->set_last_update_check(base::Time::Now()); |
675 | 678 |
676 if (registration()->has_installed_version()) | 679 if (registration()->has_installed_version()) |
677 context_->storage()->UpdateLastUpdateCheckTime(registration()); | 680 context_->storage()->UpdateLastUpdateCheckTime(registration()); |
678 } | 681 } |
679 } | 682 } |
680 | 683 |
681 } // namespace content | 684 } // namespace content |
OLD | NEW |