gecko-dev/dom/serviceworkers/ServiceWorkerActors.cpp
Andrew Sutherland 88723f7fe4 Bug 1544232 - Track the client listening to a registration. r=dom-worker-reviewers,smaug
This will enable propagating lifetime deadlines based on the deadline
of the client calling ServiceWorkerRegistration.update in the
subsequent patch.

Note that the data-flow of the Client here differs from
ServiceWorkerContainer::Register propagating the ClientInfo to
ServiceWorkerManager::Register.  In that case, the binding samples the
client at call-time and propagates it over the register IPC call rather
than during the construction of the PServiceWorkerContainer actor.
This change in approach is to align with Bug 1853706 wherein we plan to
associate the actors strictly to the global.

Differential Revision: https://phabricator.services.mozilla.com/D196702
2024-10-24 03:02:41 +00:00

42 lines
1.5 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "ServiceWorkerActors.h"
#include "ServiceWorkerChild.h"
#include "ServiceWorkerContainerChild.h"
#include "ServiceWorkerContainerParent.h"
#include "ServiceWorkerParent.h"
#include "ServiceWorkerRegistrationChild.h"
#include "ServiceWorkerRegistrationParent.h"
#include "mozilla/dom/WorkerRef.h"
#include "mozilla/ProfilerMarkers.h"
namespace mozilla::dom {
void InitServiceWorkerParent(PServiceWorkerParent* aActor,
const IPCServiceWorkerDescriptor& aDescriptor) {
auto actor = static_cast<ServiceWorkerParent*>(aActor);
actor->Init(aDescriptor);
}
void InitServiceWorkerContainerParent(PServiceWorkerContainerParent* aActor) {
auto actor = static_cast<ServiceWorkerContainerParent*>(aActor);
actor->Init();
}
void InitServiceWorkerRegistrationParent(
PServiceWorkerRegistrationParent* aActor,
const IPCServiceWorkerRegistrationDescriptor& aDescriptor,
const IPCClientInfo& aForClient) {
AUTO_PROFILER_MARKER_TEXT("InitServiceWorkerRegistrationParent", DOM, {},
""_ns);
auto actor = static_cast<ServiceWorkerRegistrationParent*>(aActor);
actor->Init(aDescriptor, aForClient);
}
} // namespace mozilla::dom