WindowSharedStorage
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The WindowSharedStorage
interface of the Shared Storage API represents the shared storage for a particular origin within a standard browsing context.
WindowSharedStorage
is accessed via Window.sharedStorage
.
Instance properties
worklet
Experimental-
Contains 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()
Experimental-
Executes a Run output gate operation that has been registered in a module added to the
SharedStorageWorklet
of the current origin. selectURL()
Experimental-
Executes a URL 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 1
function 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 the Shared Storage API landing page for a walkthrough of this example and links to other examples.
Specifications
Specification |
---|
Shared Storage API # windowsharedstorage |
Browser compatibility
BCD tables only load in the browser