> [!CAUTION]
> **Important:** Chrome will be removing support for Chrome Apps on all platforms. Chrome browser and the Chrome Web Store will continue to support extensions. [**Read the announcement**](https://blog.chromium.org/2020/08/changes-to-chrome-app-support-timeline.html) and learn more about [**migrating your app**](https://developer.chrome.com/apps/migration).

Though Chrome Apps use the web platform, some web features have been disabled or else are used in a
different way. Mainly this is to avoid security issues and to improve programming practices. Below
is a summary of the disabled features of the web platform and potential work-arounds:

| Disabled | Work-around |
|---|---|
| `alert` | Use a custom lightbox/popup. |
| Browser chrome APIs | N/A. |
| `confirm` | Use a custom lightbox/popup. |
| `document.cookie` | Packaged app pages are not rendered on the server, so there is no need to use these. |
| `document.close` | N/A. |
| `document.open` | N/A. |
| `document.write` | Use document.createElement. |
| External resources | Use the `webview` tag for iframes. See [Embed Content](https://developer.chrome.com/app_external) and [Webview Tag API](https://developer.chrome.com/docs/apps/reference/webviewTag.md.txt). Video and audio are allowed to have non-local URLs. |
| Flash | Use HTML5 Platform. |
| Form submission | Use JavaScript to process form content (listen for submit event, process data locally first before sending to server). |
| javascript: urls | You cannot use bookmarklets for inline javascript on anchors. Use the traditional click handler instead. |
| localStorage | Use IndexedDB or the Storage API (which also syncs to the cloud). |
| Navigation | Links open up with the system web browser. `window.history` and `window.location` are disabled. |
| Non-sandboxed plugins | N/A. |
| `showModalDialog` | Use a custom lightbox/popup. |
| Synchronous `XMLHttpRequest` | Use async-only `XMLHttpRequest`: [Getting Rid of Synchrounous XXRs](http://updates.html5rocks.com/2012/01/Getting-Rid-of-Synchronous-XHRs). |
| User Text selection | By default, users can no longer select text like they can on a web page. To make areas of the app's text selectable, apply the CSS style, `-webkit-user-select: text;`. |
| webSql | Use IndexedDB or [Filesystem API](https://developer.chrome.com/app_storage). |