summaryrefslogtreecommitdiffstats
path: root/dom/serviceworkers/ServiceWorkerOpArgs.ipdlh
diff options
context:
space:
mode:
Diffstat (limited to 'dom/serviceworkers/ServiceWorkerOpArgs.ipdlh')
-rw-r--r--dom/serviceworkers/ServiceWorkerOpArgs.ipdlh191
1 files changed, 191 insertions, 0 deletions
diff --git a/dom/serviceworkers/ServiceWorkerOpArgs.ipdlh b/dom/serviceworkers/ServiceWorkerOpArgs.ipdlh
new file mode 100644
index 0000000000..302b677a2e
--- /dev/null
+++ b/dom/serviceworkers/ServiceWorkerOpArgs.ipdlh
@@ -0,0 +1,191 @@
+/* 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 ClientIPCTypes;
+include DOMTypes;
+include FetchTypes;
+
+include "mozilla/dom/ServiceWorkerIPCUtils.h";
+
+using mozilla::dom::ServiceWorkerState from "mozilla/dom/ServiceWorkerBinding.h";
+using mozilla::TimeStamp from "mozilla/TimeStamp.h";
+
+namespace mozilla {
+namespace dom {
+
+/**
+ * ServiceWorkerOpArgs
+ */
+struct ServiceWorkerCheckScriptEvaluationOpArgs {};
+
+struct ServiceWorkerUpdateStateOpArgs {
+ ServiceWorkerState state;
+};
+
+struct ServiceWorkerTerminateWorkerOpArgs {
+ uint32_t shutdownStateId;
+};
+
+struct ServiceWorkerLifeCycleEventOpArgs {
+ nsString eventName;
+};
+
+// Possibly need to differentiate an empty array from the absence of an array.
+union OptionalPushData {
+ void_t;
+ uint8_t[];
+};
+
+struct ServiceWorkerPushEventOpArgs {
+ nsString messageId;
+ OptionalPushData data;
+};
+
+struct ServiceWorkerPushSubscriptionChangeEventOpArgs {};
+
+struct ServiceWorkerNotificationEventOpArgs {
+ nsString eventName;
+ nsString id;
+ nsString title;
+ nsString dir;
+ nsString lang;
+ nsString body;
+ nsString tag;
+ nsString icon;
+ nsString data;
+ nsString behavior;
+ nsString scope;
+ uint32_t disableOpenClickDelay;
+};
+
+struct ServiceWorkerExtensionAPIEventOpArgs {
+ // WebExtensions API namespace and event names, for a list of the API namespaces
+ // and related API event names refer to the API JSONSchema files in-tree:
+ //
+ // https://searchfox.org/mozilla-central/search?q=&path=extensions%2Fschemas%2F*.json
+ nsString apiNamespace;
+ nsString apiEventName;
+};
+
+struct ServiceWorkerMessageEventOpArgs {
+ ClientInfoAndState clientInfoAndState;
+ ClonedOrErrorMessageData clonedData;
+};
+
+struct ServiceWorkerFetchEventOpArgsCommon {
+ nsCString workerScriptSpec;
+ IPCInternalRequest internalRequest;
+ nsString clientId;
+ nsString resultingClientId;
+ bool isNonSubresourceRequest;
+ // Is navigation preload enabled for this fetch? If true, if some
+ // preloadResponse was not already provided in this structure, then it's
+ // expected that a PreloadResponse message will eventually be sent.
+ bool preloadNavigation;
+ // Failure injection helper; non-NS_OK values indicate that the event, instead
+ // of dispatching should instead return a `CancelInterceptionArgs` response
+ // with this nsresult. This value originates from
+ // `nsIServiceWorkerInfo::testingInjectCancellation`.
+ nsresult testingInjectCancellation;
+};
+
+struct ParentToParentServiceWorkerFetchEventOpArgs {
+ ServiceWorkerFetchEventOpArgsCommon common;
+ ParentToParentInternalResponse? preloadResponse;
+ ResponseTiming? preloadResponseTiming;
+ ResponseEndArgs? preloadResponseEndArgs;
+};
+
+struct ParentToChildServiceWorkerFetchEventOpArgs {
+ ServiceWorkerFetchEventOpArgsCommon common;
+ ParentToChildInternalResponse? preloadResponse;
+ ResponseTiming? preloadResponseTiming;
+ ResponseEndArgs? preloadResponseEndArgs;
+};
+
+union ServiceWorkerOpArgs {
+ ServiceWorkerCheckScriptEvaluationOpArgs;
+ ServiceWorkerUpdateStateOpArgs;
+ ServiceWorkerTerminateWorkerOpArgs;
+ ServiceWorkerLifeCycleEventOpArgs;
+ ServiceWorkerPushEventOpArgs;
+ ServiceWorkerPushSubscriptionChangeEventOpArgs;
+ ServiceWorkerNotificationEventOpArgs;
+ ServiceWorkerMessageEventOpArgs;
+ ServiceWorkerExtensionAPIEventOpArgs;
+ ParentToChildServiceWorkerFetchEventOpArgs;
+};
+
+/**
+ * IPCFetchEventRespondWithResult
+ */
+struct FetchEventRespondWithClosure {
+ nsCString respondWithScriptSpec;
+ uint32_t respondWithLineNumber;
+ uint32_t respondWithColumnNumber;
+};
+
+struct FetchEventTimeStamps {
+ TimeStamp fetchHandlerStart;
+ TimeStamp fetchHandlerFinish;
+};
+
+struct ChildToParentSynthesizeResponseArgs {
+ ChildToParentInternalResponse internalResponse;
+ FetchEventRespondWithClosure closure;
+ FetchEventTimeStamps timeStamps;
+};
+
+struct ParentToParentSynthesizeResponseArgs {
+ ParentToParentInternalResponse internalResponse;
+ FetchEventRespondWithClosure closure;
+ FetchEventTimeStamps timeStamps;
+};
+
+struct ResetInterceptionArgs {
+ FetchEventTimeStamps timeStamps;
+};
+
+struct CancelInterceptionArgs {
+ nsresult status;
+ FetchEventTimeStamps timeStamps;
+};
+
+union ChildToParentFetchEventRespondWithResult {
+ ChildToParentSynthesizeResponseArgs;
+ ResetInterceptionArgs;
+ CancelInterceptionArgs;
+};
+
+union ParentToParentFetchEventRespondWithResult {
+ ParentToParentSynthesizeResponseArgs;
+ ResetInterceptionArgs;
+ CancelInterceptionArgs;
+};
+
+/**
+ * ServiceWorkerOpResult
+ */
+struct ServiceWorkerCheckScriptEvaluationOpResult {
+ bool workerScriptExecutedSuccessfully;
+ bool fetchHandlerWasAdded;
+};
+
+struct ServiceWorkerFetchEventOpResult {
+ nsresult rv;
+};
+
+struct ServiceWorkerExtensionAPIEventOpResult {
+ bool extensionAPIEventListenerWasAdded;
+};
+
+union ServiceWorkerOpResult {
+ nsresult;
+ ServiceWorkerCheckScriptEvaluationOpResult;
+ ServiceWorkerFetchEventOpResult;
+ ServiceWorkerExtensionAPIEventOpResult;
+};
+
+} // namespace dom
+} // namespace mozilla