gecko-dev/ipc/glue/PBackground.ipdl

248 строки
7.5 KiB
Plaintext

/* 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 protocol PBackgroundIDBFactory;
include protocol PBackgroundIndexedDBUtils;
include protocol PBackgroundSDBConnection;
include protocol PBackgroundLSDatabase;
include protocol PBackgroundLSObserver;
include protocol PBackgroundLSRequest;
include protocol PBackgroundLSSimpleRequest;
include protocol PBackgroundLocalStorageCache;
include protocol PBackgroundStorage;
include protocol PBackgroundTest;
include protocol PBroadcastChannel;
include protocol PCache;
include protocol PCacheStorage;
include protocol PCacheStreamControl;
include protocol PClientManager;
include protocol PEndpointForReport;
include protocol PFileDescriptorSet;
include protocol PFileSystemRequest;
include protocol PGamepadEventChannel;
include protocol PGamepadTestChannel;
include protocol PHttpBackgroundChannel;
include protocol PIPCBlobInputStream;
include protocol PPendingIPCBlob;
include protocol PRemoteWorker;
include protocol PRemoteWorkerService;
include protocol PSharedWorker;
include protocol PTemporaryIPCBlob;
include protocol PFileCreator;
include protocol PMessagePort;
include protocol PCameras;
include protocol PMIDIManager;
include protocol PMIDIPort;
include protocol PQuota;
include protocol PChildToParentStream;
include protocol PParentToChildStream;
include protocol PServiceWorker;
include protocol PServiceWorkerContainer;
include protocol PServiceWorkerManager;
include protocol PServiceWorkerRegistration;
include protocol PWebAuthnTransaction;
include protocol PUDPSocket;
include protocol PVsync;
include DOMTypes;
include IPCBlob;
include IPCServiceWorkerDescriptor;
include IPCServiceWorkerRegistrationDescriptor;
include PBackgroundLSSharedTypes;
include PBackgroundSharedTypes;
include PBackgroundIDBSharedTypes;
include PFileSystemParams;
include ProtocolTypes;
include RemoteWorkerTypes;
include MIDITypes;
include "mozilla/dom/cache/IPCUtils.h";
include "mozilla/layers/LayersMessageUtils.h";
using mozilla::dom::cache::Namespace
from "mozilla/dom/cache/Types.h";
namespace mozilla {
namespace ipc {
sync protocol PBackground
{
manages PBackgroundIDBFactory;
manages PBackgroundIndexedDBUtils;
manages PBackgroundSDBConnection;
manages PBackgroundLSDatabase;
manages PBackgroundLSObserver;
manages PBackgroundLSRequest;
manages PBackgroundLSSimpleRequest;
manages PBackgroundLocalStorageCache;
manages PBackgroundStorage;
manages PBackgroundTest;
manages PBroadcastChannel;
manages PCache;
manages PCacheStorage;
manages PCacheStreamControl;
manages PClientManager;
manages PEndpointForReport;
manages PFileDescriptorSet;
manages PFileSystemRequest;
manages PGamepadEventChannel;
manages PGamepadTestChannel;
manages PHttpBackgroundChannel;
manages PIPCBlobInputStream;
manages PPendingIPCBlob;
manages PRemoteWorker;
manages PRemoteWorkerService;
manages PSharedWorker;
manages PTemporaryIPCBlob;
manages PFileCreator;
manages PMessagePort;
manages PCameras;
manages PMIDIManager;
manages PMIDIPort;
manages PQuota;
manages PChildToParentStream;
manages PParentToChildStream;
manages PServiceWorker;
manages PServiceWorkerContainer;
manages PServiceWorkerManager;
manages PServiceWorkerRegistration;
manages PWebAuthnTransaction;
manages PUDPSocket;
manages PVsync;
parent:
// Only called at startup during mochitests to check the basic infrastructure.
async PBackgroundTest(nsCString testArg);
async PBackgroundIDBFactory(LoggingInfo loggingInfo);
async PBackgroundIndexedDBUtils();
// Use only for testing!
async FlushPendingFileDeletions();
async PBackgroundSDBConnection(PrincipalInfo principalInfo);
async PBackgroundLSDatabase(PrincipalInfo principalInfo,
uint32_t privateBrowsingId,
uint64_t datastoreId);
async PBackgroundLSObserver(uint64_t observerId);
/**
* Issue an asynchronous request that will be used in a synchronous fashion
* through complex machinations described in `PBackgroundLSRequest.ipdl` and
* `LSObject.h`.
*/
async PBackgroundLSRequest(LSRequestParams params);
/**
* Issues a simple, non-cancelable asynchronous request that's used in an
* asynchronous fashion by callers. (LSRequest is not simple because it used
* in a synchronous fashion which leads to complexities regarding cancelation,
* see `PBackgroundLSRequest.ipdl` for details.)
*/
async PBackgroundLSSimpleRequest(LSSimpleRequestParams params);
/**
* Asynchronously propagates the "last-pb-context-exited" observer
* notification to LocalStorage NextGen implementation so it can clear
* retained private-browsing in-memory Datastores. Using a (same-process)
* IPC message avoids the need for the main-thread nsIObserver to have a
* reference to the PBackground thread and directly dispatch a runnable to it.
*/
async LSClearPrivateBrowsing();
async PBackgroundLocalStorageCache(PrincipalInfo principalInfo,
nsCString originKey,
uint32_t privateBrowsingId);
async PBackgroundStorage(nsString profilePath);
async PVsync();
async PCameras();
async PUDPSocket(PrincipalInfo? pInfo, nsCString filter);
async PBroadcastChannel(PrincipalInfo pInfo, nsCString origin, nsString channel);
async PServiceWorkerManager();
async ShutdownServiceWorkerRegistrar();
async PCacheStorage(Namespace aNamespace, PrincipalInfo aPrincipalInfo);
async PMessagePort(nsID uuid, nsID destinationUuid, uint32_t sequenceId);
async PChildToParentStream();
async MessagePortForceClose(nsID uuid, nsID destinationUuid, uint32_t sequenceId);
async PQuota();
async ShutdownQuotaManager();
async PFileSystemRequest(FileSystemParams params);
async PGamepadEventChannel();
async PGamepadTestChannel();
async PHttpBackgroundChannel(uint64_t channelId);
async PWebAuthnTransaction();
async PSharedWorker(RemoteWorkerData data,
uint64_t windowID,
MessagePortIdentifier portIdentifier);
async PTemporaryIPCBlob();
async PFileCreator(nsString aFullPath, nsString aType, nsString aName,
int64_t? lastModified, bool aExistenceCheck,
bool aIsFromNsIFile);
async PClientManager();
async PMIDIManager();
async PMIDIPort(MIDIPortInfo portInfo, bool sysexEnabled);
// This method is used to propagate storage activities from the child actor
// to the parent actor. See StorageActivityService.
async StorageActivity(PrincipalInfo principalInfo);
async PServiceWorker(IPCServiceWorkerDescriptor aDescriptor);
async PRemoteWorkerService();
async PServiceWorkerContainer();
async PServiceWorkerRegistration(IPCServiceWorkerRegistrationDescriptor aDescriptor);
async PEndpointForReport(nsString aGroupName, PrincipalInfo aPrincipalInfo);
async RemoveEndpoint(nsString aGroupName, nsCString aEndpointURL,
PrincipalInfo aPrincipalInfo);
child:
async PCache();
async PCacheStreamControl();
async PParentToChildStream();
async PPendingIPCBlob(IPCBlob blob);
async PRemoteWorker(RemoteWorkerData data);
both:
// PIPCBlobInputStream is created on the parent side only if the child starts
// a migration.
async PIPCBlobInputStream(nsID aID, uint64_t aSize);
async PFileDescriptorSet(FileDescriptor fd);
};
} // namespace ipc
} // namespace mozilla