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

Side by Side Diff: content/browser/service_worker/service_worker_dispatcher_host.cc

Issue 996123002: ServiceWorker: Ensure live registration during starting worker (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix tests Created 5 years, 9 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 unified diff | Download patch
OLDNEW
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_dispatcher_host.h" 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/trace_event/trace_event.h" 9 #include "base/trace_event/trace_event.h"
10 #include "content/browser/message_port_message_filter.h" 10 #include "content/browser/message_port_message_filter.h"
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 GetContext()->GetProviderHost(render_process_id_, provider_id); 587 GetContext()->GetProviderHost(render_process_id_, provider_id);
588 if (!provider_host) { 588 if (!provider_host) {
589 BadMessageReceived(); 589 BadMessageReceived();
590 return; 590 return;
591 } 591 }
592 if (!provider_host->IsContextAlive()) 592 if (!provider_host->IsContextAlive())
593 return; 593 return;
594 if (!provider_host->SetHostedVersionId(version_id)) 594 if (!provider_host->SetHostedVersionId(version_id))
595 BadMessageReceived(); 595 BadMessageReceived();
596 596
597 // Retrieve the registration associated with |version_id|.
598 ServiceWorkerVersion* version = GetContext()->GetLiveVersion(version_id); 597 ServiceWorkerVersion* version = GetContext()->GetLiveVersion(version_id);
599 if (!version) 598 if (!version)
600 return; 599 return;
600
601 // Retrieve the registration associated with |version|. The registration
602 // must be alive because the version keeps it during starting worker.
601 ServiceWorkerRegistration* registration = 603 ServiceWorkerRegistration* registration =
602 GetContext()->GetLiveRegistration(version->registration_id()); 604 GetContext()->GetLiveRegistration(version->registration_id());
603 DCHECK(registration); 605 DCHECK(registration);
604 // TODO(ksakamoto): This is a quick fix for crbug.com/459916. 606 // TODO(ksakamoto): This is a quick fix for crbug.com/459916.
605 if (!registration) 607 if (!registration)
606 return; 608 return;
607 609
608 // Set the document URL to the script url in order to allow 610 // Set the document URL to the script url in order to allow
609 // register/unregister/getRegistration on ServiceWorkerGlobalScope. 611 // register/unregister/getRegistration on ServiceWorkerGlobalScope.
610 provider_host->SetDocumentUrl(version->script_url()); 612 provider_host->SetDocumentUrl(version->script_url());
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 ServiceWorkerHandle* handle = handles_.Lookup(handle_id); 1016 ServiceWorkerHandle* handle = handles_.Lookup(handle_id);
1015 if (!handle) { 1017 if (!handle) {
1016 BadMessageReceived(); 1018 BadMessageReceived();
1017 return; 1019 return;
1018 } 1020 }
1019 handle->version()->StopWorker( 1021 handle->version()->StopWorker(
1020 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); 1022 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
1021 } 1023 }
1022 1024
1023 } // namespace content 1025 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698