chrome-devtools-frontend
Version:
Chrome DevTools UI
1,639 lines (1,516 loc) • 567 kB
text/typescript
// Copyright (c) 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* This file is auto-generated, do not edit manually. *
* Re-generate with: npm run generate-protocol-resources.
*/
export type integer = number;
export type binary = string;
export type EnumerableEnum<T> = {[K in keyof T]: T[K]};
export interface ProtocolResponseWithError {
/** Returns an error message if the request failed. */
getError(): string|undefined;
}
type OpaqueType<Tag extends string> = {protocolOpaqueTypeTag: Tag};
type OpaqueIdentifier<RepresentationType, Tag extends string> = RepresentationType&OpaqueType<Tag>;
export namespace Accessibility {
/**
* Unique accessibility node identifier.
*/
export type AXNodeId = OpaqueIdentifier<string, 'Protocol.Accessibility.AXNodeId'>;
/**
* Enum of possible property types.
*/
export const enum AXValueType {
Boolean = 'boolean',
Tristate = 'tristate',
BooleanOrUndefined = 'booleanOrUndefined',
Idref = 'idref',
IdrefList = 'idrefList',
Integer = 'integer',
Node = 'node',
NodeList = 'nodeList',
Number = 'number',
String = 'string',
ComputedString = 'computedString',
Token = 'token',
TokenList = 'tokenList',
DomRelation = 'domRelation',
Role = 'role',
InternalRole = 'internalRole',
ValueUndefined = 'valueUndefined',
}
/**
* Enum of possible property sources.
*/
export const enum AXValueSourceType {
Attribute = 'attribute',
Implicit = 'implicit',
Style = 'style',
Contents = 'contents',
Placeholder = 'placeholder',
RelatedElement = 'relatedElement',
}
/**
* Enum of possible native property sources (as a subtype of a particular AXValueSourceType).
*/
export const enum AXValueNativeSourceType {
Description = 'description',
Figcaption = 'figcaption',
Label = 'label',
Labelfor = 'labelfor',
Labelwrapped = 'labelwrapped',
Legend = 'legend',
Rubyannotation = 'rubyannotation',
Tablecaption = 'tablecaption',
Title = 'title',
Other = 'other',
}
/**
* A single source for a computed AX property.
*/
export interface AXValueSource {
/**
* What type of source this is.
*/
type: AXValueSourceType;
/**
* The value of this property source.
*/
value?: AXValue;
/**
* The name of the relevant attribute, if any.
*/
attribute?: string;
/**
* The value of the relevant attribute, if any.
*/
attributeValue?: AXValue;
/**
* Whether this source is superseded by a higher priority source.
*/
superseded?: boolean;
/**
* The native markup source for this value, e.g. a `<label>` element.
*/
nativeSource?: AXValueNativeSourceType;
/**
* The value, such as a node or node list, of the native source.
*/
nativeSourceValue?: AXValue;
/**
* Whether the value for this property is invalid.
*/
invalid?: boolean;
/**
* Reason for the value being invalid, if it is.
*/
invalidReason?: string;
}
export interface AXRelatedNode {
/**
* The BackendNodeId of the related DOM node.
*/
backendDOMNodeId: DOM.BackendNodeId;
/**
* The IDRef value provided, if any.
*/
idref?: string;
/**
* The text alternative of this node in the current context.
*/
text?: string;
}
export interface AXProperty {
/**
* The name of this property.
*/
name: AXPropertyName;
/**
* The value of this property.
*/
value: AXValue;
}
/**
* A single computed AX property.
*/
export interface AXValue {
/**
* The type of this value.
*/
type: AXValueType;
/**
* The computed value of this property.
*/
value?: any;
/**
* One or more related nodes, if applicable.
*/
relatedNodes?: AXRelatedNode[];
/**
* The sources which contributed to the computation of this property.
*/
sources?: AXValueSource[];
}
/**
* Values of AXProperty name:
* - from 'busy' to 'roledescription': states which apply to every AX node
* - from 'live' to 'root': attributes which apply to nodes in live regions
* - from 'autocomplete' to 'valuetext': attributes which apply to widgets
* - from 'checked' to 'selected': states which apply to widgets
* - from 'activedescendant' to 'owns' - relationships between elements other than parent/child/sibling.
*/
export const enum AXPropertyName {
Actions = 'actions',
Busy = 'busy',
Disabled = 'disabled',
Editable = 'editable',
Focusable = 'focusable',
Focused = 'focused',
Hidden = 'hidden',
HiddenRoot = 'hiddenRoot',
Invalid = 'invalid',
Keyshortcuts = 'keyshortcuts',
Settable = 'settable',
Roledescription = 'roledescription',
Live = 'live',
Atomic = 'atomic',
Relevant = 'relevant',
Root = 'root',
Autocomplete = 'autocomplete',
HasPopup = 'hasPopup',
Level = 'level',
Multiselectable = 'multiselectable',
Orientation = 'orientation',
Multiline = 'multiline',
Readonly = 'readonly',
Required = 'required',
Valuemin = 'valuemin',
Valuemax = 'valuemax',
Valuetext = 'valuetext',
Checked = 'checked',
Expanded = 'expanded',
Modal = 'modal',
Pressed = 'pressed',
Selected = 'selected',
Activedescendant = 'activedescendant',
Controls = 'controls',
Describedby = 'describedby',
Details = 'details',
Errormessage = 'errormessage',
Flowto = 'flowto',
Labelledby = 'labelledby',
Owns = 'owns',
Url = 'url',
}
/**
* A node in the accessibility tree.
*/
export interface AXNode {
/**
* Unique identifier for this node.
*/
nodeId: AXNodeId;
/**
* Whether this node is ignored for accessibility
*/
ignored: boolean;
/**
* Collection of reasons why this node is hidden.
*/
ignoredReasons?: AXProperty[];
/**
* This `Node`'s role, whether explicit or implicit.
*/
role?: AXValue;
/**
* This `Node`'s Chrome raw role.
*/
chromeRole?: AXValue;
/**
* The accessible name for this `Node`.
*/
name?: AXValue;
/**
* The accessible description for this `Node`.
*/
description?: AXValue;
/**
* The value for this `Node`.
*/
value?: AXValue;
/**
* All other properties
*/
properties?: AXProperty[];
/**
* ID for this node's parent.
*/
parentId?: AXNodeId;
/**
* IDs for each of this node's child nodes.
*/
childIds?: AXNodeId[];
/**
* The backend ID for the associated DOM node, if any.
*/
backendDOMNodeId?: DOM.BackendNodeId;
/**
* The frame ID for the frame associated with this nodes document.
*/
frameId?: Page.FrameId;
}
export interface GetPartialAXTreeRequest {
/**
* Identifier of the node to get the partial accessibility tree for.
*/
nodeId?: DOM.NodeId;
/**
* Identifier of the backend node to get the partial accessibility tree for.
*/
backendNodeId?: DOM.BackendNodeId;
/**
* JavaScript object id of the node wrapper to get the partial accessibility tree for.
*/
objectId?: Runtime.RemoteObjectId;
/**
* Whether to fetch this node's ancestors, siblings and children. Defaults to true.
*/
fetchRelatives?: boolean;
}
export interface GetPartialAXTreeResponse extends ProtocolResponseWithError {
/**
* The `Accessibility.AXNode` for this DOM node, if it exists, plus its ancestors, siblings and
* children, if requested.
*/
nodes: AXNode[];
}
export interface GetFullAXTreeRequest {
/**
* The maximum depth at which descendants of the root node should be retrieved.
* If omitted, the full tree is returned.
*/
depth?: integer;
/**
* The frame for whose document the AX tree should be retrieved.
* If omitted, the root frame is used.
*/
frameId?: Page.FrameId;
}
export interface GetFullAXTreeResponse extends ProtocolResponseWithError {
nodes: AXNode[];
}
export interface GetRootAXNodeRequest {
/**
* The frame in whose document the node resides.
* If omitted, the root frame is used.
*/
frameId?: Page.FrameId;
}
export interface GetRootAXNodeResponse extends ProtocolResponseWithError {
node: AXNode;
}
export interface GetAXNodeAndAncestorsRequest {
/**
* Identifier of the node to get.
*/
nodeId?: DOM.NodeId;
/**
* Identifier of the backend node to get.
*/
backendNodeId?: DOM.BackendNodeId;
/**
* JavaScript object id of the node wrapper to get.
*/
objectId?: Runtime.RemoteObjectId;
}
export interface GetAXNodeAndAncestorsResponse extends ProtocolResponseWithError {
nodes: AXNode[];
}
export interface GetChildAXNodesRequest {
id: AXNodeId;
/**
* The frame in whose document the node resides.
* If omitted, the root frame is used.
*/
frameId?: Page.FrameId;
}
export interface GetChildAXNodesResponse extends ProtocolResponseWithError {
nodes: AXNode[];
}
export interface QueryAXTreeRequest {
/**
* Identifier of the node for the root to query.
*/
nodeId?: DOM.NodeId;
/**
* Identifier of the backend node for the root to query.
*/
backendNodeId?: DOM.BackendNodeId;
/**
* JavaScript object id of the node wrapper for the root to query.
*/
objectId?: Runtime.RemoteObjectId;
/**
* Find nodes with this computed name.
*/
accessibleName?: string;
/**
* Find nodes with this computed role.
*/
role?: string;
}
export interface QueryAXTreeResponse extends ProtocolResponseWithError {
/**
* A list of `Accessibility.AXNode` matching the specified attributes,
* including nodes that are ignored for accessibility.
*/
nodes: AXNode[];
}
/**
* The loadComplete event mirrors the load complete event sent by the browser to assistive
* technology when the web page has finished loading.
*/
export interface LoadCompleteEvent {
/**
* New document root node.
*/
root: AXNode;
}
/**
* The nodesUpdated event is sent every time a previously requested node has changed the in tree.
*/
export interface NodesUpdatedEvent {
/**
* Updated node data.
*/
nodes: AXNode[];
}
}
export namespace Animation {
export const enum AnimationType {
CSSTransition = 'CSSTransition',
CSSAnimation = 'CSSAnimation',
WebAnimation = 'WebAnimation',
}
/**
* Animation instance.
*/
export interface Animation {
/**
* `Animation`'s id.
*/
id: string;
/**
* `Animation`'s name.
*/
name: string;
/**
* `Animation`'s internal paused state.
*/
pausedState: boolean;
/**
* `Animation`'s play state.
*/
playState: string;
/**
* `Animation`'s playback rate.
*/
playbackRate: number;
/**
* `Animation`'s start time.
* Milliseconds for time based animations and
* percentage [0 - 100] for scroll driven animations
* (i.e. when viewOrScrollTimeline exists).
*/
startTime: number;
/**
* `Animation`'s current time.
*/
currentTime: number;
/**
* Animation type of `Animation`.
*/
type: AnimationType;
/**
* `Animation`'s source animation node.
*/
source?: AnimationEffect;
/**
* A unique ID for `Animation` representing the sources that triggered this CSS
* animation/transition.
*/
cssId?: string;
/**
* View or scroll timeline
*/
viewOrScrollTimeline?: ViewOrScrollTimeline;
}
/**
* Timeline instance
*/
export interface ViewOrScrollTimeline {
/**
* Scroll container node
*/
sourceNodeId?: DOM.BackendNodeId;
/**
* Represents the starting scroll position of the timeline
* as a length offset in pixels from scroll origin.
*/
startOffset?: number;
/**
* Represents the ending scroll position of the timeline
* as a length offset in pixels from scroll origin.
*/
endOffset?: number;
/**
* The element whose principal box's visibility in the
* scrollport defined the progress of the timeline.
* Does not exist for animations with ScrollTimeline
*/
subjectNodeId?: DOM.BackendNodeId;
/**
* Orientation of the scroll
*/
axis: DOM.ScrollOrientation;
}
/**
* AnimationEffect instance
*/
export interface AnimationEffect {
/**
* `AnimationEffect`'s delay.
*/
delay: number;
/**
* `AnimationEffect`'s end delay.
*/
endDelay: number;
/**
* `AnimationEffect`'s iteration start.
*/
iterationStart: number;
/**
* `AnimationEffect`'s iterations.
*/
iterations: number;
/**
* `AnimationEffect`'s iteration duration.
* Milliseconds for time based animations and
* percentage [0 - 100] for scroll driven animations
* (i.e. when viewOrScrollTimeline exists).
*/
duration: number;
/**
* `AnimationEffect`'s playback direction.
*/
direction: string;
/**
* `AnimationEffect`'s fill mode.
*/
fill: string;
/**
* `AnimationEffect`'s target node.
*/
backendNodeId?: DOM.BackendNodeId;
/**
* `AnimationEffect`'s keyframes.
*/
keyframesRule?: KeyframesRule;
/**
* `AnimationEffect`'s timing function.
*/
easing: string;
}
/**
* Keyframes Rule
*/
export interface KeyframesRule {
/**
* CSS keyframed animation's name.
*/
name?: string;
/**
* List of animation keyframes.
*/
keyframes: KeyframeStyle[];
}
/**
* Keyframe Style
*/
export interface KeyframeStyle {
/**
* Keyframe's time offset.
*/
offset: string;
/**
* `AnimationEffect`'s timing function.
*/
easing: string;
}
export interface GetCurrentTimeRequest {
/**
* Id of animation.
*/
id: string;
}
export interface GetCurrentTimeResponse extends ProtocolResponseWithError {
/**
* Current time of the page.
*/
currentTime: number;
}
export interface GetPlaybackRateResponse extends ProtocolResponseWithError {
/**
* Playback rate for animations on page.
*/
playbackRate: number;
}
export interface ReleaseAnimationsRequest {
/**
* List of animation ids to seek.
*/
animations: string[];
}
export interface ResolveAnimationRequest {
/**
* Animation id.
*/
animationId: string;
}
export interface ResolveAnimationResponse extends ProtocolResponseWithError {
/**
* Corresponding remote object.
*/
remoteObject: Runtime.RemoteObject;
}
export interface SeekAnimationsRequest {
/**
* List of animation ids to seek.
*/
animations: string[];
/**
* Set the current time of each animation.
*/
currentTime: number;
}
export interface SetPausedRequest {
/**
* Animations to set the pause state of.
*/
animations: string[];
/**
* Paused state to set to.
*/
paused: boolean;
}
export interface SetPlaybackRateRequest {
/**
* Playback rate for animations on page
*/
playbackRate: number;
}
export interface SetTimingRequest {
/**
* Animation id.
*/
animationId: string;
/**
* Duration of the animation.
*/
duration: number;
/**
* Delay of the animation.
*/
delay: number;
}
/**
* Event for when an animation has been cancelled.
*/
export interface AnimationCanceledEvent {
/**
* Id of the animation that was cancelled.
*/
id: string;
}
/**
* Event for each animation that has been created.
*/
export interface AnimationCreatedEvent {
/**
* Id of the animation that was created.
*/
id: string;
}
/**
* Event for animation that has been started.
*/
export interface AnimationStartedEvent {
/**
* Animation that was started.
*/
animation: Animation;
}
/**
* Event for animation that has been updated.
*/
export interface AnimationUpdatedEvent {
/**
* Animation that was updated.
*/
animation: Animation;
}
}
/**
* Audits domain allows investigation of page violations and possible improvements.
*/
export namespace Audits {
/**
* Information about a cookie that is affected by an inspector issue.
*/
export interface AffectedCookie {
/**
* The following three properties uniquely identify a cookie
*/
name: string;
path: string;
domain: string;
}
/**
* Information about a request that is affected by an inspector issue.
*/
export interface AffectedRequest {
/**
* The unique request id.
*/
requestId?: Network.RequestId;
url: string;
}
/**
* Information about the frame affected by an inspector issue.
*/
export interface AffectedFrame {
frameId: Page.FrameId;
}
export const enum CookieExclusionReason {
ExcludeSameSiteUnspecifiedTreatedAsLax = 'ExcludeSameSiteUnspecifiedTreatedAsLax',
ExcludeSameSiteNoneInsecure = 'ExcludeSameSiteNoneInsecure',
ExcludeSameSiteLax = 'ExcludeSameSiteLax',
ExcludeSameSiteStrict = 'ExcludeSameSiteStrict',
ExcludeInvalidSameParty = 'ExcludeInvalidSameParty',
ExcludeSamePartyCrossPartyContext = 'ExcludeSamePartyCrossPartyContext',
ExcludeDomainNonASCII = 'ExcludeDomainNonASCII',
ExcludeThirdPartyCookieBlockedInFirstPartySet = 'ExcludeThirdPartyCookieBlockedInFirstPartySet',
ExcludeThirdPartyPhaseout = 'ExcludeThirdPartyPhaseout',
ExcludePortMismatch = 'ExcludePortMismatch',
ExcludeSchemeMismatch = 'ExcludeSchemeMismatch',
}
export const enum CookieWarningReason {
WarnSameSiteUnspecifiedCrossSiteContext = 'WarnSameSiteUnspecifiedCrossSiteContext',
WarnSameSiteNoneInsecure = 'WarnSameSiteNoneInsecure',
WarnSameSiteUnspecifiedLaxAllowUnsafe = 'WarnSameSiteUnspecifiedLaxAllowUnsafe',
WarnSameSiteStrictLaxDowngradeStrict = 'WarnSameSiteStrictLaxDowngradeStrict',
WarnSameSiteStrictCrossDowngradeStrict = 'WarnSameSiteStrictCrossDowngradeStrict',
WarnSameSiteStrictCrossDowngradeLax = 'WarnSameSiteStrictCrossDowngradeLax',
WarnSameSiteLaxCrossDowngradeStrict = 'WarnSameSiteLaxCrossDowngradeStrict',
WarnSameSiteLaxCrossDowngradeLax = 'WarnSameSiteLaxCrossDowngradeLax',
WarnAttributeValueExceedsMaxSize = 'WarnAttributeValueExceedsMaxSize',
WarnDomainNonASCII = 'WarnDomainNonASCII',
WarnThirdPartyPhaseout = 'WarnThirdPartyPhaseout',
WarnCrossSiteRedirectDowngradeChangesInclusion = 'WarnCrossSiteRedirectDowngradeChangesInclusion',
WarnDeprecationTrialMetadata = 'WarnDeprecationTrialMetadata',
WarnThirdPartyCookieHeuristic = 'WarnThirdPartyCookieHeuristic',
}
export const enum CookieOperation {
SetCookie = 'SetCookie',
ReadCookie = 'ReadCookie',
}
/**
* Represents the category of insight that a cookie issue falls under.
*/
export const enum InsightType {
GitHubResource = 'GitHubResource',
GracePeriod = 'GracePeriod',
Heuristics = 'Heuristics',
}
/**
* Information about the suggested solution to a cookie issue.
*/
export interface CookieIssueInsight {
type: InsightType;
/**
* Link to table entry in third-party cookie migration readiness list.
*/
tableEntryUrl?: string;
}
/**
* This information is currently necessary, as the front-end has a difficult
* time finding a specific cookie. With this, we can convey specific error
* information without the cookie.
*/
export interface CookieIssueDetails {
/**
* If AffectedCookie is not set then rawCookieLine contains the raw
* Set-Cookie header string. This hints at a problem where the
* cookie line is syntactically or semantically malformed in a way
* that no valid cookie could be created.
*/
cookie?: AffectedCookie;
rawCookieLine?: string;
cookieWarningReasons: CookieWarningReason[];
cookieExclusionReasons: CookieExclusionReason[];
/**
* Optionally identifies the site-for-cookies and the cookie url, which
* may be used by the front-end as additional context.
*/
operation: CookieOperation;
siteForCookies?: string;
cookieUrl?: string;
request?: AffectedRequest;
/**
* The recommended solution to the issue.
*/
insight?: CookieIssueInsight;
}
export const enum MixedContentResolutionStatus {
MixedContentBlocked = 'MixedContentBlocked',
MixedContentAutomaticallyUpgraded = 'MixedContentAutomaticallyUpgraded',
MixedContentWarning = 'MixedContentWarning',
}
export const enum MixedContentResourceType {
AttributionSrc = 'AttributionSrc',
Audio = 'Audio',
Beacon = 'Beacon',
CSPReport = 'CSPReport',
Download = 'Download',
EventSource = 'EventSource',
Favicon = 'Favicon',
Font = 'Font',
Form = 'Form',
Frame = 'Frame',
Image = 'Image',
Import = 'Import',
JSON = 'JSON',
Manifest = 'Manifest',
Ping = 'Ping',
PluginData = 'PluginData',
PluginResource = 'PluginResource',
Prefetch = 'Prefetch',
Resource = 'Resource',
Script = 'Script',
ServiceWorker = 'ServiceWorker',
SharedWorker = 'SharedWorker',
SpeculationRules = 'SpeculationRules',
Stylesheet = 'Stylesheet',
Track = 'Track',
Video = 'Video',
Worker = 'Worker',
XMLHttpRequest = 'XMLHttpRequest',
XSLT = 'XSLT',
}
export interface MixedContentIssueDetails {
/**
* The type of resource causing the mixed content issue (css, js, iframe,
* form,...). Marked as optional because it is mapped to from
* blink::mojom::RequestContextType, which will be replaced
* by network::mojom::RequestDestination
*/
resourceType?: MixedContentResourceType;
/**
* The way the mixed content issue is being resolved.
*/
resolutionStatus: MixedContentResolutionStatus;
/**
* The unsafe http url causing the mixed content issue.
*/
insecureURL: string;
/**
* The url responsible for the call to an unsafe url.
*/
mainResourceURL: string;
/**
* The mixed content request.
* Does not always exist (e.g. for unsafe form submission urls).
*/
request?: AffectedRequest;
/**
* Optional because not every mixed content issue is necessarily linked to a frame.
*/
frame?: AffectedFrame;
}
/**
* Enum indicating the reason a response has been blocked. These reasons are
* refinements of the net error BLOCKED_BY_RESPONSE.
*/
export const enum BlockedByResponseReason {
CoepFrameResourceNeedsCoepHeader = 'CoepFrameResourceNeedsCoepHeader',
CoopSandboxedIFrameCannotNavigateToCoopPage = 'CoopSandboxedIFrameCannotNavigateToCoopPage',
CorpNotSameOrigin = 'CorpNotSameOrigin',
CorpNotSameOriginAfterDefaultedToSameOriginByCoep = 'CorpNotSameOriginAfterDefaultedToSameOriginByCoep',
CorpNotSameOriginAfterDefaultedToSameOriginByDip = 'CorpNotSameOriginAfterDefaultedToSameOriginByDip',
CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip = 'CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip',
CorpNotSameSite = 'CorpNotSameSite',
SRIMessageSignatureMismatch = 'SRIMessageSignatureMismatch',
}
/**
* Details for a request that has been blocked with the BLOCKED_BY_RESPONSE
* code. Currently only used for COEP/COOP, but may be extended to include
* some CSP errors in the future.
*/
export interface BlockedByResponseIssueDetails {
request: AffectedRequest;
parentFrame?: AffectedFrame;
blockedFrame?: AffectedFrame;
reason: BlockedByResponseReason;
}
export const enum HeavyAdResolutionStatus {
HeavyAdBlocked = 'HeavyAdBlocked',
HeavyAdWarning = 'HeavyAdWarning',
}
export const enum HeavyAdReason {
NetworkTotalLimit = 'NetworkTotalLimit',
CpuTotalLimit = 'CpuTotalLimit',
CpuPeakLimit = 'CpuPeakLimit',
}
export interface HeavyAdIssueDetails {
/**
* The resolution status, either blocking the content or warning.
*/
resolution: HeavyAdResolutionStatus;
/**
* The reason the ad was blocked, total network or cpu or peak cpu.
*/
reason: HeavyAdReason;
/**
* The frame that was blocked.
*/
frame: AffectedFrame;
}
export const enum ContentSecurityPolicyViolationType {
KInlineViolation = 'kInlineViolation',
KEvalViolation = 'kEvalViolation',
KURLViolation = 'kURLViolation',
KSRIViolation = 'kSRIViolation',
KTrustedTypesSinkViolation = 'kTrustedTypesSinkViolation',
KTrustedTypesPolicyViolation = 'kTrustedTypesPolicyViolation',
KWasmEvalViolation = 'kWasmEvalViolation',
}
export interface SourceCodeLocation {
scriptId?: Runtime.ScriptId;
url: string;
lineNumber: integer;
columnNumber: integer;
}
export interface ContentSecurityPolicyIssueDetails {
/**
* The url not included in allowed sources.
*/
blockedURL?: string;
/**
* Specific directive that is violated, causing the CSP issue.
*/
violatedDirective: string;
isReportOnly: boolean;
contentSecurityPolicyViolationType: ContentSecurityPolicyViolationType;
frameAncestor?: AffectedFrame;
sourceCodeLocation?: SourceCodeLocation;
violatingNodeId?: DOM.BackendNodeId;
}
export const enum SharedArrayBufferIssueType {
TransferIssue = 'TransferIssue',
CreationIssue = 'CreationIssue',
}
/**
* Details for a issue arising from an SAB being instantiated in, or
* transferred to a context that is not cross-origin isolated.
*/
export interface SharedArrayBufferIssueDetails {
sourceCodeLocation: SourceCodeLocation;
isWarning: boolean;
type: SharedArrayBufferIssueType;
}
export interface LowTextContrastIssueDetails {
violatingNodeId: DOM.BackendNodeId;
violatingNodeSelector: string;
contrastRatio: number;
thresholdAA: number;
thresholdAAA: number;
fontSize: string;
fontWeight: string;
}
/**
* Details for a CORS related issue, e.g. a warning or error related to
* CORS RFC1918 enforcement.
*/
export interface CorsIssueDetails {
corsErrorStatus: Network.CorsErrorStatus;
isWarning: boolean;
request: AffectedRequest;
location?: SourceCodeLocation;
initiatorOrigin?: string;
resourceIPAddressSpace?: Network.IPAddressSpace;
clientSecurityState?: Network.ClientSecurityState;
}
export const enum AttributionReportingIssueType {
PermissionPolicyDisabled = 'PermissionPolicyDisabled',
UntrustworthyReportingOrigin = 'UntrustworthyReportingOrigin',
InsecureContext = 'InsecureContext',
InvalidHeader = 'InvalidHeader',
InvalidRegisterTriggerHeader = 'InvalidRegisterTriggerHeader',
SourceAndTriggerHeaders = 'SourceAndTriggerHeaders',
SourceIgnored = 'SourceIgnored',
TriggerIgnored = 'TriggerIgnored',
OsSourceIgnored = 'OsSourceIgnored',
OsTriggerIgnored = 'OsTriggerIgnored',
InvalidRegisterOsSourceHeader = 'InvalidRegisterOsSourceHeader',
InvalidRegisterOsTriggerHeader = 'InvalidRegisterOsTriggerHeader',
WebAndOsHeaders = 'WebAndOsHeaders',
NoWebOrOsSupport = 'NoWebOrOsSupport',
NavigationRegistrationWithoutTransientUserActivation = 'NavigationRegistrationWithoutTransientUserActivation',
InvalidInfoHeader = 'InvalidInfoHeader',
NoRegisterSourceHeader = 'NoRegisterSourceHeader',
NoRegisterTriggerHeader = 'NoRegisterTriggerHeader',
NoRegisterOsSourceHeader = 'NoRegisterOsSourceHeader',
NoRegisterOsTriggerHeader = 'NoRegisterOsTriggerHeader',
NavigationRegistrationUniqueScopeAlreadySet = 'NavigationRegistrationUniqueScopeAlreadySet',
}
export const enum SharedDictionaryError {
UseErrorCrossOriginNoCorsRequest = 'UseErrorCrossOriginNoCorsRequest',
UseErrorDictionaryLoadFailure = 'UseErrorDictionaryLoadFailure',
UseErrorMatchingDictionaryNotUsed = 'UseErrorMatchingDictionaryNotUsed',
UseErrorUnexpectedContentDictionaryHeader = 'UseErrorUnexpectedContentDictionaryHeader',
WriteErrorCossOriginNoCorsRequest = 'WriteErrorCossOriginNoCorsRequest',
WriteErrorDisallowedBySettings = 'WriteErrorDisallowedBySettings',
WriteErrorExpiredResponse = 'WriteErrorExpiredResponse',
WriteErrorFeatureDisabled = 'WriteErrorFeatureDisabled',
WriteErrorInsufficientResources = 'WriteErrorInsufficientResources',
WriteErrorInvalidMatchField = 'WriteErrorInvalidMatchField',
WriteErrorInvalidStructuredHeader = 'WriteErrorInvalidStructuredHeader',
WriteErrorNavigationRequest = 'WriteErrorNavigationRequest',
WriteErrorNoMatchField = 'WriteErrorNoMatchField',
WriteErrorNonListMatchDestField = 'WriteErrorNonListMatchDestField',
WriteErrorNonSecureContext = 'WriteErrorNonSecureContext',
WriteErrorNonStringIdField = 'WriteErrorNonStringIdField',
WriteErrorNonStringInMatchDestList = 'WriteErrorNonStringInMatchDestList',
WriteErrorNonStringMatchField = 'WriteErrorNonStringMatchField',
WriteErrorNonTokenTypeField = 'WriteErrorNonTokenTypeField',
WriteErrorRequestAborted = 'WriteErrorRequestAborted',
WriteErrorShuttingDown = 'WriteErrorShuttingDown',
WriteErrorTooLongIdField = 'WriteErrorTooLongIdField',
WriteErrorUnsupportedType = 'WriteErrorUnsupportedType',
}
export const enum SRIMessageSignatureError {
MissingSignatureHeader = 'MissingSignatureHeader',
MissingSignatureInputHeader = 'MissingSignatureInputHeader',
InvalidSignatureHeader = 'InvalidSignatureHeader',
InvalidSignatureInputHeader = 'InvalidSignatureInputHeader',
SignatureHeaderValueIsNotByteSequence = 'SignatureHeaderValueIsNotByteSequence',
SignatureHeaderValueIsParameterized = 'SignatureHeaderValueIsParameterized',
SignatureHeaderValueIsIncorrectLength = 'SignatureHeaderValueIsIncorrectLength',
SignatureInputHeaderMissingLabel = 'SignatureInputHeaderMissingLabel',
SignatureInputHeaderValueNotInnerList = 'SignatureInputHeaderValueNotInnerList',
SignatureInputHeaderValueMissingComponents = 'SignatureInputHeaderValueMissingComponents',
SignatureInputHeaderInvalidComponentType = 'SignatureInputHeaderInvalidComponentType',
SignatureInputHeaderInvalidComponentName = 'SignatureInputHeaderInvalidComponentName',
SignatureInputHeaderInvalidHeaderComponentParameter = 'SignatureInputHeaderInvalidHeaderComponentParameter',
SignatureInputHeaderInvalidDerivedComponentParameter = 'SignatureInputHeaderInvalidDerivedComponentParameter',
SignatureInputHeaderKeyIdLength = 'SignatureInputHeaderKeyIdLength',
SignatureInputHeaderInvalidParameter = 'SignatureInputHeaderInvalidParameter',
SignatureInputHeaderMissingRequiredParameters = 'SignatureInputHeaderMissingRequiredParameters',
ValidationFailedSignatureExpired = 'ValidationFailedSignatureExpired',
ValidationFailedInvalidLength = 'ValidationFailedInvalidLength',
ValidationFailedSignatureMismatch = 'ValidationFailedSignatureMismatch',
ValidationFailedIntegrityMismatch = 'ValidationFailedIntegrityMismatch',
}
/**
* Details for issues around "Attribution Reporting API" usage.
* Explainer: https://github.com/WICG/attribution-reporting-api
*/
export interface AttributionReportingIssueDetails {
violationType: AttributionReportingIssueType;
request?: AffectedRequest;
violatingNodeId?: DOM.BackendNodeId;
invalidParameter?: string;
}
/**
* Details for issues about documents in Quirks Mode
* or Limited Quirks Mode that affects page layouting.
*/
export interface QuirksModeIssueDetails {
/**
* If false, it means the document's mode is "quirks"
* instead of "limited-quirks".
*/
isLimitedQuirksMode: boolean;
documentNodeId: DOM.BackendNodeId;
url: string;
frameId: Page.FrameId;
loaderId: Network.LoaderId;
}
export interface NavigatorUserAgentIssueDetails {
url: string;
location?: SourceCodeLocation;
}
export interface SharedDictionaryIssueDetails {
sharedDictionaryError: SharedDictionaryError;
request: AffectedRequest;
}
export interface SRIMessageSignatureIssueDetails {
error: SRIMessageSignatureError;
signatureBase: string;
integrityAssertions: string[];
request: AffectedRequest;
}
export const enum GenericIssueErrorType {
FormLabelForNameError = 'FormLabelForNameError',
FormDuplicateIdForInputError = 'FormDuplicateIdForInputError',
FormInputWithNoLabelError = 'FormInputWithNoLabelError',
FormAutocompleteAttributeEmptyError = 'FormAutocompleteAttributeEmptyError',
FormEmptyIdAndNameAttributesForInputError = 'FormEmptyIdAndNameAttributesForInputError',
FormAriaLabelledByToNonExistingId = 'FormAriaLabelledByToNonExistingId',
FormInputAssignedAutocompleteValueToIdOrNameAttributeError = 'FormInputAssignedAutocompleteValueToIdOrNameAttributeError',
FormLabelHasNeitherForNorNestedInput = 'FormLabelHasNeitherForNorNestedInput',
FormLabelForMatchesNonExistingIdError = 'FormLabelForMatchesNonExistingIdError',
FormInputHasWrongButWellIntendedAutocompleteValueError = 'FormInputHasWrongButWellIntendedAutocompleteValueError',
ResponseWasBlockedByORB = 'ResponseWasBlockedByORB',
}
/**
* Depending on the concrete errorType, different properties are set.
*/
export interface GenericIssueDetails {
/**
* Issues with the same errorType are aggregated in the frontend.
*/
errorType: GenericIssueErrorType;
frameId?: Page.FrameId;
violatingNodeId?: DOM.BackendNodeId;
violatingNodeAttribute?: string;
request?: AffectedRequest;
}
/**
* This issue tracks information needed to print a deprecation message.
* https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md
*/
export interface DeprecationIssueDetails {
affectedFrame?: AffectedFrame;
sourceCodeLocation: SourceCodeLocation;
/**
* One of the deprecation names from third_party/blink/renderer/core/frame/deprecation/deprecation.json5
*/
type: string;
}
/**
* This issue warns about sites in the redirect chain of a finished navigation
* that may be flagged as trackers and have their state cleared if they don't
* receive a user interaction. Note that in this context 'site' means eTLD+1.
* For example, if the URL `https://example.test:80/bounce` was in the
* redirect chain, the site reported would be `example.test`.
*/
export interface BounceTrackingIssueDetails {
trackingSites: string[];
}
/**
* This issue warns about third-party sites that are accessing cookies on the
* current page, and have been permitted due to having a global metadata grant.
* Note that in this context 'site' means eTLD+1. For example, if the URL
* `https://example.test:80/web_page` was accessing cookies, the site reported
* would be `example.test`.
*/
export interface CookieDeprecationMetadataIssueDetails {
allowedSites: string[];
optOutPercentage: number;
isOptOutTopLevel: boolean;
operation: CookieOperation;
}
export const enum ClientHintIssueReason {
MetaTagAllowListInvalidOrigin = 'MetaTagAllowListInvalidOrigin',
MetaTagModifiedHTML = 'MetaTagModifiedHTML',
}
export interface FederatedAuthRequestIssueDetails {
federatedAuthRequestIssueReason: FederatedAuthRequestIssueReason;
}
/**
* Represents the failure reason when a federated authentication reason fails.
* Should be updated alongside RequestIdTokenStatus in
* third_party/blink/public/mojom/devtools/inspector_issue.mojom to include
* all cases except for success.
*/
export const enum FederatedAuthRequestIssueReason {
ShouldEmbargo = 'ShouldEmbargo',
TooManyRequests = 'TooManyRequests',
WellKnownHttpNotFound = 'WellKnownHttpNotFound',
WellKnownNoResponse = 'WellKnownNoResponse',
WellKnownInvalidResponse = 'WellKnownInvalidResponse',
WellKnownListEmpty = 'WellKnownListEmpty',
WellKnownInvalidContentType = 'WellKnownInvalidContentType',
ConfigNotInWellKnown = 'ConfigNotInWellKnown',
WellKnownTooBig = 'WellKnownTooBig',
ConfigHttpNotFound = 'ConfigHttpNotFound',
ConfigNoResponse = 'ConfigNoResponse',
ConfigInvalidResponse = 'ConfigInvalidResponse',
ConfigInvalidContentType = 'ConfigInvalidContentType',
ClientMetadataHttpNotFound = 'ClientMetadataHttpNotFound',
ClientMetadataNoResponse = 'ClientMetadataNoResponse',
ClientMetadataInvalidResponse = 'ClientMetadataInvalidResponse',
ClientMetadataInvalidContentType = 'ClientMetadataInvalidContentType',
IdpNotPotentiallyTrustworthy = 'IdpNotPotentiallyTrustworthy',
DisabledInSettings = 'DisabledInSettings',
DisabledInFlags = 'DisabledInFlags',
ErrorFetchingSignin = 'ErrorFetchingSignin',
InvalidSigninResponse = 'InvalidSigninResponse',
AccountsHttpNotFound = 'AccountsHttpNotFound',
AccountsNoResponse = 'AccountsNoResponse',
AccountsInvalidResponse = 'AccountsInvalidResponse',
AccountsListEmpty = 'AccountsListEmpty',
AccountsInvalidContentType = 'AccountsInvalidContentType',
IdTokenHttpNotFound = 'IdTokenHttpNotFound',
IdTokenNoResponse = 'IdTokenNoResponse',
IdTokenInvalidResponse = 'IdTokenInvalidResponse',
IdTokenIdpErrorResponse = 'IdTokenIdpErrorResponse',
IdTokenCrossSiteIdpErrorResponse = 'IdTokenCrossSiteIdpErrorResponse',
IdTokenInvalidRequest = 'IdTokenInvalidRequest',
IdTokenInvalidContentType = 'IdTokenInvalidContentType',
ErrorIdToken = 'ErrorIdToken',
Canceled = 'Canceled',
RpPageNotVisible = 'RpPageNotVisible',
SilentMediationFailure = 'SilentMediationFailure',
ThirdPartyCookiesBlocked = 'ThirdPartyCookiesBlocked',
NotSignedInWithIdp = 'NotSignedInWithIdp',
MissingTransientUserActivation = 'MissingTransientUserActivation',
ReplacedByActiveMode = 'ReplacedByActiveMode',
InvalidFieldsSpecified = 'InvalidFieldsSpecified',
RelyingPartyOriginIsOpaque = 'RelyingPartyOriginIsOpaque',
TypeNotMatching = 'TypeNotMatching',
UiDismissedNoEmbargo = 'UiDismissedNoEmbargo',
CorsError = 'CorsError',
SuppressedBySegmentationPlatform = 'SuppressedBySegmentationPlatform',
}
export interface FederatedAuthUserInfoRequestIssueDetails {
federatedAuthUserInfoRequestIssueReason: FederatedAuthUserInfoRequestIssueReason;
}
/**
* Represents the failure reason when a getUserInfo() call fails.
* Should be updated alongside FederatedAuthUserInfoRequestResult in
* third_party/blink/public/mojom/devtools/inspector_issue.mojom.
*/
export const enum FederatedAuthUserInfoRequestIssueReason {
NotSameOrigin = 'NotSameOrigin',
NotIframe = 'NotIframe',
NotPotentiallyTrustworthy = 'NotPotentiallyTrustworthy',
NoAPIPermission = 'NoApiPermission',
NotSignedInWithIdp = 'NotSignedInWithIdp',
NoAccountSharingPermission = 'NoAccountSharingPermission',
InvalidConfigOrWellKnown = 'InvalidConfigOrWellKnown',
InvalidAccountsResponse = 'InvalidAccountsResponse',
NoReturningUserFromFetchedAccounts = 'NoReturningUserFromFetchedAccounts',
}
/**
* This issue tracks client hints related issues. It's used to deprecate old
* features, encourage the use of new ones, and provide general guidance.
*/
export interface ClientHintIssueDetails {
sourceCodeLocation: SourceCodeLocation;
clientHintIssueReason: ClientHintIssueReason;
}
export interface FailedRequestInfo {
/**
* The URL that failed to load.
*/
url: string;
/**
* The failure message for the failed request.
*/
failureMessage: string;
requestId?: Network.RequestId;
}
export const enum PartitioningBlobURLInfo {
BlockedCrossPartitionFetching = 'BlockedCrossPartitionFetching',
EnforceNoopenerForNavigation = 'EnforceNoopenerForNavigation',
}
export interface PartitioningBlobURLIssueDetails {
/**
* The BlobURL that failed to load.
*/
url: string;
/**
* Additional information about the Partitioning Blob URL issue.
*/
partitioningBlobURLInfo: PartitioningBlobURLInfo;
}
export const enum SelectElementAccessibilityIssueReason {
DisallowedSelectChild = 'DisallowedSelectChild',
DisallowedOptGroupChild = 'DisallowedOptGroupChild',
NonPhrasingContentOptionChild = 'NonPhrasingContentOptionChild',
InteractiveContentOptionChild = 'InteractiveContentOptionChild',
InteractiveContentLegendChild = 'InteractiveContentLegendChild',
}
/**
* This issue warns about errors in the select element content model.
*/
export interface SelectElementAccessibilityIssueDetails {
nodeId: DOM.BackendNodeId;
selectElementAccessibilityIssueReason: SelectElementAccessibilityIssueReason;
hasDisallowedAttributes: boolean;
}
export const enum StyleSheetLoadingIssueReason {
LateImportRule = 'LateImportRule',
RequestFailed = 'RequestFailed',
}
/**
* This issue warns when a referenced stylesheet couldn't be loaded.
*/
export interface StylesheetLoadingIssueDetails {
/**
* Source code position that referenced the failing stylesheet.
*/
sourceCodeLocation: SourceCodeLocation;
/**
* Reason why the stylesheet couldn't be loaded.
*/
styleSheetLoadingIssueReason: StyleSheetLoadingIssueReason;
/**
* Contains additional info when the failure was due to a request.
*/
failedRequestInfo?: FailedRequestInfo;
}
export const enum PropertyRuleIssueReason {
InvalidSyntax = 'InvalidSyntax',
InvalidInitialValue = 'InvalidInitialValue',
InvalidInherits = 'InvalidInherits',
InvalidName = 'InvalidName',
}
/**
* This issue warns about errors in property rules that lead to property
* registrations being ignored.
*/
export interface PropertyRuleIssueDetails {
/**
* Source code position of the property rule.
*/
sourceCodeLocation: SourceCodeLocation;
/**
* Reason why the property rule was discarded.
*/
propertyRuleIssueReason: PropertyRuleIssueReason;
/**
* The value of the property rule property that failed to parse
*/
propertyValue?: string;
}
export const enum UserReidentificationIssueType {
BlockedFrameNavigation = 'BlockedFrameNavigation',
BlockedSubresource = 'BlockedSubresource',
}
/**
* This issue warns about uses of APIs that may be considered misuse to
* re-identify users.
*/
export interface UserReidentificationIssueDetails {
type: UserReidentificationIssueType;
/**
* Applies to BlockedFrameNavigation and BlockedSubresource issue types.
*/
request?: AffectedRequest;
}
/**
* A unique identifier for the type of issue. Each type may use one of the
* optional fields in InspectorIssueDetails to convey more specific
* information about the kind of issue.
*/
export const enum InspectorIssueCode {
CookieIssue = 'CookieIssue',
MixedContentIssue = 'MixedContentIssue',
BlockedByResponseIssue = 'BlockedByResponseIssue',
HeavyAdIssue = 'HeavyAdIssue',
ContentSecurityPolicyIssue = 'ContentSecurityPolicyIssue',
SharedArrayBufferIssue = 'SharedArrayBufferIssue',
LowTextContrastIssue = 'LowTextContrastIssue',
CorsIssue = 'CorsIssue',
AttributionReportingIssue = 'AttributionReportingIssue',
QuirksModeIssue = 'QuirksModeIssue',
PartitioningBlobURLIssue = 'PartitioningBlobURLIssue',
NavigatorUserAgentIssue = 'NavigatorUserAgentIssue',
GenericIssue = 'GenericIssue',
DeprecationIssue = 'DeprecationIssue',
ClientHintIssue = 'ClientHintIssue',
FederatedAuthRequestIssue = 'FederatedAuthRequestIssue',
BounceTrackingIssue = 'BounceTrackingIssue',
CookieDeprecationMetadataIssue = 'CookieDeprecationMetadataIssue',
StylesheetLoadingIssue = 'StylesheetLoadingIssue',
FederatedAuthUserInfoRequestIssue = 'FederatedAuthUserInfoRequestIssue',
PropertyRuleIssue = 'PropertyRuleIssue',
SharedDictionaryIssue = 'SharedDictionaryIssue',
SelectElementAccessibilityIssue = 'SelectElementAccessibilityIssue',
SRIMessageSignatureIssue = 'SRIMessageSignatureIssue',
UserReidentificationIssue = 'UserReidentificationIssue',
}
/**
* This struct holds a list of optional fields with additional information
* specific to the kind of issue. When adding a new issue code, please also
* add a new optional field to this type.
*/
export interface InspectorIssueDetails {
cookieIssueDetails?: CookieIssueDetails;
mixedContentIssueDetails?: MixedContentIssueDetails;
blockedByResponseIssueDetails?: BlockedByResponseIssueDetails;
heavyAdIssueDetails?: HeavyAdIssueDetails;
contentSecurityPolicyIssueDetails?: ContentSecurityPolicyIssueDetails;
sharedArrayBufferIssueDetails?: SharedArrayBufferIssueDetails;
lowTextContrastIssueDetails?: LowTextContrastIssueDetails;
corsIssueDetails?: CorsIssueDetails;
attributionReportingIssueDetails?: AttributionReportingIssueDetails;
quirksModeIssueDetails?: QuirksModeIssueDetails;
partitioningBlobURLIssueDetails?: PartitioningBlobURLIssueDetails;
navigatorUserAgentIssueDetails?: NavigatorUserAgentIssueDetails;
genericIssueDetails?: GenericIssueDetails;
deprecationIssueDetails?: DeprecationIssueDetails;
clientHintIssueDetails?: ClientHintIssueDetails;
federatedAuthRequestIssueDetails?: FederatedAuthRequestIssueDetails;
bounceTrackingIssueDetails?: BounceTrackingIssueDetails;
cookieDeprecationMetadataIssueDetails?: CookieDeprecationMetadataIssueDetails;
stylesheetLoadingIssueDetails?: StylesheetLoadingIssueDetails;
propertyRuleIssueDetails?: PropertyRuleIssueDetails;
federatedAuthUserInfoRequestIssueDetails?: FederatedAuthUserInfoRequestIssueDetails;
sharedDictionaryIssueDetails?: SharedDictionaryIssueDetails;
selectElementAccessibilityIssueDetails?: SelectElementAccessibilityIssueDetails;
sriMessageSignatureIssueDetails?: SRIMessageSignatureIssueDetails;
userReidentificationIssueDetails?: UserReidentificationIssueDetails;
}
/**
* A unique id for a DevTools inspector issue. Allows other entities (e.g.
* exceptions, CDP message, console messages, etc.) to reference an issue.
*/
export type IssueId = OpaqueIdentifier<string, 'Protocol.Audits.IssueId'>;
/**
* An inspector issue reported from the back-end.
*/
export interface InspectorIssue {
code: InspectorIssueCode;
details: InspectorIssueDetails;
/**
* A unique id for this issue. May be omitted if no other entity (e.g.
* exception, CDP message, etc.) is referencing this issue.
*/
issueId?: IssueId;
}
export const enum GetEncodedResponseRequestEncoding {
Webp = 'webp',
Jpeg = 'jpeg',
Png = 'png',
}
export interface GetEncodedResponseRequest {
/**
* Identifier of the network request to get content for.
*/
requestId: Network.RequestId;
/**
* The encoding to use.
*/
encoding: GetEncodedResponseRequestEncoding;
/**
* The quality of the encoding (0-1). (defaults to 1)
*/
quality?: number;
/**
* Whether to only return the size information (defaults to false).
*/
sizeOnly?: boolean;
}
export interface GetEncodedResponseResponse extends ProtocolResponseWithError {
/**
* The encoded body as a base64 string. Omitted if sizeOnly is true.
*/
body?: binary;
/**
* Size before re-encoding.
*/
originalSize: integer;
/**
* Size after re-encoding.
*/
encodedSize: integer;
}
export interface CheckContrastRequest {
/**
* Whether to report WCAG AAA level issues. Default is false.
*/
reportAAA?: boolean;
}
export interface CheckFormsIssuesResponse extends ProtocolResponseWithError {
formIssues: GenericIssueDetails[];
}
export interface IssueAddedEvent {
issue: InspectorIssue;
}
}
/**
* Defines commands and events for browser extensions.
*/
export namespace Extensions {
/**
* Storage areas.
*/
export const enum StorageArea {
Session = 'session',
Local = 'local',
Sync = 'sync',
Managed = 'managed',
}
export interface LoadUnpackedRequest {
/**
* Absolute file path.
*/
path: string;
}
export interface LoadUnpackedResponse extends ProtocolResponseWithError {
/**
* Extension id.
*/
id: string;
}
export interface UninstallRequest {
/**
* Extension id.
*/
id: string;
}
export interface GetStorageItemsRequest {
/**
* ID of extension.
*/
id: string;
/**
* StorageArea to retrieve data from.
*/
storageArea: StorageArea;
/**
* Keys to retrieve.
*/
keys?: string[];
}
export interface GetStorageItemsResponse extends ProtocolResponseWithError {
data: any;
}
export interface RemoveStorageItemsRequest {
/**
* ID of extension.
*/
id: string;
/**
* StorageArea to remove data from.
*/
storageArea: StorageArea;
/**
* Keys to remove.
*/
keys: string[];
}
export interface ClearStorageItemsRequest {
/**
* ID of extension.
*/
id: string;
/**
* StorageArea to remo