WindowSharedStorage
Experimental:This is anexperimental technology
Check theBrowser compatibility table carefully before using this in production.
TheWindowSharedStorage
interface of theShared Storage API represents the shared storage for a particular origin within a standard browsing context.
WindowSharedStorage
is accessed viaWindow.sharedStorage
.
In this article
Instance properties
worklet
ExperimentalContains the
SharedStorageWorklet
instance representing the shared storage worklet for the current origin.SharedStorageWorklet
includes theaddModule()
method, which is used to add a module to the shared storage worklet.
Instance methods
WindowSharedStorage
inherits properties from its parent interface,SharedStorage
.
run()
ExperimentalExecutes aRun output gate operation that has been registered in a module added to the
SharedStorageWorklet
of the current origin.selectURL()
ExperimentalExecutes aURL Selection output gate operation that has been registered in a module added to the
SharedStorageWorklet
of the current origin.
Examples
// Randomly assigns a user to a group 0 or 1function getExperimentGroup() { return Math.round(Math.random());}async function injectContent() { // Add the module to the shared storage worklet await window.sharedStorage.worklet.addModule("ab-testing-worklet.js"); // Assign user to a random group (0 or 1) and store it in shared storage window.sharedStorage.set("ab-testing-group", getExperimentGroup(), { ignoreIfPresent: true, }); // Run the URL selection operation const fencedFrameConfig = await window.sharedStorage.selectURL( "ab-testing", [ { url: `https://your-server.example/content/default-content.html` }, { url: `https://your-server.example/content/experiment-content-a.html` }, ], { resolveToConfig: true, }, ); // Render the chosen URL into a fenced frame document.getElementById("content-slot").config = fencedFrameConfig;}injectContent();
See theShared Storage API landing page for a walkthrough of this example and links to other examples.
Specifications
This feature does not appear to be defined in any specification.>Browser compatibility
Loading…