blob: 71a4956182402b3811021b01435025db18afca11 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module content.mojom;
import "content/public/common/url_loader_factory.mojom";
// A renderer-side interface that is returned by CreateWorkerFetchContext for
// the browser to notify the renderer process when there's a controller change.
interface ServiceWorkerWorkerClient {
// Called when the ServiceWorkerWorkerClient (which is a dedicated worker or
// a shared worker) is controlled by a new service worker.
SetControllerServiceWorker(int64 controller_version_id);
// A browser-side interface which provides URLLoaderFactory for worker contexts
// in the renderer process.
interface WorkerURLLoaderFactoryProvider {
// Called from a dedicated (or shared) worker thread to get the
// URLLoaderFactory and register ServiceWorkerWorkerClient of the worker.
// SetControllerServiceWorker method of the passed ServiceWorkerWorkerClient
// interface will be called when the parent frame and the worker context is
// controlled by a service worker. |service_worker_provider_id| is the service
// worker provider id of the parent frame.
associated URLLoaderFactory& loader,
associated ServiceWorkerWorkerClient client,
int32 service_worker_provider_id);
// Called from the service worker thread to get the URLLoaderFactory.
GetURLLoaderFactory(associated URLLoaderFactory& loader);