Back to Content

WindowSharedStorage: run() method

files/en-us/web/api/windowsharedstorage/run/index.md

latest2.6 KB
Original Source

{{APIRef("Shared Storage API")}}{{deprecated_header}}

The run() method of the {{domxref("WindowSharedStorage")}} interface executes a run operation that is registered in a module added to the current origin's {{domxref("SharedStorageWorklet")}}.

[!NOTE] The Run output gate is intended as a generic way to process some shared storage data.

Syntax

js-nolint
run(name)
run(name, options)

Parameters

  • name
    • : A string representing the registered operation's name within the shared storage worklet module. It must match the name given to the operation when it is registered with {{domxref("SharedStorageWorkletGlobalScope.register()")}}.
  • options {{optional_inline}}
    • : An options object that can contain the following properties:
      • data {{optional_inline}}
        • : An object representing any data required for executing the operation.
      • keepAlive {{optional_inline}}
        • : A boolean value. If set to true, the {{domxref("SharedStorageWorkletGlobalScope")}} of the associated worklet is kept alive, and the operation can be run again. Therefore, you need to set keepAlive to true for each operation that is not intended to be the last one. The default value, false, means that the {{domxref("SharedStorageWorkletGlobalScope")}} is terminated after the operation is run and cannot be run again.

Return value

A {{jsxref("Promise")}} that fulfills with undefined.

Exceptions

  • {{jsxref("TypeError")}}
    • : Thrown if:
      • The worklet module has not yet been added with {{domxref("Worklet.addModule", "addModule()")}}.
      • Shared storage is disabled (for example via a browser setting).
      • The calling site does not have the Shared Storage API included in a successful privacy sandbox enrollment process.

Examples

js
async function measureUniqueReach() {
  // Load the Shared Storage worklet
  await window.sharedStorage.worklet.addModule("reach-measurement-worklet.js");

  // Run the reach measurement operation
  await window.sharedStorage.run("reach-measurement", {
    data: { contentId: "1234" },
  });
}

measureUniqueReach();

See Unique reach measurement for a full explanation of this example. See Shared Storage API for more examples.

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also