144 lines
5.6 KiB
Plaintext
144 lines
5.6 KiB
Plaintext
# 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
|