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
workletExperimentalContains the
SharedStorageWorkletinstance representing the shared storage worklet for the current origin.SharedStorageWorkletincludes 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
SharedStorageWorkletof the current origin.selectURL()ExperimentalExecutes aURL Selection output gate operation that has been registered in a module added to the
SharedStorageWorkletof 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.