| # Copyright 2017 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # Contributing to Chrome DevTools Protocol: https://goo.gle/devtools-contribution-guide-cdp |
| |
| # This domain allows interacting with the browser to control PWAs. |
| experimental domain PWA |
| |
| # The following types are the replica of |
| # https://crsrc.org/c/chrome/browser/web_applications/proto/web_app_os_integration_state.proto;drc=9910d3be894c8f142c977ba1023f30a656bc13fc;l=67 |
| type FileHandlerAccept extends object |
| properties |
| # New name of the mimetype according to |
| # https://www.iana.org/assignments/media-types/media-types.xhtml |
| string mediaType |
| array of string fileExtensions |
| |
| type FileHandler extends object |
| properties |
| string action |
| array of FileHandlerAccept accepts |
| string displayName |
| |
| # Returns the following OS state for the given manifest id. |
| command getOsAppState |
| parameters |
| # The id from the webapp's manifest file, commonly it's the url of the |
| # site installing the webapp. See |
| # https://web.dev/learn/pwa/web-app-manifest. |
| string manifestId |
| returns |
| integer badgeCount |
| array of FileHandler fileHandlers |
| |
| # Installs the given manifest identity, optionally using the given installUrlOrBundleUrl |
| # |
| # IWA-specific install description: |
| # manifestId corresponds to isolated-app:// + web_package::SignedWebBundleId |
| # |
| # File installation mode: |
| # The installUrlOrBundleUrl can be either file:// or http(s):// pointing |
| # to a signed web bundle (.swbn). In this case SignedWebBundleId must correspond to |
| # The .swbn file's signing key. |
| # |
| # Dev proxy installation mode: |
| # installUrlOrBundleUrl must be http(s):// that serves dev mode IWA. |
| # web_package::SignedWebBundleId must be of type dev proxy. |
| # |
| # The advantage of dev proxy mode is that all changes to IWA |
| # automatically will be reflected in the running app without |
| # reinstallation. |
| # |
| # To generate bundle id for proxy mode: |
| # 1. Generate 32 random bytes. |
| # 2. Add a specific suffix at the end following the documentation |
| # https://github.com/WICG/isolated-web-apps/blob/main/Scheme.md#suffix |
| # 3. Encode the entire sequence using Base32 without padding. |
| # |
| # If Chrome is not in IWA dev |
| # mode, the installation will fail, regardless of the state of the allowlist. |
| command install |
| parameters |
| string manifestId |
| # The location of the app or bundle overriding the one derived from the |
| # manifestId. |
| optional string installUrlOrBundleUrl |
| |
| # Uninstalls the given manifest_id and closes any opened app windows. |
| command uninstall |
| parameters |
| string manifestId |
| |
| # Launches the installed web app, or an url in the same web app instead of the |
| # default start url if it is provided. Returns a page Target.TargetID which |
| # can be used to attach to via Target.attachToTarget or similar APIs. |
| command launch |
| parameters |
| string manifestId |
| optional string url |
| returns |
| # ID of the tab target created as a result. |
| Target.TargetID targetId |
| |
| # Opens one or more local files from an installed web app identified by its |
| # manifestId. The web app needs to have file handlers registered to process |
| # the files. The API returns one or more page Target.TargetIDs which can be |
| # used to attach to via Target.attachToTarget or similar APIs. |
| # If some files in the parameters cannot be handled by the web app, they will |
| # be ignored. If none of the files can be handled, this API returns an error. |
| # If no files are provided as the parameter, this API also returns an error. |
| # |
| # According to the definition of the file handlers in the manifest file, one |
| # Target.TargetID may represent a page handling one or more files. The order |
| # of the returned Target.TargetIDs is not guaranteed. |
| # |
| # TODO(crbug.com/339454034): Check the existences of the input files. |
| command launchFilesInApp |
| parameters |
| string manifestId |
| array of string files |
| returns |
| # IDs of the tab targets created as the result. |
| array of Target.TargetID targetIds |
| |
| # Opens the current page in its web app identified by the manifest id, needs |
| # to be called on a page target. This function returns immediately without |
| # waiting for the app to finish loading. |
| command openCurrentPageInApp |
| parameters |
| string manifestId |
| |
| # If user prefers opening the app in browser or an app window. |
| type DisplayMode extends string |
| enum |
| standalone |
| browser |
| |
| # Changes user settings of the web app identified by its manifestId. If the |
| # app was not installed, this command returns an error. Unset parameters will |
| # be ignored; unrecognized values will cause an error. |
| # |
| # Unlike the ones defined in the manifest files of the web apps, these |
| # settings are provided by the browser and controlled by the users, they |
| # impact the way the browser handling the web apps. |
| # |
| # See the comment of each parameter. |
| command changeAppUserSettings |
| parameters |
| string manifestId |
| # If user allows the links clicked on by the user in the app's scope, or |
| # extended scope if the manifest has scope extensions and the flags |
| # `DesktopPWAsLinkCapturingWithScopeExtensions` and |
| # `WebAppEnableScopeExtensions` are enabled. |
| # |
| # Note, the API does not support resetting the linkCapturing to the |
| # initial value, uninstalling and installing the web app again will reset |
| # it. |
| # |
| # TODO(crbug.com/339453269): Setting this value on ChromeOS is not |
| # supported yet. |
| optional boolean linkCapturing |
| optional DisplayMode displayMode |