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 19 matching lines...) Expand all Loading... |
30 void RunSoon(const base::Closure& closure) { | 30 void RunSoon(const base::Closure& closure) { |
31 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, closure); | 31 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, closure); |
32 } | 32 } |
33 | 33 |
34 } // namespace | 34 } // namespace |
35 | 35 |
36 typedef ServiceWorkerRegisterJobBase::RegistrationJobType RegistrationJobType; | 36 typedef ServiceWorkerRegisterJobBase::RegistrationJobType RegistrationJobType; |
37 | 37 |
38 ServiceWorkerRegisterJob::ServiceWorkerRegisterJob( | 38 ServiceWorkerRegisterJob::ServiceWorkerRegisterJob( |
39 base::WeakPtr<ServiceWorkerContextCore> context, | 39 base::WeakPtr<ServiceWorkerContextCore> context, |
40 const GURL& pattern, | 40 const GURL& script_url, |
41 const GURL& script_url) | 41 const ServiceWorkerRegistrationOptions& options) |
42 : context_(context), | 42 : context_(context), |
43 job_type_(REGISTRATION_JOB), | 43 job_type_(REGISTRATION_JOB), |
44 pattern_(pattern), | 44 pattern_(options.scope), |
45 script_url_(script_url), | 45 script_url_(script_url), |
| 46 use_cache_(options.use_cache == |
| 47 ServiceWorkerRegistrationOptions::UseCache::Use), |
46 phase_(INITIAL), | 48 phase_(INITIAL), |
47 doom_installing_worker_(false), | 49 doom_installing_worker_(false), |
48 is_promise_resolved_(false), | 50 is_promise_resolved_(false), |
49 should_uninstall_on_failure_(false), | 51 should_uninstall_on_failure_(false), |
50 force_bypass_cache_(false), | 52 force_bypass_cache_(false), |
51 skip_script_comparison_(false), | 53 skip_script_comparison_(false), |
52 promise_resolved_status_(SERVICE_WORKER_OK), | 54 promise_resolved_status_(SERVICE_WORKER_OK), |
53 weak_factory_(this) {} | 55 weak_factory_(this) {} |
54 | 56 |
55 ServiceWorkerRegisterJob::ServiceWorkerRegisterJob( | 57 ServiceWorkerRegisterJob::ServiceWorkerRegisterJob( |
56 base::WeakPtr<ServiceWorkerContextCore> context, | 58 base::WeakPtr<ServiceWorkerContextCore> context, |
57 ServiceWorkerRegistration* registration, | 59 ServiceWorkerRegistration* registration, |
58 bool force_bypass_cache, | 60 bool force_bypass_cache, |
59 bool skip_script_comparison) | 61 bool skip_script_comparison) |
60 : context_(context), | 62 : context_(context), |
61 job_type_(UPDATE_JOB), | 63 job_type_(UPDATE_JOB), |
62 pattern_(registration->pattern()), | 64 pattern_(registration->pattern()), |
| 65 use_cache_(registration->use_cache()), |
63 phase_(INITIAL), | 66 phase_(INITIAL), |
64 doom_installing_worker_(false), | 67 doom_installing_worker_(false), |
65 is_promise_resolved_(false), | 68 is_promise_resolved_(false), |
66 should_uninstall_on_failure_(false), | 69 should_uninstall_on_failure_(false), |
67 force_bypass_cache_(force_bypass_cache), | 70 force_bypass_cache_(force_bypass_cache), |
68 skip_script_comparison_(skip_script_comparison), | 71 skip_script_comparison_(skip_script_comparison), |
69 promise_resolved_status_(SERVICE_WORKER_OK), | 72 promise_resolved_status_(SERVICE_WORKER_OK), |
70 weak_factory_(this) { | 73 weak_factory_(this) { |
71 internal_.registration = registration; | 74 internal_.registration = registration; |
72 } | 75 } |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 // Creates a new ServiceWorkerRegistration. | 284 // Creates a new ServiceWorkerRegistration. |
282 void ServiceWorkerRegisterJob::RegisterAndContinue() { | 285 void ServiceWorkerRegisterJob::RegisterAndContinue() { |
283 SetPhase(REGISTER); | 286 SetPhase(REGISTER); |
284 | 287 |
285 int64_t registration_id = context_->storage()->NewRegistrationId(); | 288 int64_t registration_id = context_->storage()->NewRegistrationId(); |
286 if (registration_id == kInvalidServiceWorkerRegistrationId) { | 289 if (registration_id == kInvalidServiceWorkerRegistrationId) { |
287 Complete(SERVICE_WORKER_ERROR_ABORT); | 290 Complete(SERVICE_WORKER_ERROR_ABORT); |
288 return; | 291 return; |
289 } | 292 } |
290 | 293 |
291 set_registration( | 294 set_registration(new ServiceWorkerRegistration(pattern_, use_cache_, |
292 new ServiceWorkerRegistration(pattern_, registration_id, context_)); | 295 registration_id, context_)); |
293 AddRegistrationToMatchingProviderHosts(registration()); | 296 AddRegistrationToMatchingProviderHosts(registration()); |
294 UpdateAndContinue(); | 297 UpdateAndContinue(); |
295 } | 298 } |
296 | 299 |
297 void ServiceWorkerRegisterJob::ContinueWithUninstallingRegistration( | 300 void ServiceWorkerRegisterJob::ContinueWithUninstallingRegistration( |
298 scoped_refptr<ServiceWorkerRegistration> existing_registration, | 301 scoped_refptr<ServiceWorkerRegistration> existing_registration, |
299 ServiceWorkerStatusCode status) { | 302 ServiceWorkerStatusCode status) { |
300 if (status != SERVICE_WORKER_OK) { | 303 if (status != SERVICE_WORKER_OK) { |
301 Complete(status); | 304 Complete(status); |
302 return; | 305 return; |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 new_version()->force_bypass_cache_for_scripts() || | 651 new_version()->force_bypass_cache_for_scripts() || |
649 registration()->last_update_check().is_null()) { | 652 registration()->last_update_check().is_null()) { |
650 registration()->set_last_update_check(base::Time::Now()); | 653 registration()->set_last_update_check(base::Time::Now()); |
651 | 654 |
652 if (registration()->has_installed_version()) | 655 if (registration()->has_installed_version()) |
653 context_->storage()->UpdateLastUpdateCheckTime(registration()); | 656 context_->storage()->UpdateLastUpdateCheckTime(registration()); |
654 } | 657 } |
655 } | 658 } |
656 | 659 |
657 } // namespace content | 660 } // namespace content |
OLD | NEW |