chrome-devtools-frontend 1.0.1582745 → 1.0.1585538
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/front_end/core/host/InspectorFrontendHostAPI.ts +1 -0
- package/front_end/core/host/InspectorFrontendHostStub.ts +2 -0
- package/front_end/core/root/Runtime.ts +12 -11
- package/front_end/core/sdk/CSSMatchedStyles.ts +3 -0
- package/front_end/core/sdk/CSSMetadata.ts +3 -0
- package/front_end/core/sdk/NetworkManager.ts +63 -115
- package/front_end/entrypoint_template.html +1 -5
- package/front_end/entrypoints/main/MainImpl.ts +1 -0
- package/front_end/generated/Deprecation.ts +21 -0
- package/front_end/generated/InspectorBackendCommands.ts +5 -3
- package/front_end/generated/SupportedCSSProperties.js +6 -2
- package/front_end/generated/protocol-mapping.d.ts +2 -1
- package/front_end/generated/protocol-proxy-api.d.ts +2 -1
- package/front_end/generated/protocol.ts +14 -0
- package/front_end/models/ai_assistance/AiConversation.ts +34 -2
- package/front_end/models/ai_assistance/BuiltInAi.ts +1 -2
- package/front_end/models/ai_assistance/agents/AiAgent.ts +3 -10
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +1 -1
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +17 -9
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +0 -24
- package/front_end/models/ai_code_generation/AiCodeGeneration.ts +5 -0
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +16 -8
- package/front_end/models/computed_style/ComputedStyleModel.ts +20 -15
- package/front_end/models/greendev/Prototypes.ts +1 -5
- package/front_end/models/issues_manager/CorsIssue.ts +2 -9
- package/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +2 -2
- package/front_end/models/javascript_metadata/NativeFunctions.js +20 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +28 -39
- package/front_end/panels/ai_assistance/components/ChatInput.ts +73 -95
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +4 -2
- package/front_end/panels/ai_assistance/components/ChatView.ts +0 -2
- package/front_end/panels/autofill/AutofillView.ts +4 -8
- package/front_end/panels/common/AiCodeGenerationTeaser.ts +37 -8
- package/front_end/panels/console/ConsoleView.ts +1 -2
- package/front_end/panels/console/ConsoleViewMessage.ts +18 -11
- package/front_end/panels/elements/ComputedStyleWidget.ts +80 -48
- package/front_end/panels/elements/ElementStatePaneWidget.ts +1 -1
- package/front_end/panels/elements/ElementsPanel.ts +18 -5
- package/front_end/panels/elements/ElementsTreeElement.ts +459 -435
- package/front_end/panels/elements/EventListenersWidget.ts +2 -4
- package/front_end/panels/elements/NodeStackTraceWidget.ts +1 -3
- package/front_end/panels/elements/PropertiesWidget.ts +1 -2
- package/front_end/panels/elements/StylePropertyTreeElement.ts +18 -2
- package/front_end/panels/elements/computedStyleWidget.css +25 -0
- package/front_end/panels/issues/AffectedResourcesView.ts +1 -2
- package/front_end/panels/network/NetworkDataGridNode.ts +0 -8
- package/front_end/panels/network/NetworkLogView.ts +64 -105
- package/front_end/panels/network/RequestConditionsDrawer.ts +168 -233
- package/front_end/panels/network/network-meta.ts +4 -27
- package/front_end/panels/settings/SettingsScreen.ts +12 -4
- package/front_end/panels/settings/WorkspaceSettingsTab.ts +1 -1
- package/front_end/panels/snippets/SnippetsQuickOpen.ts +6 -9
- package/front_end/panels/sources/CallStackSidebarPane.ts +6 -8
- package/front_end/panels/sources/DebuggerPlugin.ts +2 -1
- package/front_end/panels/sources/GoToLineQuickOpen.ts +0 -4
- package/front_end/panels/sources/OpenFileQuickOpen.ts +0 -4
- package/front_end/panels/sources/OutlineQuickOpen.ts +0 -4
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +3 -1
- package/front_end/panels/sources/sources-meta.ts +9 -6
- package/front_end/panels/timeline/TimelineFlameChartView.ts +0 -12
- package/front_end/panels/timeline/TimelinePanel.ts +35 -15
- package/front_end/panels/timeline/components/Sidebar.ts +21 -0
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +1 -20
- package/front_end/panels/timeline/components/insights/InsightRenderer.ts +0 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/encoding.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/encoding.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/encoding.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +8 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/encoding.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/encoding.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/encoding.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +4 -3
- package/front_end/third_party/puppeteer/package/src/revisions.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/util/encoding.ts +5 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/linkifier/LinkifierImpl.ts +3 -0
- package/front_end/ui/components/linkifier/LinkifierUtils.ts +3 -0
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +8 -0
- package/front_end/ui/components/text_editor/AiCodeGenerationParser.ts +29 -7
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +42 -18
- package/front_end/ui/components/text_editor/config.ts +6 -0
- package/front_end/ui/legacy/InspectorView.ts +41 -15
- package/front_end/ui/legacy/Toolbar.ts +12 -4
- package/front_end/ui/legacy/UIUtils.ts +56 -7
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +4 -3
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +2 -1
- package/front_end/ui/legacy/components/quick_open/HelpQuickOpen.ts +8 -2
- package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +8 -8
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +12 -9
- package/front_end/ui/legacy/components/utils/Linkifier.ts +116 -87
- package/front_end/ui/legacy/legacy.ts +0 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +4 -0
- package/mcp/HostBindings.ts +3 -0
- package/package.json +1 -1
- package/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +0 -10
- package/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +0 -10
- package/front_end/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +0 -10
- package/front_end/panels/elements/computedStyleSidebarPane.css +0 -18
- package/front_end/ui/legacy/Floaty.ts +0 -438
- package/front_end/ui/legacy/floaty.css +0 -77
|
@@ -175,6 +175,7 @@ export class ExperimentsSupport {
|
|
|
175
175
|
title: string,
|
|
176
176
|
aboutFlag: string,
|
|
177
177
|
isEnabled: boolean,
|
|
178
|
+
requiresChromeRestart: boolean,
|
|
178
179
|
docLink?: Platform.DevToolsPath.UrlString,
|
|
179
180
|
readonly feedbackLink?: Platform.DevToolsPath.UrlString,
|
|
180
181
|
}): HostExperiment {
|
|
@@ -377,6 +378,7 @@ export class HostExperiment {
|
|
|
377
378
|
// It is NOT the the name of the corresponding Chromium `base::Feature`.
|
|
378
379
|
aboutFlag: string;
|
|
379
380
|
#isEnabled: boolean;
|
|
381
|
+
readonly requiresChromeRestart: boolean;
|
|
380
382
|
docLink?: Platform.DevToolsPath.UrlString;
|
|
381
383
|
readonly feedbackLink?: Platform.DevToolsPath.UrlString;
|
|
382
384
|
|
|
@@ -386,6 +388,7 @@ export class HostExperiment {
|
|
|
386
388
|
experiments: ExperimentsSupport,
|
|
387
389
|
aboutFlag: string,
|
|
388
390
|
isEnabled: boolean,
|
|
391
|
+
requiresChromeRestart: boolean,
|
|
389
392
|
docLink?: Platform.DevToolsPath.UrlString,
|
|
390
393
|
feedbackLink?: Platform.DevToolsPath.UrlString,
|
|
391
394
|
}) {
|
|
@@ -394,6 +397,7 @@ export class HostExperiment {
|
|
|
394
397
|
this.#experiments = params.experiments;
|
|
395
398
|
this.aboutFlag = params.aboutFlag;
|
|
396
399
|
this.#isEnabled = params.isEnabled;
|
|
400
|
+
this.requiresChromeRestart = params.requiresChromeRestart;
|
|
397
401
|
this.docLink = params.docLink;
|
|
398
402
|
this.feedbackLink = params.feedbackLink;
|
|
399
403
|
}
|
|
@@ -486,6 +490,13 @@ export interface HostConfigAiCodeGeneration {
|
|
|
486
490
|
userTier: string;
|
|
487
491
|
}
|
|
488
492
|
|
|
493
|
+
export interface HostConfigAiCodeCompletionStyles {
|
|
494
|
+
modelId: string;
|
|
495
|
+
temperature: number;
|
|
496
|
+
enabled: boolean;
|
|
497
|
+
userTier: string;
|
|
498
|
+
}
|
|
499
|
+
|
|
489
500
|
export interface HostConfigDeepLinksViaExtensibilityApi {
|
|
490
501
|
enabled: boolean;
|
|
491
502
|
}
|
|
@@ -577,15 +588,6 @@ interface DeviceBoundSessionsDebugging {
|
|
|
577
588
|
enabled: boolean;
|
|
578
589
|
}
|
|
579
590
|
|
|
580
|
-
interface AiPromptApi {
|
|
581
|
-
enabled: boolean;
|
|
582
|
-
allowWithoutGpu: boolean;
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
interface DevToolsIndividualRequestThrottling {
|
|
586
|
-
enabled: boolean;
|
|
587
|
-
}
|
|
588
|
-
|
|
589
591
|
export interface DevToolsEnableDurableMessages {
|
|
590
592
|
enabled: boolean;
|
|
591
593
|
}
|
|
@@ -629,9 +631,9 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
|
|
|
629
631
|
devToolsAiAssistanceV2: HostConfigAiAssistanceV2,
|
|
630
632
|
devToolsAiCodeCompletion: HostConfigAiCodeCompletion,
|
|
631
633
|
devToolsAiCodeGeneration: HostConfigAiCodeGeneration,
|
|
634
|
+
devToolsAiCodeCompletionStyles: HostConfigAiCodeCompletionStyles,
|
|
632
635
|
devToolsVeLogging: HostConfigVeLogging,
|
|
633
636
|
devToolsWellKnown: HostConfigWellKnown,
|
|
634
|
-
devToolsIndividualRequestThrottling: DevToolsIndividualRequestThrottling,
|
|
635
637
|
/**
|
|
636
638
|
* OffTheRecord here indicates that the user's profile is either incognito,
|
|
637
639
|
* or guest mode, rather than a "normal" profile.
|
|
@@ -648,7 +650,6 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
|
|
|
648
650
|
devToolsLiveEdit: LiveEdit,
|
|
649
651
|
devToolsFlexibleLayout: DevToolsFlexibleLayout,
|
|
650
652
|
deviceBoundSessionsDebugging: DeviceBoundSessionsDebugging,
|
|
651
|
-
devToolsAiPromptApi: AiPromptApi,
|
|
652
653
|
devToolsEnableDurableMessages: DevToolsEnableDurableMessages,
|
|
653
654
|
devToolsAiAssistanceContextSelectionAgent: HostConfigAiAssistanceContextSelectionAgent,
|
|
654
655
|
devToolsConsoleInsightsTeasers: ConsoleInsightsTeasers,
|
|
@@ -1332,6 +1332,9 @@ class DOMInheritanceCascade {
|
|
|
1332
1332
|
case CSSWideKeyword.REVERT_LAYER:
|
|
1333
1333
|
return this.#findPropertyInPreviousStyle(property, isPreviousLayer) ??
|
|
1334
1334
|
this.resolveGlobalKeyword(property, CSSWideKeyword.REVERT);
|
|
1335
|
+
case CSSWideKeyword.REVERT_RULE:
|
|
1336
|
+
return this.#findPropertyInPreviousStyle(property, () => true) ??
|
|
1337
|
+
this.resolveGlobalKeyword(property, CSSWideKeyword.UNSET);
|
|
1335
1338
|
case CSSWideKeyword.UNSET:
|
|
1336
1339
|
return this.#findPropertyInParentCascadeIfInherited(property) ??
|
|
1337
1340
|
this.#findCustomPropertyRegistration(property.name);
|
|
@@ -368,17 +368,20 @@ export const enum CSSWideKeyword {
|
|
|
368
368
|
INITIAL = 'initial',
|
|
369
369
|
REVERT = 'revert',
|
|
370
370
|
REVERT_LAYER = 'revert-layer',
|
|
371
|
+
REVERT_RULE = 'revert-rule',
|
|
371
372
|
UNSET = 'unset',
|
|
372
373
|
}
|
|
373
374
|
/**
|
|
374
375
|
* Spec: https://drafts.csswg.org/css-cascade/#defaulting-keywords
|
|
375
376
|
* https://drafts.csswg.org/css-cascade-5/#revert-layer
|
|
377
|
+
* https://drafts.csswg.org/css-cascade-6/#revert-rule
|
|
376
378
|
**/
|
|
377
379
|
export const CSSWideKeywords: CSSWideKeyword[] = [
|
|
378
380
|
CSSWideKeyword.INHERIT,
|
|
379
381
|
CSSWideKeyword.INITIAL,
|
|
380
382
|
CSSWideKeyword.REVERT,
|
|
381
383
|
CSSWideKeyword.REVERT_LAYER,
|
|
384
|
+
CSSWideKeyword.REVERT_RULE,
|
|
382
385
|
CSSWideKeyword.UNSET,
|
|
383
386
|
];
|
|
384
387
|
|
|
@@ -1687,19 +1687,8 @@ export class RequestCondition extends Common.ObjectWrapper.ObjectWrapper<Request
|
|
|
1687
1687
|
(this.#pattern.upgradedPattern?.constructorString ?? this.#pattern.wildcardURL);
|
|
1688
1688
|
}
|
|
1689
1689
|
|
|
1690
|
-
set pattern(pattern: RequestURLPattern
|
|
1691
|
-
|
|
1692
|
-
// TODO(pfaffe) Remove once the feature flag is no longer required
|
|
1693
|
-
if (Root.Runtime.hostConfig.devToolsIndividualRequestThrottling?.enabled) {
|
|
1694
|
-
throw new Error('Should not use wildcard urls');
|
|
1695
|
-
}
|
|
1696
|
-
this.#pattern = {
|
|
1697
|
-
wildcardURL: pattern,
|
|
1698
|
-
upgradedPattern: RequestURLPattern.upgradeFromWildcard(pattern) ?? undefined
|
|
1699
|
-
};
|
|
1700
|
-
} else {
|
|
1701
|
-
this.#pattern = pattern;
|
|
1702
|
-
}
|
|
1690
|
+
set pattern(pattern: RequestURLPattern) {
|
|
1691
|
+
this.#pattern = pattern;
|
|
1703
1692
|
this.dispatchEventToListeners(RequestCondition.Events.REQUEST_CONDITION_CHANGED);
|
|
1704
1693
|
}
|
|
1705
1694
|
|
|
@@ -1792,10 +1781,7 @@ export class RequestConditions extends Common.ObjectWrapper.ObjectWrapper<Reques
|
|
|
1792
1781
|
}
|
|
1793
1782
|
|
|
1794
1783
|
findCondition(pattern: string): RequestCondition|undefined {
|
|
1795
|
-
|
|
1796
|
-
return this.#conditions.find(condition => condition.constructorString === pattern);
|
|
1797
|
-
}
|
|
1798
|
-
return this.#conditions.find(condition => condition.wildcardURL === pattern);
|
|
1784
|
+
return this.#conditions.find(condition => condition.constructorString === pattern);
|
|
1799
1785
|
}
|
|
1800
1786
|
|
|
1801
1787
|
has(url: string): boolean {
|
|
@@ -1862,84 +1848,72 @@ export class RequestConditions extends Common.ObjectWrapper.ObjectWrapper<Reques
|
|
|
1862
1848
|
function isNonBlockingCondition(condition: ThrottlingConditions): condition is Conditions {
|
|
1863
1849
|
return !('block' in condition);
|
|
1864
1850
|
}
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
matchedNetworkConditions.push({ruleIds, urlPattern, conditions});
|
|
1881
|
-
}
|
|
1851
|
+
const urlPatterns: Protocol.Network.BlockPattern[] = [];
|
|
1852
|
+
// We store all this info out-of-band to prevent races with changing conditions while the promise is still pending
|
|
1853
|
+
const matchedNetworkConditions: Array<{conditions: Conditions, ruleIds?: Set<string>, urlPattern?: string}> = [];
|
|
1854
|
+
if (this.conditionsEnabled) {
|
|
1855
|
+
for (const condition of this.#conditions) {
|
|
1856
|
+
const urlPattern = condition.constructorString;
|
|
1857
|
+
const conditions = condition.conditions;
|
|
1858
|
+
if (!condition.enabled || !urlPattern || conditions === NoThrottlingConditions) {
|
|
1859
|
+
continue;
|
|
1860
|
+
}
|
|
1861
|
+
const block = !isNonBlockingCondition(conditions);
|
|
1862
|
+
urlPatterns.push({urlPattern, block});
|
|
1863
|
+
if (!block) {
|
|
1864
|
+
const {ruleIds} = condition;
|
|
1865
|
+
matchedNetworkConditions.push({ruleIds, urlPattern, conditions});
|
|
1882
1866
|
}
|
|
1883
1867
|
}
|
|
1868
|
+
}
|
|
1884
1869
|
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
}
|
|
1888
|
-
|
|
1889
|
-
const promises: Array<Promise<unknown>> = [];
|
|
1890
|
-
|
|
1891
|
-
for (const agent of agents) {
|
|
1892
|
-
promises.push(agent.invoke_setBlockedURLs({urlPatterns}));
|
|
1893
|
-
promises.push(agent
|
|
1894
|
-
.invoke_emulateNetworkConditionsByRule({
|
|
1895
|
-
offline,
|
|
1896
|
-
matchedNetworkConditions: matchedNetworkConditions.map(
|
|
1897
|
-
({urlPattern, conditions}) => ({
|
|
1898
|
-
urlPattern: urlPattern ?? '',
|
|
1899
|
-
latency: conditions.latency,
|
|
1900
|
-
downloadThroughput: conditions.download < 0 ? 0 : conditions.download,
|
|
1901
|
-
uploadThroughput: conditions.upload < 0 ? 0 : conditions.upload,
|
|
1902
|
-
packetLoss: (conditions.packetLoss ?? 0) < 0 ? 0 : conditions.packetLoss,
|
|
1903
|
-
packetQueueLength: conditions.packetQueueLength,
|
|
1904
|
-
packetReordering: conditions.packetReordering,
|
|
1905
|
-
connectionType: NetworkManager.connectionType(conditions),
|
|
1906
|
-
}))
|
|
1907
|
-
})
|
|
1908
|
-
.then(response => {
|
|
1909
|
-
if (!response.getError()) {
|
|
1910
|
-
for (let i = 0; i < response.ruleIds.length; ++i) {
|
|
1911
|
-
const ruleId = response.ruleIds[i];
|
|
1912
|
-
const {ruleIds, conditions, urlPattern} = matchedNetworkConditions[i];
|
|
1913
|
-
if (ruleIds) {
|
|
1914
|
-
this.#requestConditionsById.set(ruleId, {urlPattern, conditions});
|
|
1915
|
-
matchedNetworkConditions[i].ruleIds?.add(ruleId);
|
|
1916
|
-
}
|
|
1917
|
-
}
|
|
1918
|
-
}
|
|
1919
|
-
}));
|
|
1920
|
-
promises.push(agent.invoke_overrideNetworkState({
|
|
1921
|
-
offline,
|
|
1922
|
-
latency: globalConditions?.latency ?? 0,
|
|
1923
|
-
downloadThroughput: globalConditions?.download ?? -1,
|
|
1924
|
-
uploadThroughput: globalConditions?.upload ?? -1,
|
|
1925
|
-
connectionType: globalConditions ? NetworkManager.connectionType(globalConditions) :
|
|
1926
|
-
Protocol.Network.ConnectionType.None,
|
|
1927
|
-
}));
|
|
1928
|
-
}
|
|
1929
|
-
|
|
1930
|
-
this.#conditionsAppliedForTestPromise = this.#conditionsAppliedForTestPromise.then(() => Promise.all(promises));
|
|
1931
|
-
return urlPatterns.length > 0;
|
|
1870
|
+
if (globalConditions) {
|
|
1871
|
+
matchedNetworkConditions.push({conditions: globalConditions});
|
|
1932
1872
|
}
|
|
1933
1873
|
|
|
1934
|
-
const
|
|
1935
|
-
this.#conditions.filter(condition => condition.enabled && condition.wildcardURL)
|
|
1936
|
-
.map(condition => condition.wildcardURL as string) :
|
|
1937
|
-
[];
|
|
1874
|
+
const promises: Array<Promise<unknown>> = [];
|
|
1938
1875
|
|
|
1939
1876
|
for (const agent of agents) {
|
|
1940
|
-
|
|
1877
|
+
promises.push(agent.invoke_setBlockedURLs({urlPatterns}));
|
|
1878
|
+
promises.push(agent
|
|
1879
|
+
.invoke_emulateNetworkConditionsByRule({
|
|
1880
|
+
offline,
|
|
1881
|
+
matchedNetworkConditions: matchedNetworkConditions.map(
|
|
1882
|
+
({urlPattern, conditions}) => ({
|
|
1883
|
+
urlPattern: urlPattern ?? '',
|
|
1884
|
+
latency: conditions.latency,
|
|
1885
|
+
downloadThroughput: conditions.download < 0 ? 0 : conditions.download,
|
|
1886
|
+
uploadThroughput: conditions.upload < 0 ? 0 : conditions.upload,
|
|
1887
|
+
packetLoss: (conditions.packetLoss ?? 0) < 0 ? 0 : conditions.packetLoss,
|
|
1888
|
+
packetQueueLength: conditions.packetQueueLength,
|
|
1889
|
+
packetReordering: conditions.packetReordering,
|
|
1890
|
+
connectionType: NetworkManager.connectionType(conditions),
|
|
1891
|
+
}))
|
|
1892
|
+
})
|
|
1893
|
+
.then(response => {
|
|
1894
|
+
if (!response.getError()) {
|
|
1895
|
+
for (let i = 0; i < response.ruleIds.length; ++i) {
|
|
1896
|
+
const ruleId = response.ruleIds[i];
|
|
1897
|
+
const {ruleIds, conditions, urlPattern} = matchedNetworkConditions[i];
|
|
1898
|
+
if (ruleIds) {
|
|
1899
|
+
this.#requestConditionsById.set(ruleId, {urlPattern, conditions});
|
|
1900
|
+
matchedNetworkConditions[i].ruleIds?.add(ruleId);
|
|
1901
|
+
}
|
|
1902
|
+
}
|
|
1903
|
+
}
|
|
1904
|
+
}));
|
|
1905
|
+
promises.push(agent.invoke_overrideNetworkState({
|
|
1906
|
+
offline,
|
|
1907
|
+
latency: globalConditions?.latency ?? 0,
|
|
1908
|
+
downloadThroughput: globalConditions?.download ?? -1,
|
|
1909
|
+
uploadThroughput: globalConditions?.upload ?? -1,
|
|
1910
|
+
connectionType: globalConditions ? NetworkManager.connectionType(globalConditions) :
|
|
1911
|
+
Protocol.Network.ConnectionType.None,
|
|
1912
|
+
}));
|
|
1941
1913
|
}
|
|
1942
|
-
|
|
1914
|
+
|
|
1915
|
+
this.#conditionsAppliedForTestPromise = this.#conditionsAppliedForTestPromise.then(() => Promise.all(promises));
|
|
1916
|
+
return urlPatterns.length > 0;
|
|
1943
1917
|
}
|
|
1944
1918
|
|
|
1945
1919
|
conditionsAppliedForTest(): Promise<unknown> {
|
|
@@ -2082,9 +2056,6 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
|
|
|
2082
2056
|
}
|
|
2083
2057
|
this.#networkAgents.add(networkAgent);
|
|
2084
2058
|
this.#fetchAgents.add(fetchAgent);
|
|
2085
|
-
if (this.isThrottling() && !Root.Runtime.hostConfig.devToolsIndividualRequestThrottling?.enabled) {
|
|
2086
|
-
this.updateNetworkConditions(networkAgent);
|
|
2087
|
-
}
|
|
2088
2059
|
}
|
|
2089
2060
|
|
|
2090
2061
|
modelRemoved(networkManager: NetworkManager): void {
|
|
@@ -2110,14 +2081,8 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
|
|
|
2110
2081
|
|
|
2111
2082
|
setNetworkConditions(conditions: Conditions): void {
|
|
2112
2083
|
this.#networkConditions = conditions;
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
this.isOffline(), this.isThrottling() ? this.#networkConditions : null, ...this.#networkAgents);
|
|
2116
|
-
} else {
|
|
2117
|
-
for (const agent of this.#networkAgents) {
|
|
2118
|
-
this.updateNetworkConditions(agent);
|
|
2119
|
-
}
|
|
2120
|
-
}
|
|
2084
|
+
this.#requestConditions.applyConditions(
|
|
2085
|
+
this.isOffline(), this.isThrottling() ? this.#networkConditions : null, ...this.#networkAgents);
|
|
2121
2086
|
this.dispatchEventToListeners(MultitargetNetworkManager.Events.CONDITIONS_CHANGED);
|
|
2122
2087
|
}
|
|
2123
2088
|
|
|
@@ -2224,23 +2189,6 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
|
|
|
2224
2189
|
return this.#isBlocking && this.requestConditions.conditionsEnabled;
|
|
2225
2190
|
}
|
|
2226
2191
|
|
|
2227
|
-
/**
|
|
2228
|
-
* @deprecated Kept for layout tests
|
|
2229
|
-
* TODO(pfaffe) remove
|
|
2230
|
-
*/
|
|
2231
|
-
private setBlockingEnabled(enabled: boolean): void {
|
|
2232
|
-
this.requestConditions.conditionsEnabled = enabled;
|
|
2233
|
-
}
|
|
2234
|
-
|
|
2235
|
-
/**
|
|
2236
|
-
* @deprecated Kept for layout tests
|
|
2237
|
-
* TODO(pfaffe) remove
|
|
2238
|
-
*/
|
|
2239
|
-
private setBlockedPatterns(patterns: Array<{url: string, enabled: boolean}>): void {
|
|
2240
|
-
this.requestConditions.clear();
|
|
2241
|
-
this.requestConditions.add(...patterns.map(pattern => RequestCondition.createFromSetting(pattern)));
|
|
2242
|
-
}
|
|
2243
|
-
|
|
2244
2192
|
private updateBlockedPatterns(): void {
|
|
2245
2193
|
this.#isBlocking = this.#requestConditions.applyConditions(
|
|
2246
2194
|
this.isOffline(), this.isThrottling() ? this.#networkConditions : null, ...this.#networkAgents);
|
|
@@ -14,11 +14,7 @@
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
17
|
-
<meta
|
|
18
|
-
http-equiv="Content-Security-Policy"
|
|
19
|
-
content="default-src 'self' devtools: data:; style-src 'self' 'unsafe-inline' devtools:; object-src 'none'; script-src
|
|
20
|
-
'self' https://chrome-devtools-frontend.appspot.com; img-src 'self' data:; frame-src * data:; connect-src data:
|
|
21
|
-
https://chromeuxreport.googleapis.com 'self' devtools:;">
|
|
17
|
+
<meta http-equiv="Content-Security-Policy" content="object-src 'none'; script-src 'self' https://chrome-devtools-frontend.appspot.com">
|
|
22
18
|
<meta name="referrer" content="no-referrer">
|
|
23
19
|
<script type="module" src="./entrypoints/%ENTRYPOINT_NAME%/%ENTRYPOINT_NAME%.js"></script>
|
|
24
20
|
<link href="./application_tokens.css" rel="stylesheet">
|
|
@@ -352,6 +352,7 @@ export class MainImpl {
|
|
|
352
352
|
title: 'Protocol Monitor',
|
|
353
353
|
aboutFlag: 'devtools-protocol-monitor',
|
|
354
354
|
isEnabled: enableProtocolMonitor,
|
|
355
|
+
requiresChromeRestart: false,
|
|
355
356
|
docLink: 'https://developer.chrome.com/blog/new-in-devtools-92/#protocol-monitor' as
|
|
356
357
|
Platform.DevToolsPath.UrlString,
|
|
357
358
|
});
|
|
@@ -94,6 +94,18 @@ export const UIStrings = {
|
|
|
94
94
|
* @description Warning displayed to developers that instead of calling the `Intl.v8BreakIterator` constructor, which is not a standard JavaScript API, use ECMA402 standard API Intl.Segmenter shipped in end of 2020 instead.
|
|
95
95
|
*/
|
|
96
96
|
IntlV8BreakIterator: "`Intl.v8BreakIterator` is deprecated. Please use `Intl.Segmenter` instead.",
|
|
97
|
+
/**
|
|
98
|
+
* @description Warning message for web developers when they call the deprecated LanguageModel.params() method.
|
|
99
|
+
*/
|
|
100
|
+
LanguageModelParams: "LanguageModel.params() is deprecated and now only available in extension contexts. The topK and temperature related fields within its result are also deprecated.",
|
|
101
|
+
/**
|
|
102
|
+
* @description Warning message for web developers when they use the deprecated 'temperature' option in LanguageModel.create() or access the .temperature attribute.
|
|
103
|
+
*/
|
|
104
|
+
LanguageModelTemperature: "The 'temperature' parameter/attribute for LanguageModel is deprecated. It is only functional within extensions and may be removed in the future.",
|
|
105
|
+
/**
|
|
106
|
+
* @description Warning message for web developers when they use the deprecated 'topK' option in LanguageModel.create() or access the .topK attribute.
|
|
107
|
+
*/
|
|
108
|
+
LanguageModelTopK: "The 'topK' parameter/attribute for LanguageModel is deprecated. It is only functional within extensions and may be removed in the future.",
|
|
97
109
|
/**
|
|
98
110
|
* @description This warning occurs when a stylesheet loaded from a local file directive does not end in the file type `.css`.
|
|
99
111
|
*/
|
|
@@ -292,6 +304,15 @@ export const DEPRECATIONS_METADATA: Partial<Record<string, DeprecationDescriptor
|
|
|
292
304
|
"chromeStatusFeature": 5436853517811712,
|
|
293
305
|
"milestone": 92
|
|
294
306
|
},
|
|
307
|
+
"LanguageModelParams": {
|
|
308
|
+
"chromeStatusFeature": 5134603979063296
|
|
309
|
+
},
|
|
310
|
+
"LanguageModelTemperature": {
|
|
311
|
+
"chromeStatusFeature": 5134603979063296
|
|
312
|
+
},
|
|
313
|
+
"LanguageModelTopK": {
|
|
314
|
+
"chromeStatusFeature": 5134603979063296
|
|
315
|
+
},
|
|
295
316
|
"LocalCSSFileExtensionRejected": {
|
|
296
317
|
"milestone": 64
|
|
297
318
|
},
|
|
@@ -70,6 +70,7 @@ inspectorBackend.registerEnum("Audits.CookieExclusionReason", {ExcludeSameSiteUn
|
|
|
70
70
|
inspectorBackend.registerEnum("Audits.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"});
|
|
71
71
|
inspectorBackend.registerEnum("Audits.CookieOperation", {SetCookie: "SetCookie", ReadCookie: "ReadCookie"});
|
|
72
72
|
inspectorBackend.registerEnum("Audits.InsightType", {GitHubResource: "GitHubResource", GracePeriod: "GracePeriod", Heuristics: "Heuristics"});
|
|
73
|
+
inspectorBackend.registerEnum("Audits.PerformanceIssueType", {DocumentCookie: "DocumentCookie"});
|
|
73
74
|
inspectorBackend.registerEnum("Audits.MixedContentResolutionStatus", {MixedContentBlocked: "MixedContentBlocked", MixedContentAutomaticallyUpgraded: "MixedContentAutomaticallyUpgraded", MixedContentWarning: "MixedContentWarning"});
|
|
74
75
|
inspectorBackend.registerEnum("Audits.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"});
|
|
75
76
|
inspectorBackend.registerEnum("Audits.BlockedByResponseReason", {CoepFrameResourceNeedsCoepHeader: "CoepFrameResourceNeedsCoepHeader", CoopSandboxedIFrameCannotNavigateToCoopPage: "CoopSandboxedIFrameCannotNavigateToCoopPage", CorpNotSameOrigin: "CorpNotSameOrigin", CorpNotSameOriginAfterDefaultedToSameOriginByCoep: "CorpNotSameOriginAfterDefaultedToSameOriginByCoep", CorpNotSameOriginAfterDefaultedToSameOriginByDip: "CorpNotSameOriginAfterDefaultedToSameOriginByDip", CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip: "CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip", CorpNotSameSite: "CorpNotSameSite", SRIMessageSignatureMismatch: "SRIMessageSignatureMismatch"});
|
|
@@ -92,7 +93,7 @@ inspectorBackend.registerEnum("Audits.StyleSheetLoadingIssueReason", {LateImport
|
|
|
92
93
|
inspectorBackend.registerEnum("Audits.PropertyRuleIssueReason", {InvalidSyntax: "InvalidSyntax", InvalidInitialValue: "InvalidInitialValue", InvalidInherits: "InvalidInherits", InvalidName: "InvalidName"});
|
|
93
94
|
inspectorBackend.registerEnum("Audits.UserReidentificationIssueType", {BlockedFrameNavigation: "BlockedFrameNavigation", BlockedSubresource: "BlockedSubresource", NoisedCanvasReadback: "NoisedCanvasReadback"});
|
|
94
95
|
inspectorBackend.registerEnum("Audits.PermissionElementIssueType", {InvalidType: "InvalidType", FencedFrameDisallowed: "FencedFrameDisallowed", CspFrameAncestorsMissing: "CspFrameAncestorsMissing", PermissionsPolicyBlocked: "PermissionsPolicyBlocked", PaddingRightUnsupported: "PaddingRightUnsupported", PaddingBottomUnsupported: "PaddingBottomUnsupported", InsetBoxShadowUnsupported: "InsetBoxShadowUnsupported", RequestInProgress: "RequestInProgress", UntrustedEvent: "UntrustedEvent", RegistrationFailed: "RegistrationFailed", TypeNotSupported: "TypeNotSupported", InvalidTypeActivation: "InvalidTypeActivation", SecurityChecksFailed: "SecurityChecksFailed", ActivationDisabled: "ActivationDisabled", GeolocationDeprecated: "GeolocationDeprecated", InvalidDisplayStyle: "InvalidDisplayStyle", NonOpaqueColor: "NonOpaqueColor", LowContrast: "LowContrast", FontSizeTooSmall: "FontSizeTooSmall", FontSizeTooLarge: "FontSizeTooLarge", InvalidSizeValue: "InvalidSizeValue"});
|
|
95
|
-
inspectorBackend.registerEnum("Audits.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", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue"});
|
|
96
|
+
inspectorBackend.registerEnum("Audits.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", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue", PerformanceIssue: "PerformanceIssue"});
|
|
96
97
|
inspectorBackend.registerEvent("Audits.issueAdded", ["issue"]);
|
|
97
98
|
inspectorBackend.registerEnum("Audits.GetEncodedResponseRequestEncoding", {Webp: "webp", Jpeg: "jpeg", Png: "png"});
|
|
98
99
|
inspectorBackend.registerCommand("Audits.getEncodedResponse", [{"name": "requestId", "type": "string", "optional": false, "description": "Identifier of the network request to get content for.", "typeRef": "Network.RequestId"}, {"name": "encoding", "type": "string", "optional": false, "description": "The encoding to use.", "typeRef": "Audits.GetEncodedResponseRequestEncoding"}, {"name": "quality", "type": "number", "optional": true, "description": "The quality of the encoding (0-1). (defaults to 1)", "typeRef": null}, {"name": "sizeOnly", "type": "boolean", "optional": true, "description": "Whether to only return the size information (defaults to false).", "typeRef": null}], ["body", "originalSize", "encodedSize"], "Returns the response body and size if it were re-encoded with the specified settings. Only applies to images.");
|
|
@@ -105,6 +106,7 @@ inspectorBackend.registerType("Audits.AffectedRequest", [{"name": "requestId", "
|
|
|
105
106
|
inspectorBackend.registerType("Audits.AffectedFrame", [{"name": "frameId", "type": "string", "optional": false, "description": "", "typeRef": "Page.FrameId"}]);
|
|
106
107
|
inspectorBackend.registerType("Audits.CookieIssueInsight", [{"name": "type", "type": "string", "optional": false, "description": "", "typeRef": "Audits.InsightType"}, {"name": "tableEntryUrl", "type": "string", "optional": true, "description": "Link to table entry in third-party cookie migration readiness list.", "typeRef": null}]);
|
|
107
108
|
inspectorBackend.registerType("Audits.CookieIssueDetails", [{"name": "cookie", "type": "object", "optional": true, "description": "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.", "typeRef": "Audits.AffectedCookie"}, {"name": "rawCookieLine", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "cookieWarningReasons", "type": "array", "optional": false, "description": "", "typeRef": "Audits.CookieWarningReason"}, {"name": "cookieExclusionReasons", "type": "array", "optional": false, "description": "", "typeRef": "Audits.CookieExclusionReason"}, {"name": "operation", "type": "string", "optional": false, "description": "Optionally identifies the site-for-cookies and the cookie url, which may be used by the front-end as additional context.", "typeRef": "Audits.CookieOperation"}, {"name": "siteForCookies", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "cookieUrl", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "request", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedRequest"}, {"name": "insight", "type": "object", "optional": true, "description": "The recommended solution to the issue.", "typeRef": "Audits.CookieIssueInsight"}]);
|
|
109
|
+
inspectorBackend.registerType("Audits.PerformanceIssueDetails", [{"name": "performanceIssueType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.PerformanceIssueType"}, {"name": "sourceCodeLocation", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SourceCodeLocation"}]);
|
|
108
110
|
inspectorBackend.registerType("Audits.MixedContentIssueDetails", [{"name": "resourceType", "type": "string", "optional": true, "description": "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", "typeRef": "Audits.MixedContentResourceType"}, {"name": "resolutionStatus", "type": "string", "optional": false, "description": "The way the mixed content issue is being resolved.", "typeRef": "Audits.MixedContentResolutionStatus"}, {"name": "insecureURL", "type": "string", "optional": false, "description": "The unsafe http url causing the mixed content issue.", "typeRef": null}, {"name": "mainResourceURL", "type": "string", "optional": false, "description": "The url responsible for the call to an unsafe url.", "typeRef": null}, {"name": "request", "type": "object", "optional": true, "description": "The mixed content request. Does not always exist (e.g. for unsafe form submission urls).", "typeRef": "Audits.AffectedRequest"}, {"name": "frame", "type": "object", "optional": true, "description": "Optional because not every mixed content issue is necessarily linked to a frame.", "typeRef": "Audits.AffectedFrame"}]);
|
|
109
111
|
inspectorBackend.registerType("Audits.BlockedByResponseIssueDetails", [{"name": "request", "type": "object", "optional": false, "description": "", "typeRef": "Audits.AffectedRequest"}, {"name": "parentFrame", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedFrame"}, {"name": "blockedFrame", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedFrame"}, {"name": "reason", "type": "string", "optional": false, "description": "", "typeRef": "Audits.BlockedByResponseReason"}]);
|
|
110
112
|
inspectorBackend.registerType("Audits.HeavyAdIssueDetails", [{"name": "resolution", "type": "string", "optional": false, "description": "The resolution status, either blocking the content or warning.", "typeRef": "Audits.HeavyAdResolutionStatus"}, {"name": "reason", "type": "string", "optional": false, "description": "The reason the ad was blocked, total network or cpu or peak cpu.", "typeRef": "Audits.HeavyAdReason"}, {"name": "frame", "type": "object", "optional": false, "description": "The frame that was blocked.", "typeRef": "Audits.AffectedFrame"}]);
|
|
@@ -134,7 +136,7 @@ inspectorBackend.registerType("Audits.StylesheetLoadingIssueDetails", [{"name":
|
|
|
134
136
|
inspectorBackend.registerType("Audits.PropertyRuleIssueDetails", [{"name": "sourceCodeLocation", "type": "object", "optional": false, "description": "Source code position of the property rule.", "typeRef": "Audits.SourceCodeLocation"}, {"name": "propertyRuleIssueReason", "type": "string", "optional": false, "description": "Reason why the property rule was discarded.", "typeRef": "Audits.PropertyRuleIssueReason"}, {"name": "propertyValue", "type": "string", "optional": true, "description": "The value of the property rule property that failed to parse", "typeRef": null}]);
|
|
135
137
|
inspectorBackend.registerType("Audits.UserReidentificationIssueDetails", [{"name": "type", "type": "string", "optional": false, "description": "", "typeRef": "Audits.UserReidentificationIssueType"}, {"name": "request", "type": "object", "optional": true, "description": "Applies to BlockedFrameNavigation and BlockedSubresource issue types.", "typeRef": "Audits.AffectedRequest"}, {"name": "sourceCodeLocation", "type": "object", "optional": true, "description": "Applies to NoisedCanvasReadback issue type.", "typeRef": "Audits.SourceCodeLocation"}]);
|
|
136
138
|
inspectorBackend.registerType("Audits.PermissionElementIssueDetails", [{"name": "issueType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.PermissionElementIssueType"}, {"name": "type", "type": "string", "optional": true, "description": "The value of the type attribute.", "typeRef": null}, {"name": "nodeId", "type": "number", "optional": true, "description": "The node ID of the <permission> element.", "typeRef": "DOM.BackendNodeId"}, {"name": "isWarning", "type": "boolean", "optional": true, "description": "True if the issue is a warning, false if it is an error.", "typeRef": null}, {"name": "permissionName", "type": "string", "optional": true, "description": "Fields for message construction: Used for messages that reference a specific permission name", "typeRef": null}, {"name": "occluderNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occlusion", "typeRef": null}, {"name": "occluderParentNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occluder's parent", "typeRef": null}, {"name": "disableReason", "type": "string", "optional": true, "description": "Used for messages about activation disabled reason", "typeRef": null}]);
|
|
137
|
-
inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}]);
|
|
139
|
+
inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}, {"name": "performanceIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PerformanceIssueDetails"}]);
|
|
138
140
|
inspectorBackend.registerType("Audits.InspectorIssue", [{"name": "code", "type": "string", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueCode"}, {"name": "details", "type": "object", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueDetails"}, {"name": "issueId", "type": "string", "optional": true, "description": "A unique id for this issue. May be omitted if no other entity (e.g. exception, CDP message, etc.) is referencing this issue.", "typeRef": "Audits.IssueId"}]);
|
|
139
141
|
|
|
140
142
|
// Autofill.
|
|
@@ -547,7 +549,7 @@ inspectorBackend.registerCommand("Emulation.setHardwareConcurrencyOverride", [{"
|
|
|
547
549
|
inspectorBackend.registerCommand("Emulation.setUserAgentOverride", [{"name": "userAgent", "type": "string", "optional": false, "description": "User agent to use.", "typeRef": null}, {"name": "acceptLanguage", "type": "string", "optional": true, "description": "Browser language to emulate.", "typeRef": null}, {"name": "platform", "type": "string", "optional": true, "description": "The platform navigator.platform should return.", "typeRef": null}, {"name": "userAgentMetadata", "type": "object", "optional": true, "description": "To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData", "typeRef": "Emulation.UserAgentMetadata"}], [], "Allows overriding user agent with the given string. `userAgentMetadata` must be set for Client Hint headers to be sent.");
|
|
548
550
|
inspectorBackend.registerCommand("Emulation.setAutomationOverride", [{"name": "enabled", "type": "boolean", "optional": false, "description": "Whether the override should be enabled.", "typeRef": null}], [], "Allows overriding the automation flag.");
|
|
549
551
|
inspectorBackend.registerCommand("Emulation.setSmallViewportHeightDifferenceOverride", [{"name": "difference", "type": "number", "optional": false, "description": "This will cause an element of size 100svh to be `difference` pixels smaller than an element of size 100lvh.", "typeRef": null}], [], "Allows overriding the difference between the small and large viewport sizes, which determine the value of the `svh` and `lvh` unit, respectively. Only supported for top-level frames.");
|
|
550
|
-
inspectorBackend.registerCommand("Emulation.getScreenInfos", [], ["screenInfos"], "Returns device's screen configuration.");
|
|
552
|
+
inspectorBackend.registerCommand("Emulation.getScreenInfos", [], ["screenInfos"], "Returns device's screen configuration. In headful mode, the physical screens configuration is returned, whereas in headless mode, a virtual headless screen configuration is provided instead.");
|
|
551
553
|
inspectorBackend.registerCommand("Emulation.addScreen", [{"name": "left", "type": "number", "optional": false, "description": "Offset of the left edge of the screen in pixels.", "typeRef": null}, {"name": "top", "type": "number", "optional": false, "description": "Offset of the top edge of the screen in pixels.", "typeRef": null}, {"name": "width", "type": "number", "optional": false, "description": "The width of the screen in pixels.", "typeRef": null}, {"name": "height", "type": "number", "optional": false, "description": "The height of the screen in pixels.", "typeRef": null}, {"name": "workAreaInsets", "type": "object", "optional": true, "description": "Specifies the screen's work area. Default is entire screen.", "typeRef": "Emulation.WorkAreaInsets"}, {"name": "devicePixelRatio", "type": "number", "optional": true, "description": "Specifies the screen's device pixel ratio. Default is 1.", "typeRef": null}, {"name": "rotation", "type": "number", "optional": true, "description": "Specifies the screen's rotation angle. Available values are 0, 90, 180 and 270. Default is 0.", "typeRef": null}, {"name": "colorDepth", "type": "number", "optional": true, "description": "Specifies the screen's color depth in bits. Default is 24.", "typeRef": null}, {"name": "label", "type": "string", "optional": true, "description": "Specifies the descriptive label for the screen. Default is none.", "typeRef": null}, {"name": "isInternal", "type": "boolean", "optional": true, "description": "Indicates whether the screen is internal to the device or external, attached to the device. Default is false.", "typeRef": null}], ["screenInfo"], "Add a new screen to the device. Only supported in headless mode.");
|
|
552
554
|
inspectorBackend.registerCommand("Emulation.removeScreen", [{"name": "screenId", "type": "string", "optional": false, "description": "", "typeRef": "Emulation.ScreenId"}], [], "Remove screen from the device. Only supported in headless mode.");
|
|
553
555
|
inspectorBackend.registerType("Emulation.SafeAreaInsets", [{"name": "top", "type": "number", "optional": true, "description": "Overrides safe-area-inset-top.", "typeRef": null}, {"name": "topMax", "type": "number", "optional": true, "description": "Overrides safe-area-max-inset-top.", "typeRef": null}, {"name": "left", "type": "number", "optional": true, "description": "Overrides safe-area-inset-left.", "typeRef": null}, {"name": "leftMax", "type": "number", "optional": true, "description": "Overrides safe-area-max-inset-left.", "typeRef": null}, {"name": "bottom", "type": "number", "optional": true, "description": "Overrides safe-area-inset-bottom.", "typeRef": null}, {"name": "bottomMax", "type": "number", "optional": true, "description": "Overrides safe-area-max-inset-bottom.", "typeRef": null}, {"name": "right", "type": "number", "optional": true, "description": "Overrides safe-area-inset-right.", "typeRef": null}, {"name": "rightMax", "type": "number", "optional": true, "description": "Overrides safe-area-max-inset-right.", "typeRef": null}]);
|
|
@@ -1795,6 +1795,7 @@ export const generatedProperties = [
|
|
|
1795
1795
|
"inherited": false,
|
|
1796
1796
|
"keywords": [
|
|
1797
1797
|
"all",
|
|
1798
|
+
"auto",
|
|
1798
1799
|
"around",
|
|
1799
1800
|
"between"
|
|
1800
1801
|
],
|
|
@@ -3841,6 +3842,7 @@ export const generatedProperties = [
|
|
|
3841
3842
|
"inherited": false,
|
|
3842
3843
|
"keywords": [
|
|
3843
3844
|
"all",
|
|
3845
|
+
"auto",
|
|
3844
3846
|
"around",
|
|
3845
3847
|
"between"
|
|
3846
3848
|
],
|
|
@@ -4548,12 +4550,12 @@ export const generatedProperties = [
|
|
|
4548
4550
|
{
|
|
4549
4551
|
"inherited": true,
|
|
4550
4552
|
"keywords": [
|
|
4553
|
+
"none",
|
|
4551
4554
|
"capitalize",
|
|
4552
4555
|
"uppercase",
|
|
4553
4556
|
"lowercase",
|
|
4554
4557
|
"full-width",
|
|
4555
4558
|
"full-size-kana",
|
|
4556
|
-
"none",
|
|
4557
4559
|
"math-auto"
|
|
4558
4560
|
],
|
|
4559
4561
|
"name": "text-transform"
|
|
@@ -5559,6 +5561,7 @@ export const generatedPropertyValues = {
|
|
|
5559
5561
|
"column-rule-visibility-items": {
|
|
5560
5562
|
"values": [
|
|
5561
5563
|
"all",
|
|
5564
|
+
"auto",
|
|
5562
5565
|
"around",
|
|
5563
5566
|
"between"
|
|
5564
5567
|
]
|
|
@@ -6692,6 +6695,7 @@ export const generatedPropertyValues = {
|
|
|
6692
6695
|
"row-rule-visibility-items": {
|
|
6693
6696
|
"values": [
|
|
6694
6697
|
"all",
|
|
6698
|
+
"auto",
|
|
6695
6699
|
"around",
|
|
6696
6700
|
"between"
|
|
6697
6701
|
]
|
|
@@ -7045,12 +7049,12 @@ export const generatedPropertyValues = {
|
|
|
7045
7049
|
},
|
|
7046
7050
|
"text-transform": {
|
|
7047
7051
|
"values": [
|
|
7052
|
+
"none",
|
|
7048
7053
|
"capitalize",
|
|
7049
7054
|
"uppercase",
|
|
7050
7055
|
"lowercase",
|
|
7051
7056
|
"full-width",
|
|
7052
7057
|
"full-size-kana",
|
|
7053
|
-
"none",
|
|
7054
7058
|
"math-auto"
|
|
7055
7059
|
]
|
|
7056
7060
|
},
|
|
@@ -2757,7 +2757,8 @@ export namespace ProtocolMapping {
|
|
|
2757
2757
|
returnType: void;
|
|
2758
2758
|
};
|
|
2759
2759
|
/**
|
|
2760
|
-
* Returns device's screen configuration.
|
|
2760
|
+
* Returns device's screen configuration. In headful mode, the physical screens configuration is returned,
|
|
2761
|
+
* whereas in headless mode, a virtual headless screen configuration is provided instead.
|
|
2761
2762
|
*/
|
|
2762
2763
|
'Emulation.getScreenInfos': {
|
|
2763
2764
|
paramsType: [];
|
|
@@ -1832,7 +1832,8 @@ declare namespace ProtocolProxyApi {
|
|
|
1832
1832
|
invoke_setSmallViewportHeightDifferenceOverride(params: Protocol.Emulation.SetSmallViewportHeightDifferenceOverrideRequest): Promise<Protocol.ProtocolResponseWithError>;
|
|
1833
1833
|
|
|
1834
1834
|
/**
|
|
1835
|
-
* Returns device's screen configuration.
|
|
1835
|
+
* Returns device's screen configuration. In headful mode, the physical screens configuration is returned,
|
|
1836
|
+
* whereas in headless mode, a virtual headless screen configuration is provided instead.
|
|
1836
1837
|
*/
|
|
1837
1838
|
invoke_getScreenInfos(): Promise<Protocol.Emulation.GetScreenInfosResponse>;
|
|
1838
1839
|
|