Chrome Apps Migration

Overview

This page will serve as your guide for how to move Chrome.* App API to the Web Platform and its APIs.


Upcoming Changes

Our team has identified these highly used Chrome.* APIs and we outline below the targeted milestone where those APIs will be coming to the Web Platform. If you use these APIs in your existing Chrome App, you can find out more about these APIs on the Web Updates page. If there is an API you use and it isn’t on our Web Platform Fugu API Roadmap , please file a new feature request where you can provide information about your desired use case.  As we work towards full deprecation, this feedback will help us determine prioritization of APIs. 


Web Supported - Green

Web Partial Support - Yellow

Web Planned - Orange

Web Not Supported - Red


Chrome App feature/functionality

Web Support

Web platform functionality

Origin Trial

Release

chrome.accessibilityFeatures

Partial Support

Requires Chrome Extension


Shipped

chrome.alarms

Planned

Notification Triggers

78

81

chrome.app.runtime

Planned

Launch Event

79

82

chrome.app.runtime.onRestarted

Partial Support

Page Life Cycle


Shipped

chrome.app.window

Planned

Window Placement / Screen Enumeration

80

84

chrome.audio

Planned

Audio Device Client

84

87

chrome.bluetooth

Partial Support

Web Bluetooth API


Shipped

chrome.bluetoothLowEnergy

Partial Support

Web Bluetooth API


Shipped

chrome.bluetoothLowEnergy Peripheral

Not Supported

Support via ARC++ BTLE



chrome.bluetoothSocket

Not Supported

Support via ARC++ BTLE



chrome.browser

Supported

window.open


Shipped

chrome.commands

Supported

UI Events


Shipped

chrome.contextMenus

Supported

(HTML/script)


Shipped

chrome.documentScan

Not Supported

Via extensions chrome.documentScan



chrome.events

Partial Support

Alarms

78

81

chrome.extensionTypes

Partial Support

Extension with extensionTypes


Shipped

chrome.fileSystem

Partial Support

Native FileSystem API

78

84

chrome.fileSystemProvider

Partial Support

Extension w/ fileSystemProvider


Shipped

chrome.gcm

Supported

Web Push Notifications


Shipped

chrome.hid

Planned

Web HID API

81

83

chrome.i18n

Supported

(HTML/script)


Shipped

chrome.identity

Partial Support

Workaround using OAuth API or Credential Management API


Shipped

chrome.idle

Planned

User Idle Detection API

77

80

chrome.instanceID

Partial Support

Web push


Shipped

chrome.mdns

Not Supported

Via partial support from ARC++ NDS Discovery



chrome.mediaGalleries

Planned

Native FileSystem API

77

84

chrome.networking.onc

Not Supported




chrome.notifications

Supported

Notifications API


Shipped

chrome.permissions

Supported

Web Permissions API


Shipped

chrome.power

Planned

WakeLock API

78

82

chrome.printerProvider

Partial Support

Transition to Extension


Shipped

chrome.runtime

Partial Support

Service Workers + Page Lifecycle API


Shipped

chrome.runtime.connect

Partial Support

Channel Messaging API


Shipped

chrome.runtime.sendMessage

Not Supported

Only between Android apps / Only within ARC++



chrome.serial

Planned

Web Serial API

77

80

chrome.sockets.tcp

Not Supported

Partial ARC++ support through android.net.ConnectivityManager and Java standard socket API



chrome.sockets.tcpServer

Not Supported

Partial ARC++ support via android.net.ConnectivityManager and Java standard socket API



chrome.sockets.udp

Not Supported

Partial support via ARC++ DatagramSocket API for UDP



chrome.storage

Partial Support

Cache API: https://www.chromestatus.com/feature/5072127703121920

IndexedDB: https://www.chromestatus.com/feature/6507459568992256


Shipped

chrome.storage.managed

Partial Support

Support via ARC++ or Extension with storage.managed


Shipped

chrome.syncFileSystem

Partial Support

Not supported - Integration with Drive restful API but no OS intergation


Shipped

chrome.system.cpu

Partial Support

navigator.hardwareConcurrency


Shipped

chrome.system.display

Partial Support

window.screen


Shipped

chrome.system.memory

Partial Support

navigator.deviceMemory


Shipped

chrome.system.network

Partial Support

Network Information API


Shipped

chrome.system.storage

Partial Support

navigator.storage


Shipped

chrome.tts

Supported

Web Speech API (Synthesis)


Shipped

chrome.types

Not Supported

Extension with chrome.types


Shipped

chrome.usb

Supported

Web USB API


Shipped

chrome.virtualKeyboard

Not Supported

Partial support via ARC++ Soft Input Method



chrome.vpnProvider

Not Supported

Partial support via ARC++ VpnService or Extensions chrome.vpnProvider



chrome.wallpaper

Not Supported

Support via ARC++ WallpaperManager or Extensions https://developer.chrome.com/extensions/wallpaper



externally_connectable

Not Supported

Use Window.postMessage to communicate with Extensions



kiosk_enabled

Planned

PWAs will be supported in Kiosk mode.



minimum_chrome_version

Not Supported

Use feature detection or via Extenisions minimum_chrome_version



offline_enabled

Supported

Offline via Service Workers


Shipped

NaCl

Partial Support

Migration Guide


Shipped

<webview> tag

Not Supported





Relevant Links

FAQ

Developers


What are my next steps for converting my existing Chrome app?

Migrating to web api: https://developers.chrome.com/apps/migration

Migrating to Android for Chrome OS: https://developer.android.com/chrome-os


Where can I find a list of new Web Platform Fugu APIs that corresponds to existing Chrome app APIs?

See this tracker.


I’m migrating a Chrome App to PWA and missing an API, will an equivalent API be available? If not, how can I request a new Web Capability? 

See https://developers.google.com/web/updates/capabilities; request APIs using this link.


I’ve created a PWA or Android app to replace my Chrome App, what do I need to do to help transition my users?

If you are migrating users to PWAs, you need to add the replace_web_app field and the url for hosting the new PWA. (note, this field exists since M75+) 

If you are migrating users to ARC++, you need to add the replacement_android_app field and the package name for the replacement Android App. (note, this field will be added for Chrome M81+).


Once you have defined one of the two fields, you also need to invoke chrome.management.installReplacementWebApp() in your app to prompt Chrome for the migrating dialogue.

See the example definition in https://developer.chrome.com/apps/manifest.


Comments