Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/serviceworkers/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 5 kB image not shown  

Quelle  ServiceWorkerOpArgs.ipdlh   Sprache: unbekannt

 
/* 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 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 {
  PostMessageSource source;
  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;
};

struct ServiceWorkerUpdateIsOnContentBlockingAllowListOpArgs {
  bool onContentBlockingAllowList;
};

union ServiceWorkerOpArgs {
  ServiceWorkerCheckScriptEvaluationOpArgs;
  ServiceWorkerUpdateStateOpArgs;
  ServiceWorkerTerminateWorkerOpArgs;
  ServiceWorkerLifeCycleEventOpArgs;
  ServiceWorkerPushEventOpArgs;
  ServiceWorkerPushSubscriptionChangeEventOpArgs;
  ServiceWorkerNotificationEventOpArgs;
  ServiceWorkerMessageEventOpArgs;
  ServiceWorkerExtensionAPIEventOpArgs;
  ParentToChildServiceWorkerFetchEventOpArgs;
  ServiceWorkerUpdateIsOnContentBlockingAllowListOpArgs;
};

/**
 * 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

[ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet)  ]