The Wake Lock API works in Chrome 84+, Edge 84+, Opera 70+, Samsung Internet 14+, Firefox 126+, and Safari 16.4+. Learn the API, use cases, and known issues.

Prince Dewani
May 1, 2026
On This Page
The Wake Lock API is a W3C JavaScript API that lets web pages keep the screen on through the navigator.wakeLock entry point. It works in Chrome 84+, Edge 84+, Opera 70+, Samsung Internet 14+, Firefox 126+, and Safari 16.4+ on macOS and iOS, while Internet Explorer does not support it.
This guide covers what the Wake Lock API is, the browsers that support it, the key features, how to use it, real-world use cases, and the known issues.
The Wake Lock API is a W3C JavaScript API that prevents a device from dimming, locking, or turning off the screen while a web page needs it on. The Web Applications Working Group at the W3C edits the Screen Wake Lock spec, and the API is exposed on navigator.wakeLock with a single supported lock type, "screen".
Every modern Chromium-based browser, Firefox, and Safari support the Wake Lock API on desktop, Android, iPadOS, and iOS, so global support sits above 94% as of May 2026.
Chrome supports the Wake Lock API from Chrome 84 on Windows, macOS, Linux, ChromeOS, and Android 6.0+. Chrome 71 to 83 had the API behind the chrome://flags/#enable-experimental-web-platform-features flag. Chrome 4 to 70 did not support it.
Microsoft Edge supports the Wake Lock API from Edge 84 on Windows, macOS, Linux, and Android 6.0+. Pre-Chromium EdgeHTML 12 to 44 never added the API.
Firefox supports the Wake Lock API from Firefox 126 on Windows, macOS, Linux, and Firefox for Android 126. Firefox 124 and 125 had the API behind the dom.screenwakelock.enabled preference in about:config. Firefox 2 to 123 did not support it.
Safari supports the Wake Lock API from Safari 16.4 on macOS Ventura and every later macOS version, including Safari 17 on Sonoma and Safari 18 on Sequoia. WebKit shipped both WakeLock and WakeLockSentinel in Safari 16.4 with no flag. Safari 3.1 to 16.3 did not support it.
Safari on iOS and iPadOS supports the Wake Lock API from iOS 16.4 and iPadOS 16.4. Apple forces every iOS browser to use WebKit, so Chrome, Edge, and Firefox on iOS pick up the same support. iOS 3.2 to 16.3 did not support it, so ship a NoSleep.js fallback for older iPhones.
Opera supports the Wake Lock API from Opera 70 on Windows, macOS, and Linux, tracking Chromium 84. Opera 57 to 69 kept it behind the experimental-web-platform-features flag. Opera Mobile 80+ supports it on Android; Opera Mini does not support it in any version.
Samsung Internet supports the Wake Lock API from Samsung Internet 14.0 on Galaxy phones running Android 6.0 Marshmallow or later. It ships the same Chromium pipeline Chrome for Android uses. Samsung Internet 1.0 to 13.0 did not support it.
Chrome for Android 84+, Samsung Internet 14+, Firefox for Android 126+, and Android WebView together provide the Wake Lock API on Android 6.0+. The legacy stock Android Browser, last shipped with Android 4.4 KitKat, never added it. UC Browser does not support it on any Android version.
Internet Explorer does not support the Wake Lock API in any version. Microsoft has retired Internet Explorer 11 from support, so move any wake-lock-dependent web app to Chromium-based Edge or Chrome.
Note: Wake Lock API behavior shifts across Safari, Firefox, and older Android browsers. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
The Wake Lock API is built around a single Promise-returning request method, a sentinel object you hold to keep the lock alive, and an automatic release tied to page visibility. Every call runs in a secure HTTPS context on a visible document.
The Wake Lock API is a five-step flow: feature-detect, request a screen lock from a visible page, hold the sentinel, listen for release, and re-acquire on tab focus. The whole sequence sits inside one async function.
Paste this snippet into the DevTools console of Chrome, Edge, Firefox, or Safari over HTTPS. Click anywhere on the page once and the console logs a confirmation that the screen wake lock is active.
// Paste this into the DevTools console of Chrome, Edge, Firefox, or Safari over HTTPS.
// The page must be visible and you must run it from a user gesture for some browsers.
let screenLock = null;
if ("wakeLock" in navigator) {
console.log("Wake Lock API is available.");
document.body.addEventListener("click", async () => {
try {
screenLock = await navigator.wakeLock.request("screen");
console.log("Screen wake lock acquired. Screen will stay on.");
screenLock.addEventListener("release", () => {
console.log("Screen wake lock released. Screen can sleep again.");
});
} catch (err) {
console.error("Wake lock request failed:", err.name, err.message);
}
}, { once: true });
document.addEventListener("visibilitychange", async () => {
if (screenLock !== null && document.visibilityState === "visible") {
screenLock = await navigator.wakeLock.request("screen");
console.log("Screen wake lock re-acquired after tab focus.");
}
});
} else {
console.log("Wake Lock API is not supported in this browser.");
}If the console prints "Wake Lock API is not supported in this browser", you are on an older iOS, an older Firefox, or a legacy Android Browser. Ship a NoSleep.js-style video fallback for those visitors.
The Wake Lock API is the right fit for any web app that needs the screen on without a constant tap. Production sites already use it for cooking, navigation, presentations, ticketing, and live streams.
The Wake Lock API is well-supported, but the rough edges show up around auto-release on tab hidden, the missing system lock type, and a handful of OS-level power-saver overrides that no web API can defeat.
In my experience, the trap that bites every Wake Lock integration once is the auto-release on tab hidden. A user opens a recipe, switches to messages, and switches back, and the screen sleeps because the lock died with the visibility flip. Wire visibilitychange to re-request the lock and the surprise goes away.
All Wake Lock API version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance