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

Unified Diff: content/renderer/service_worker/service_worker_context_client.cc

Issue 2517223002: Move content/renderer/background_sync to Blink (Closed)
Patch Set: Fix broken WebEmbeddedWorker test Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/service_worker/service_worker_context_client.cc
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
index c19944bfc590320dbf0f0dcfe90e93af6fd21f6e..09699f0edcc735d484f0c796e8701c6f445fefe2 100644
--- a/content/renderer/service_worker/service_worker_context_client.cc
+++ b/content/renderer/service_worker/service_worker_context_client.cc
@@ -40,7 +40,6 @@
#include "content/public/common/referrer.h"
#include "content/public/renderer/content_renderer_client.h"
#include "content/public/renderer/document_state.h"
-#include "content/renderer/background_sync/background_sync_client_impl.h"
#include "content/renderer/devtools/devtools_agent.h"
#include "content/renderer/render_thread_impl.h"
#include "content/renderer/service_worker/embedded_worker_dispatcher.h"
@@ -52,6 +51,7 @@
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "services/service_manager/public/cpp/interface_provider.h"
#include "services/service_manager/public/cpp/interface_registry.h"
+#include "third_party/WebKit/public/platform/InterfaceRegistry.h"
#include "third_party/WebKit/public/platform/URLConversion.h"
#include "third_party/WebKit/public/platform/WebMessagePortChannel.h"
#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
@@ -182,10 +182,6 @@ struct ServiceWorkerContextClient::WorkerContextData {
IDMap<blink::WebServiceWorkerClientCallbacks, IDMapOwnPointer>;
using SkipWaitingCallbacksMap =
IDMap<blink::WebServiceWorkerSkipWaitingCallbacks, IDMapOwnPointer>;
- using SyncEventCallbacksMap =
- IDMap<const base::Callback<void(blink::mojom::ServiceWorkerEventStatus,
- base::Time /* dispatch_event_time */)>,
- IDMapOwnPointer>;
using FetchEventCallbacksMap =
IDMap<const base::Callback<void(ServiceWorkerStatusCode,
base::Time /* dispatch_event_time */)>,
@@ -197,7 +193,10 @@ struct ServiceWorkerContextClient::WorkerContextData {
explicit WorkerContextData(ServiceWorkerContextClient* owner)
: interface_registry(std::string()),
weak_factory(owner),
- proxy_weak_factory(owner->proxy_) {}
+ proxy_weak_factory(owner->proxy_) {
+ blink_interface_registry.reset(
+ new BlinkInterfaceRegistryImpl(interface_registry.GetWeakPtr()));
+ }
~WorkerContextData() {
DCHECK(thread_checker.CalledOnValidThread());
@@ -215,9 +214,6 @@ struct ServiceWorkerContextClient::WorkerContextData {
// Pending callbacks for ClaimClients().
ClaimClientsCallbacksMap claim_clients_callbacks;
- // Pending callbacks for Background Sync Events.
- SyncEventCallbacksMap sync_event_callbacks;
-
// Pending callbacks for Fetch Events.
FetchEventCallbacksMap fetch_event_callbacks;
@@ -229,6 +225,8 @@ struct ServiceWorkerContextClient::WorkerContextData {
// time, remote interfaces are stored in EmbeddedWorkerInstanceClientImpl.
service_manager::InterfaceProvider remote_interfaces;
+ std::unique_ptr<blink::InterfaceRegistry> blink_interface_registry;
+
base::ThreadChecker thread_checker;
base::WeakPtrFactory<ServiceWorkerContextClient> weak_factory;
base::WeakPtrFactory<blink::WebServiceWorkerContextProxy> proxy_weak_factory;
@@ -404,7 +402,8 @@ ServiceWorkerContextClient::ServiceWorkerContextClient(
sender_(ChildThreadImpl::current()->thread_safe_sender()),
main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
proxy_(nullptr),
- embedded_worker_client_(std::move(embedded_worker_client)) {
+ embedded_worker_client_(std::move(embedded_worker_client)),
+ blink_interface_registry_(nullptr) {
TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker",
"ServiceWorkerContextClient::StartingWorkerContext",
this);
@@ -561,8 +560,6 @@ void ServiceWorkerContextClient::workerContextStarted(
// Register Mojo interfaces.
context_->interface_registry.AddInterface(
- base::Bind(&BackgroundSyncClientImpl::Create));
- context_->interface_registry.AddInterface(
base::Bind(&FetchEventDispatcherImpl::Create));
if (ServiceWorkerUtils::IsMojoForServiceWorkerEnabled()) {
@@ -611,13 +608,6 @@ void ServiceWorkerContextClient::willDestroyWorkerContext(
// (while we're still on the worker thread).
proxy_ = NULL;
- // Aborts the all pending sync event callbacks.
- for (WorkerContextData::SyncEventCallbacksMap::iterator it(
- &context_->sync_event_callbacks);
- !it.IsAtEnd(); it.Advance()) {
- it.GetCurrentValue()->Run(blink::mojom::ServiceWorkerEventStatus::ABORTED,
- base::Time::Now());
- }
// Aborts the all pending fetch event callbacks.
for (WorkerContextData::FetchEventCallbacksMap::iterator it(
&context_->fetch_event_callbacks);
@@ -808,24 +798,6 @@ void ServiceWorkerContextClient::didHandlePushEvent(
base::Time::FromDoubleT(event_dispatch_time)));
}
-void ServiceWorkerContextClient::didHandleSyncEvent(
- int request_id,
- blink::WebServiceWorkerEventResult result,
- double event_dispatch_time) {
- const SyncCallback* callback =
- context_->sync_event_callbacks.Lookup(request_id);
- if (!callback)
- return;
- if (result == blink::WebServiceWorkerEventResultCompleted) {
- callback->Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED,
- base::Time::FromDoubleT(event_dispatch_time));
- } else {
- callback->Run(blink::mojom::ServiceWorkerEventStatus::REJECTED,
- base::Time::FromDoubleT(event_dispatch_time));
- }
- context_->sync_event_callbacks.Remove(request_id);
-}
-
blink::WebServiceWorkerNetworkProvider*
ServiceWorkerContextClient::createServiceWorkerNetworkProvider(
blink::WebDataSource* data_source) {
@@ -931,19 +903,8 @@ void ServiceWorkerContextClient::registerForeignFetchScopes(
std::vector<url::Origin>(origins.begin(), origins.end())));
}
-void ServiceWorkerContextClient::DispatchSyncEvent(
- const std::string& tag,
- blink::WebServiceWorkerContextProxy::LastChanceOption last_chance,
- const SyncCallback& callback) {
- TRACE_EVENT0("ServiceWorker",
- "ServiceWorkerContextClient::DispatchSyncEvent");
- int request_id =
- context_->sync_event_callbacks.Add(new SyncCallback(callback));
-
- // TODO(jkarlin): Make this blink::WebString::FromUTF8Lenient once
- // https://crrev.com/1768063002/ lands.
- proxy_->dispatchSyncEvent(request_id, blink::WebString::fromUTF8(tag),
- last_chance);
+blink::InterfaceRegistry* ServiceWorkerContextClient::interfaceRegistry() {
+ return context_->blink_interface_registry.get();
}
void ServiceWorkerContextClient::Send(IPC::Message* message) {
« no previous file with comments | « content/renderer/service_worker/service_worker_context_client.h ('k') | mojo/common/common_custom_types.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698