chrome-devtools-frontend 1.0.1646714 → 1.0.1650035
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/extension-api/ExtensionAPI.d.ts +26 -0
- package/front_end/core/common/Debouncer.ts +9 -1
- package/front_end/core/sdk/CSSMatchedStyles.ts +3 -1
- package/front_end/core/sdk/CSSMetadata.ts +20 -1
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +65 -0
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +15 -0
- package/front_end/generated/Deprecation.ts +8 -0
- package/front_end/generated/InspectorBackendCommands.ts +3 -2
- package/front_end/generated/SupportedCSSProperties.js +533 -19
- package/front_end/generated/protocol.ts +26 -4
- package/front_end/models/ai_assistance/agents/AiAgent.ts +8 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +7 -0
- package/front_end/models/extensions/ExtensionAPI.ts +47 -21
- package/front_end/models/javascript_metadata/NativeFunctions.js +7 -3
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +39 -1
- package/front_end/panels/ai_assistance/ai_assistance.ts +1 -0
- package/front_end/panels/ai_assistance/components/AIv2MarkdownRenderer.ts +228 -0
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +39 -2
- package/front_end/panels/application/ApplicationPanelSidebar.ts +4 -0
- package/front_end/panels/application/CookieItemsView.ts +55 -6
- package/front_end/panels/application/DOMStorageItemsView.ts +43 -8
- package/front_end/panels/application/KeyValueStorageItemsView.ts +17 -9
- package/front_end/panels/console/ConsolePinPane.ts +1 -0
- package/front_end/panels/elements/ElementsTreeElement.ts +97 -57
- package/front_end/panels/elements/StylePropertyTreeElement.ts +73 -16
- package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +9 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +22 -8
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +309 -182
- package/front_end/panels/layer_viewer/paintProfiler.css +27 -23
- package/front_end/panels/layers/LayerPaintProfilerView.ts +86 -29
- package/front_end/panels/profiler/HeapSnapshotView.ts +6 -0
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +210 -356
- package/front_end/panels/sources/watchExpressionsSidebarPane.css +7 -0
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +5 -5
- package/front_end/panels/timeline/components/NetworkTrackWidget.ts +122 -0
- package/front_end/panels/timeline/components/components.ts +2 -0
- package/front_end/panels/timeline/components/networkTrackWidget.css +31 -0
- package/front_end/panels/timeline/timeline.ts +2 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/buttons/FloatingButton.ts +17 -2
- package/front_end/ui/components/buttons/floatingButton.css +2 -2
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +1 -1
- package/front_end/ui/legacy/TextPrompt.ts +24 -18
- package/front_end/ui/legacy/Treeoutline.ts +31 -4
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +50 -24
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +10 -10
- package/front_end/ui/visual_logging/KnownContextValues.ts +5 -0
- package/package.json +1 -1
|
@@ -178,6 +178,20 @@ export namespace Chrome {
|
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
export interface Request {
|
|
181
|
+
/**
|
|
182
|
+
* Retrieves the content of the request.
|
|
183
|
+
*
|
|
184
|
+
* If a `callback` is provided, it is invoked with the content and encoding
|
|
185
|
+
* and the method returns `void`. If no `callback` is provided, the method
|
|
186
|
+
* returns a `Promise`.
|
|
187
|
+
*
|
|
188
|
+
* @param callback Optional callback to be invoked with the content and
|
|
189
|
+
* encoding.
|
|
190
|
+
* @returns A Promise that resolves to an object containing the content and
|
|
191
|
+
* encoding if no callback is provided, otherwise void. Rejects with an
|
|
192
|
+
* error object on failure.
|
|
193
|
+
*/
|
|
194
|
+
getContent(): Promise<{content: string, encoding: string}>;
|
|
181
195
|
getContent(callback: (content: string, encoding: string) => unknown): void;
|
|
182
196
|
}
|
|
183
197
|
|
|
@@ -185,6 +199,18 @@ export namespace Chrome {
|
|
|
185
199
|
onNavigated: EventSink<(url: string) => unknown>;
|
|
186
200
|
onRequestFinished: EventSink<(request: Request) => unknown>;
|
|
187
201
|
|
|
202
|
+
/**
|
|
203
|
+
* Retrieves the HAR log that contains all network requests.
|
|
204
|
+
*
|
|
205
|
+
* If a `callback` is provided, it is invoked with the HAR log object
|
|
206
|
+
* and the method returns `void`. If no `callback` is provided, the method
|
|
207
|
+
* returns a `Promise`.
|
|
208
|
+
*
|
|
209
|
+
* @param callback Optional callback to be invoked with the HAR log.
|
|
210
|
+
* @returns A Promise that resolves to the HAR log if no callback is
|
|
211
|
+
* provided, otherwise void. Rejects with an error object on failure.
|
|
212
|
+
*/
|
|
213
|
+
getHAR(): Promise<object>;
|
|
188
214
|
getHAR(callback: (harLog: object) => unknown): void;
|
|
189
215
|
}
|
|
190
216
|
|
|
@@ -5,12 +5,20 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Debounce utility function, ensures that the function passed in is only called once the function stops being called and the delay has expired.
|
|
7
7
|
*/
|
|
8
|
-
export const debounce = function(
|
|
8
|
+
export const debounce = function(
|
|
9
|
+
func: (...args: any[]) => void,
|
|
10
|
+
delay: number,
|
|
11
|
+
): ((...args: any[]) => void)&{
|
|
12
|
+
cancel: () => void,
|
|
13
|
+
} {
|
|
9
14
|
let timer: ReturnType<typeof setTimeout>;
|
|
10
15
|
const debounced = (...args: any[]): void => {
|
|
11
16
|
clearTimeout(timer);
|
|
12
17
|
timer = setTimeout(() => func(...args), testDebounceOverride ? 0 : delay);
|
|
13
18
|
};
|
|
19
|
+
debounced.cancel = () => {
|
|
20
|
+
clearTimeout(timer);
|
|
21
|
+
};
|
|
14
22
|
return debounced;
|
|
15
23
|
};
|
|
16
24
|
|
|
@@ -39,7 +39,8 @@ import {
|
|
|
39
39
|
ShadowMatcher,
|
|
40
40
|
StringMatcher,
|
|
41
41
|
URLMatcher,
|
|
42
|
-
VariableMatcher
|
|
42
|
+
VariableMatcher,
|
|
43
|
+
VariableNameMatcher
|
|
43
44
|
} from './CSSPropertyParserMatchers.js';
|
|
44
45
|
import {
|
|
45
46
|
CSSAtRule,
|
|
@@ -979,6 +980,7 @@ export class CSSMatchedStyles {
|
|
|
979
980
|
propertyMatchers(style: CSSStyleDeclaration, computedStyles: Map<string, string>|null): Array<Matcher<Match>> {
|
|
980
981
|
return [
|
|
981
982
|
new VariableMatcher(this, style),
|
|
983
|
+
new VariableNameMatcher(this, style),
|
|
982
984
|
new ColorMatcher(() => computedStyles?.get('color') ?? null),
|
|
983
985
|
new ColorMixMatcher(),
|
|
984
986
|
new ContrastColorMatcher(),
|
|
@@ -55,6 +55,11 @@ export class CSSMetadata {
|
|
|
55
55
|
for (let i = 0; i < properties.length; ++i) {
|
|
56
56
|
const property = properties[i];
|
|
57
57
|
const propertyName = property.name;
|
|
58
|
+
if ('is_descriptor' in property && 'is_property' in property) {
|
|
59
|
+
if (property.is_descriptor && !property.is_property) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
58
63
|
if (!CSS.supports(propertyName, 'initial')) {
|
|
59
64
|
continue;
|
|
60
65
|
}
|
|
@@ -99,9 +104,18 @@ export class CSSMetadata {
|
|
|
99
104
|
propertyValueSets.set(propertyName, extraValues);
|
|
100
105
|
}
|
|
101
106
|
}
|
|
102
|
-
// finally add common keywords to value sets and convert property #values
|
|
107
|
+
// finally add keywords from alias property, common keywords to value sets and convert property #values
|
|
103
108
|
// into arrays since callers expect arrays
|
|
104
109
|
for (const [propertyName, values] of propertyValueSets) {
|
|
110
|
+
const aliasFor = this.#aliasesFor.get(propertyName);
|
|
111
|
+
if (aliasFor) {
|
|
112
|
+
const aliasForValues = propertyValueSets.get(aliasFor);
|
|
113
|
+
if (aliasForValues) {
|
|
114
|
+
for (const val of aliasForValues) {
|
|
115
|
+
values.add(val);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
105
119
|
for (const commonKeyword of CommonKeywords) {
|
|
106
120
|
if (!values.has(commonKeyword) && CSS.supports(propertyName, commonKeyword)) {
|
|
107
121
|
values.add(commonKeyword);
|
|
@@ -1409,6 +1423,7 @@ const extraPropertyValues = new Map<string, Set<string>>([
|
|
|
1409
1423
|
'superellipse(infinity)',
|
|
1410
1424
|
]),
|
|
1411
1425
|
],
|
|
1426
|
+
['outline-style', new Set(['auto'])],
|
|
1412
1427
|
]);
|
|
1413
1428
|
|
|
1414
1429
|
// Weight of CSS properties based on their usage from https://www.chromestatus.com/metrics/css/popularity
|
|
@@ -1674,4 +1689,8 @@ export interface CSSPropertyDefinition {
|
|
|
1674
1689
|
longhands: string[]|null;
|
|
1675
1690
|
inherited: boolean|null;
|
|
1676
1691
|
svg: boolean|null;
|
|
1692
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1693
|
+
is_descriptor?: boolean;
|
|
1694
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1695
|
+
is_property?: boolean;
|
|
1677
1696
|
}
|
|
@@ -130,6 +130,71 @@ export class VariableMatcher extends matcherBase(VariableMatch) {
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
export class VariableNameMatch implements Match {
|
|
134
|
+
constructor(
|
|
135
|
+
readonly node: CodeMirror.SyntaxNode,
|
|
136
|
+
readonly text: string,
|
|
137
|
+
readonly matchedStyles: CSSMatchedStyles,
|
|
138
|
+
readonly style: CSSStyleDeclaration,
|
|
139
|
+
) {
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
resolveVariable(): CSSVariableValue|null {
|
|
143
|
+
return this.matchedStyles.computeCSSVariable(this.style, this.text);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// clang-format off
|
|
148
|
+
export class VariableNameMatcher extends matcherBase(VariableNameMatch) {
|
|
149
|
+
// clang-format on
|
|
150
|
+
constructor(readonly matchedStyles: CSSMatchedStyles, readonly style: CSSStyleDeclaration) {
|
|
151
|
+
super();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
override accepts(): boolean {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
override matches(node: CodeMirror.SyntaxNode, matching: BottomUpTreeMatching): VariableNameMatch|null {
|
|
159
|
+
if (node.name !== 'VariableName' && node.name !== 'FeatureName' && node.name !== 'KeywordQuery') {
|
|
160
|
+
// TODO(b/484268589): The result shouldn't be KeywordQuery, but currently
|
|
161
|
+
// sometimes Lezer parses it that way. Fix this when Lezer is fixed.
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
const rawText = matching.ast.text(node);
|
|
165
|
+
if (!rawText.startsWith('--')) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
let cur: CodeMirror.SyntaxNode|null = node.parent;
|
|
170
|
+
let foundStyleCall: CodeMirror.SyntaxNode|null = null;
|
|
171
|
+
while (cur) {
|
|
172
|
+
if (cur.name === 'CallExpression') {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
if (cur.name === 'CallQuery') {
|
|
176
|
+
const callee = cur.getChild('QueryCallee');
|
|
177
|
+
if (callee && matching.ast.text(callee) === 'style') {
|
|
178
|
+
foundStyleCall = cur;
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
cur = cur.parent;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (!foundStyleCall) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// When parsing style(--foo > 10px), Lezer thinks it is a KeywordQuery and
|
|
191
|
+
// includes the > in the token with --foo. We need to strip it.
|
|
192
|
+
const text = node.name === 'KeywordQuery' ? rawText.split(/\s|[>!=<:]/)[0] : rawText;
|
|
193
|
+
|
|
194
|
+
return new VariableNameMatch(node, text, this.matchedStyles, this.style);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
133
198
|
export class AttributeMatch extends BaseVariableMatch {
|
|
134
199
|
constructor(
|
|
135
200
|
text: string,
|
|
@@ -1382,6 +1382,12 @@ export abstract class HeapSnapshot {
|
|
|
1382
1382
|
};
|
|
1383
1383
|
|
|
1384
1384
|
switch (filterName) {
|
|
1385
|
+
case 'objectsRetainedByContexts':
|
|
1386
|
+
traverse((_node: HeapSnapshotNode, edge: HeapSnapshotEdge) => {
|
|
1387
|
+
return !this.isContextObject(edge.node());
|
|
1388
|
+
});
|
|
1389
|
+
markUnreachableNodes();
|
|
1390
|
+
return (node: HeapSnapshotNode) => !getBit(node);
|
|
1385
1391
|
case 'objectsRetainedByDetachedDomNodes':
|
|
1386
1392
|
// Traverse the graph, avoiding detached nodes.
|
|
1387
1393
|
traverse((_node: HeapSnapshotNode, edge: HeapSnapshotEdge) => {
|
|
@@ -1581,6 +1587,10 @@ export abstract class HeapSnapshot {
|
|
|
1581
1587
|
return true;
|
|
1582
1588
|
}
|
|
1583
1589
|
|
|
1590
|
+
isContextObject(_node: HeapSnapshotNode): boolean {
|
|
1591
|
+
return false;
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1584
1594
|
calculateShallowSizes(): void {
|
|
1585
1595
|
}
|
|
1586
1596
|
|
|
@@ -3684,6 +3694,11 @@ export class JSHeapSnapshot extends HeapSnapshot {
|
|
|
3684
3694
|
return node.isUserRoot() || node.isDocumentDOMTreesRoot();
|
|
3685
3695
|
}
|
|
3686
3696
|
|
|
3697
|
+
override isContextObject(node: HeapSnapshotNode): boolean {
|
|
3698
|
+
const name = node.rawName();
|
|
3699
|
+
return name === 'system / Context' || name.startsWith('system / Context / ');
|
|
3700
|
+
}
|
|
3701
|
+
|
|
3687
3702
|
override userObjectsMapAndFlag(): {map: Uint8Array, flag: number}|null {
|
|
3688
3703
|
return {map: this.flags, flag: this.nodeFlags.pageObject};
|
|
3689
3704
|
}
|
|
@@ -54,6 +54,10 @@ export const UIStrings = {
|
|
|
54
54
|
* @description Warning displayed to developers when a data: URL is assigned to SVGUseElement to let them know that the support is deprecated.
|
|
55
55
|
*/
|
|
56
56
|
DataUrlInSvgUse: "Support for data: URLs in SVGUseElement is deprecated and it will be removed in the future.",
|
|
57
|
+
/**
|
|
58
|
+
* @description Warning displayed to developers when an unknown protocol string is used in a call to navigator.credentials.get() or create() with the 'digital' option.
|
|
59
|
+
*/
|
|
60
|
+
DigitalCredentialsUnknownProtocol: "An unknown Digital Credentials protocol was requested in navigator.credentials.get() or create(). In a future release, unrecognized protocols will be blocked.",
|
|
57
61
|
/**
|
|
58
62
|
* @description Warning displayed to developers when document.createEvent() is called with 'KeyboardEvents', which is a non-standard event interface that will be removed.
|
|
59
63
|
*/
|
|
@@ -333,6 +337,10 @@ export const DEPRECATIONS_METADATA: Partial<Record<string, DeprecationDescriptor
|
|
|
333
337
|
"chromeStatusFeature": 5128825141198848,
|
|
334
338
|
"milestone": 119
|
|
335
339
|
},
|
|
340
|
+
"DigitalCredentialsUnknownProtocol": {
|
|
341
|
+
"chromeStatusFeature": 6492906882990080,
|
|
342
|
+
"milestone": 160
|
|
343
|
+
},
|
|
336
344
|
"DocumentCreateEventKeyboardEvents": {
|
|
337
345
|
"chromeStatusFeature": 5095987863486464,
|
|
338
346
|
"milestone": 151
|
|
@@ -291,7 +291,8 @@ inspectorBackend.registerType("CSS.InheritedAnimatedStyleEntry", [{"name": "anim
|
|
|
291
291
|
inspectorBackend.registerType("CSS.InheritedPseudoElementMatches", [{"name": "pseudoElements", "type": "array", "optional": false, "description": "Matches of pseudo styles from the pseudos of an ancestor node.", "typeRef": "CSS.PseudoElementMatches"}]);
|
|
292
292
|
inspectorBackend.registerType("CSS.RuleMatch", [{"name": "rule", "type": "object", "optional": false, "description": "CSS rule in the match.", "typeRef": "CSS.CSSRule"}, {"name": "matchingSelectors", "type": "array", "optional": false, "description": "Matching selector indices in the rule's selectorList selectors (0-based).", "typeRef": "integer"}]);
|
|
293
293
|
inspectorBackend.registerType("CSS.Value", [{"name": "text", "type": "string", "optional": false, "description": "Value text.", "typeRef": null}, {"name": "range", "type": "object", "optional": true, "description": "Value range in the underlying resource (if available).", "typeRef": "CSS.SourceRange"}, {"name": "specificity", "type": "object", "optional": true, "description": "Specificity of the selector.", "typeRef": "CSS.Specificity"}]);
|
|
294
|
-
inspectorBackend.registerType("CSS.
|
|
294
|
+
inspectorBackend.registerType("CSS.SpecificityComponent", [{"name": "text", "type": "string", "optional": false, "description": "The simple selector text that contributes to specificity.", "typeRef": null}, {"name": "a", "type": "number", "optional": false, "description": "The a component contribution.", "typeRef": null}, {"name": "b", "type": "number", "optional": false, "description": "The b component contribution.", "typeRef": null}, {"name": "c", "type": "number", "optional": false, "description": "The c component contribution.", "typeRef": null}]);
|
|
295
|
+
inspectorBackend.registerType("CSS.Specificity", [{"name": "a", "type": "number", "optional": false, "description": "The a component, which represents the number of ID selectors.", "typeRef": null}, {"name": "b", "type": "number", "optional": false, "description": "The b component, which represents the number of class selectors, attributes selectors, and pseudo-classes.", "typeRef": null}, {"name": "c", "type": "number", "optional": false, "description": "The c component, which represents the number of type selectors and pseudo-elements.", "typeRef": null}, {"name": "components", "type": "array", "optional": true, "description": "Per-simple-selector contributions used to explain this specificity.", "typeRef": "CSS.SpecificityComponent"}]);
|
|
295
296
|
inspectorBackend.registerType("CSS.SelectorList", [{"name": "selectors", "type": "array", "optional": false, "description": "Selectors in the list.", "typeRef": "CSS.Value"}, {"name": "text", "type": "string", "optional": false, "description": "Rule selector text.", "typeRef": null}]);
|
|
296
297
|
inspectorBackend.registerType("CSS.CSSStyleSheetHeader", [{"name": "styleSheetId", "type": "string", "optional": false, "description": "The stylesheet identifier.", "typeRef": "DOM.StyleSheetId"}, {"name": "frameId", "type": "string", "optional": false, "description": "Owner frame identifier.", "typeRef": "Page.FrameId"}, {"name": "sourceURL", "type": "string", "optional": false, "description": "Stylesheet resource URL. Empty if this is a constructed stylesheet created using new CSSStyleSheet() (but non-empty if this is a constructed stylesheet imported as a CSS module script).", "typeRef": null}, {"name": "sourceMapURL", "type": "string", "optional": true, "description": "URL of source map associated with the stylesheet (if any).", "typeRef": null}, {"name": "origin", "type": "string", "optional": false, "description": "Stylesheet origin.", "typeRef": "CSS.StyleSheetOrigin"}, {"name": "title", "type": "string", "optional": false, "description": "Stylesheet title.", "typeRef": null}, {"name": "ownerNode", "type": "number", "optional": true, "description": "The backend id for the owner node of the stylesheet.", "typeRef": "DOM.BackendNodeId"}, {"name": "disabled", "type": "boolean", "optional": false, "description": "Denotes whether the stylesheet is disabled.", "typeRef": null}, {"name": "hasSourceURL", "type": "boolean", "optional": true, "description": "Whether the sourceURL field value comes from the sourceURL comment.", "typeRef": null}, {"name": "isInline", "type": "boolean", "optional": false, "description": "Whether this stylesheet is created for STYLE tag by parser. This flag is not set for document.written STYLE tags.", "typeRef": null}, {"name": "isMutable", "type": "boolean", "optional": false, "description": "Whether this stylesheet is mutable. Inline stylesheets become mutable after they have been modified via CSSOM API. `<link>` element's stylesheets become mutable only if DevTools modifies them. Constructed stylesheets (new CSSStyleSheet()) are mutable immediately after creation.", "typeRef": null}, {"name": "isConstructed", "type": "boolean", "optional": false, "description": "True if this stylesheet is created through new CSSStyleSheet() or imported as a CSS module script.", "typeRef": null}, {"name": "startLine", "type": "number", "optional": false, "description": "Line offset of the stylesheet within the resource (zero based).", "typeRef": null}, {"name": "startColumn", "type": "number", "optional": false, "description": "Column offset of the stylesheet within the resource (zero based).", "typeRef": null}, {"name": "length", "type": "number", "optional": false, "description": "Size of the content (in characters).", "typeRef": null}, {"name": "endLine", "type": "number", "optional": false, "description": "Line offset of the end of the stylesheet within the resource (zero based).", "typeRef": null}, {"name": "endColumn", "type": "number", "optional": false, "description": "Column offset of the end of the stylesheet within the resource (zero based).", "typeRef": null}, {"name": "loadingFailed", "type": "boolean", "optional": true, "description": "If the style sheet was loaded from a network resource, this indicates when the resource failed to load", "typeRef": null}]);
|
|
297
298
|
inspectorBackend.registerType("CSS.CSSRule", [{"name": "styleSheetId", "type": "string", "optional": true, "description": "The css style sheet identifier (absent for user agent stylesheet and user-specified stylesheet rules) this rule came from.", "typeRef": "DOM.StyleSheetId"}, {"name": "selectorList", "type": "object", "optional": false, "description": "Rule selector data.", "typeRef": "CSS.SelectorList"}, {"name": "nestingSelectors", "type": "array", "optional": true, "description": "Array of selectors from ancestor style rules, sorted by distance from the current rule.", "typeRef": "string"}, {"name": "origin", "type": "string", "optional": false, "description": "Parent stylesheet's origin.", "typeRef": "CSS.StyleSheetOrigin"}, {"name": "style", "type": "object", "optional": false, "description": "Associated style declaration.", "typeRef": "CSS.CSSStyle"}, {"name": "originTreeScopeNodeId", "type": "number", "optional": true, "description": "The BackendNodeId of the DOM node that constitutes the origin tree scope of this rule.", "typeRef": "DOM.BackendNodeId"}, {"name": "media", "type": "array", "optional": true, "description": "Media list array (for rules involving media queries). The array enumerates media queries starting with the innermost one, going outwards.", "typeRef": "CSS.CSSMedia"}, {"name": "containerQueries", "type": "array", "optional": true, "description": "Container query list array (for rules involving container queries). The array enumerates container queries starting with the innermost one, going outwards.", "typeRef": "CSS.CSSContainerQuery"}, {"name": "supports", "type": "array", "optional": true, "description": "@supports CSS at-rule array. The array enumerates @supports at-rules starting with the innermost one, going outwards.", "typeRef": "CSS.CSSSupports"}, {"name": "layers", "type": "array", "optional": true, "description": "Cascade layer array. Contains the layer hierarchy that this rule belongs to starting with the innermost layer and going outwards.", "typeRef": "CSS.CSSLayer"}, {"name": "scopes", "type": "array", "optional": true, "description": "@scope CSS at-rule array. The array enumerates @scope at-rules starting with the innermost one, going outwards.", "typeRef": "CSS.CSSScope"}, {"name": "ruleTypes", "type": "array", "optional": true, "description": "The array keeps the types of ancestor CSSRules from the innermost going outwards.", "typeRef": "CSS.CSSRuleType"}, {"name": "startingStyles", "type": "array", "optional": true, "description": "@starting-style CSS at-rule array. The array enumerates @starting-style at-rules starting with the innermost one, going outwards.", "typeRef": "CSS.CSSStartingStyle"}, {"name": "navigations", "type": "array", "optional": true, "description": "@navigation CSS at-rule array. The array enumerates @navigation at-rules starting with the innermost one, going outwards.", "typeRef": "CSS.CSSNavigation"}]);
|
|
@@ -798,7 +799,7 @@ inspectorBackend.registerEnum("Network.ServiceWorkerRouterSource", {Network: "ne
|
|
|
798
799
|
inspectorBackend.registerEnum("Network.InitiatorType", {Parser: "parser", Script: "script", Preload: "preload", SignedExchange: "SignedExchange", Preflight: "preflight", FedCM: "FedCM", Other: "other"});
|
|
799
800
|
inspectorBackend.registerEnum("Network.SetCookieBlockedReason", {SecureOnly: "SecureOnly", SameSiteStrict: "SameSiteStrict", SameSiteLax: "SameSiteLax", SameSiteUnspecifiedTreatedAsLax: "SameSiteUnspecifiedTreatedAsLax", SameSiteNoneInsecure: "SameSiteNoneInsecure", UserPreferences: "UserPreferences", ThirdPartyPhaseout: "ThirdPartyPhaseout", ThirdPartyBlockedInFirstPartySet: "ThirdPartyBlockedInFirstPartySet", SyntaxError: "SyntaxError", SchemeNotSupported: "SchemeNotSupported", OverwriteSecure: "OverwriteSecure", InvalidDomain: "InvalidDomain", InvalidPrefix: "InvalidPrefix", UnknownError: "UnknownError", SchemefulSameSiteStrict: "SchemefulSameSiteStrict", SchemefulSameSiteLax: "SchemefulSameSiteLax", SchemefulSameSiteUnspecifiedTreatedAsLax: "SchemefulSameSiteUnspecifiedTreatedAsLax", NameValuePairExceedsMaxSize: "NameValuePairExceedsMaxSize", DisallowedCharacter: "DisallowedCharacter", NoCookieContent: "NoCookieContent"});
|
|
800
801
|
inspectorBackend.registerEnum("Network.CookieBlockedReason", {SecureOnly: "SecureOnly", NotOnPath: "NotOnPath", DomainMismatch: "DomainMismatch", SameSiteStrict: "SameSiteStrict", SameSiteLax: "SameSiteLax", SameSiteUnspecifiedTreatedAsLax: "SameSiteUnspecifiedTreatedAsLax", SameSiteNoneInsecure: "SameSiteNoneInsecure", UserPreferences: "UserPreferences", ThirdPartyPhaseout: "ThirdPartyPhaseout", ThirdPartyBlockedInFirstPartySet: "ThirdPartyBlockedInFirstPartySet", UnknownError: "UnknownError", SchemefulSameSiteStrict: "SchemefulSameSiteStrict", SchemefulSameSiteLax: "SchemefulSameSiteLax", SchemefulSameSiteUnspecifiedTreatedAsLax: "SchemefulSameSiteUnspecifiedTreatedAsLax", NameValuePairExceedsMaxSize: "NameValuePairExceedsMaxSize", PortMismatch: "PortMismatch", SchemeMismatch: "SchemeMismatch", AnonymousContext: "AnonymousContext"});
|
|
801
|
-
inspectorBackend.registerEnum("Network.CookieExemptionReason", {None: "None", UserSetting: "UserSetting",
|
|
802
|
+
inspectorBackend.registerEnum("Network.CookieExemptionReason", {None: "None", UserSetting: "UserSetting", EnterprisePolicy: "EnterprisePolicy", StorageAccess: "StorageAccess", TopLevelStorageAccess: "TopLevelStorageAccess", Scheme: "Scheme", SameSiteNoneCookiesInSandbox: "SameSiteNoneCookiesInSandbox"});
|
|
802
803
|
inspectorBackend.registerEnum("Network.AuthChallengeSource", {Server: "Server", Proxy: "Proxy"});
|
|
803
804
|
inspectorBackend.registerEnum("Network.AuthChallengeResponseResponse", {Default: "Default", CancelAuth: "CancelAuth", ProvideCredentials: "ProvideCredentials"});
|
|
804
805
|
inspectorBackend.registerEnum("Network.InterceptionStage", {Request: "Request", HeadersReceived: "HeadersReceived"});
|