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

Side by Side Diff: content/renderer/service_worker/service_worker_context_client.cc

Issue 2943583002: [extension SW] Support lazy events from extension service workers. (Closed)
Patch Set: sync @tott Created 3 years, 5 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
« no previous file with comments | « content/public/test/service_worker_test_helpers.cc ('k') | content/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/renderer/service_worker/service_worker_context_client.h" 5 #include "content/renderer/service_worker/service_worker_context_client.h"
6 6
7 #include <map> 7 #include <map>
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 worker_task_runner_->PostTask( 737 worker_task_runner_->PostTask(
738 FROM_HERE, base::Bind(&ServiceWorkerContextClient::SendWorkerStarted, 738 FROM_HERE, base::Bind(&ServiceWorkerContextClient::SendWorkerStarted,
739 GetWeakPtr())); 739 GetWeakPtr()));
740 } 740 }
741 741
742 void ServiceWorkerContextClient::DidInitializeWorkerContext( 742 void ServiceWorkerContextClient::DidInitializeWorkerContext(
743 v8::Local<v8::Context> context) { 743 v8::Local<v8::Context> context) {
744 GetContentClient() 744 GetContentClient()
745 ->renderer() 745 ->renderer()
746 ->DidInitializeServiceWorkerContextOnWorkerThread( 746 ->DidInitializeServiceWorkerContextOnWorkerThread(
747 context, service_worker_version_id_, script_url_); 747 context, service_worker_version_id_, service_worker_scope_,
748 script_url_);
748 } 749 }
749 750
750 void ServiceWorkerContextClient::WillDestroyWorkerContext( 751 void ServiceWorkerContextClient::WillDestroyWorkerContext(
751 v8::Local<v8::Context> context) { 752 v8::Local<v8::Context> context) {
752 // At this point WillStopCurrentWorkerThread is already called, so 753 // At this point WillStopCurrentWorkerThread is already called, so
753 // worker_task_runner_->RunsTasksInCurrentSequence() returns false 754 // worker_task_runner_->RunsTasksInCurrentSequence() returns false
754 // (while we're still on the worker thread). 755 // (while we're still on the worker thread).
755 proxy_ = NULL; 756 proxy_ = NULL;
756 757
757 // Aborts all the pending events callbacks. 758 // Aborts all the pending events callbacks.
(...skipping 13 matching lines...) Expand all
771 772
772 // We have to clear callbacks now, as they need to be freed on the 773 // We have to clear callbacks now, as they need to be freed on the
773 // same thread. 774 // same thread.
774 context_.reset(); 775 context_.reset();
775 776
776 // This also lets the message filter stop dispatching messages to 777 // This also lets the message filter stop dispatching messages to
777 // this client. 778 // this client.
778 g_worker_client_tls.Pointer()->Set(NULL); 779 g_worker_client_tls.Pointer()->Set(NULL);
779 780
780 GetContentClient()->renderer()->WillDestroyServiceWorkerContextOnWorkerThread( 781 GetContentClient()->renderer()->WillDestroyServiceWorkerContextOnWorkerThread(
781 context, service_worker_version_id_, script_url_); 782 context, service_worker_version_id_, service_worker_scope_, script_url_);
782 } 783 }
783 784
784 void ServiceWorkerContextClient::WorkerContextDestroyed() { 785 void ServiceWorkerContextClient::WorkerContextDestroyed() {
785 DCHECK(g_worker_client_tls.Pointer()->Get() == NULL); 786 DCHECK(g_worker_client_tls.Pointer()->Get() == NULL);
786 787
787 // TODO(shimazu): The signals to the browser should be in the order: 788 // TODO(shimazu): The signals to the browser should be in the order:
788 // (1) WorkerStopped (via mojo call EmbeddedWorkerInstanceHost.OnStopped()) 789 // (1) WorkerStopped (via mojo call EmbeddedWorkerInstanceHost.OnStopped())
789 // (2) ProviderDestroyed (via mojo call 790 // (2) ProviderDestroyed (via mojo call
790 // ServiceWorkerDispatcherHost.OnProviderDestroyed()), this is triggered by 791 // ServiceWorkerDispatcherHost.OnProviderDestroyed()), this is triggered by
791 // the following EmbeddedWorkerInstanceClientImpl::WorkerContextDestroyed(), 792 // the following EmbeddedWorkerInstanceClientImpl::WorkerContextDestroyed(),
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
1702 } 1703 }
1703 1704
1704 base::WeakPtr<ServiceWorkerContextClient> 1705 base::WeakPtr<ServiceWorkerContextClient>
1705 ServiceWorkerContextClient::GetWeakPtr() { 1706 ServiceWorkerContextClient::GetWeakPtr() {
1706 DCHECK(worker_task_runner_->RunsTasksInCurrentSequence()); 1707 DCHECK(worker_task_runner_->RunsTasksInCurrentSequence());
1707 DCHECK(context_); 1708 DCHECK(context_);
1708 return context_->weak_factory.GetWeakPtr(); 1709 return context_->weak_factory.GetWeakPtr();
1709 } 1710 }
1710 1711
1711 } // namespace content 1712 } // namespace content
OLDNEW
« no previous file with comments | « content/public/test/service_worker_test_helpers.cc ('k') | content/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698