@mcp-b/chrome-devtools-mcp 1.7.0 → 1.7.2
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/README.md +120 -10
- package/build/src/McpContext.js +50 -3
- package/build/src/browser.js +157 -51
- package/build/src/cli.js +6 -1
- package/build/src/formatters/IssueFormatter.js +190 -0
- package/build/src/main.js +83 -2
- package/build/src/telemetry/clearcut-logger.js +102 -0
- package/build/src/telemetry/flag-utils.js +45 -0
- package/build/src/telemetry/metric-utils.js +14 -0
- package/build/src/telemetry/persistence.js +53 -0
- package/build/src/telemetry/types.js +33 -0
- package/build/src/telemetry/watchdog/clearcut-sender.js +201 -0
- package/build/src/telemetry/watchdog/main.js +127 -0
- package/build/src/telemetry/watchdog-client.js +60 -0
- package/build/src/third_party/devtools-formatter-worker.js +7 -0
- package/build/src/tools/browser.js +92 -0
- package/build/src/tools/extension.js +31 -0
- package/build/src/tools/extensions.js +79 -0
- package/build/src/tools/input.js +6 -1
- package/build/src/tools/pages.js +0 -1
- package/build/src/tools/tools.js +4 -0
- package/build/src/transports/WebMCPBridgeScript.js +11 -2
- package/build/src/utils/ExtensionRegistry.js +35 -0
- package/build/src/utils/string.js +36 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/common/Base64.js +20 -2
- package/build/vendor/chrome-devtools-frontend/front_end/core/common/Debouncer.js +8 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/common/Gzip.js +11 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/common/Object.js +6 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +3 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/common/ResourceType.js +6 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/common/Revealer.js +0 -5
- package/build/vendor/chrome-devtools-frontend/front_end/core/common/Settings.js +18 -8
- package/build/vendor/chrome-devtools-frontend/front_end/core/host/AidaClient.js +24 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +11 -3
- package/build/vendor/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +1 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +27 -20
- package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/collect-ui-strings.js +7 -8
- package/build/vendor/chrome-devtools-frontend/front_end/core/i18n/generate-locales-js.js +4 -5
- package/build/vendor/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +10 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +63 -12
- package/build/vendor/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +1 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +4 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/root/ExperimentNames.js +30 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/root/root.js +2 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +0 -4
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +69 -9
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +6 -6
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +28 -13
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +1 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +6 -0
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +0 -2
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +1 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +170 -13
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +5 -39
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +8 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +20 -5
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +12 -21
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +19 -6
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +5 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +8 -5
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +15 -10
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +1 -1
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +13 -27
- package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/Target.js +3 -1
- package/build/vendor/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +1 -7
- package/build/vendor/chrome-devtools-frontend/front_end/generated/Deprecation.js +1 -16
- package/build/vendor/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +82 -22
- package/build/vendor/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +265 -123
- package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +2 -1
- package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +10 -16
- package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +97 -26
- package/build/vendor/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +35 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/annotations/AnnotationRepository.js +163 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/annotations/AnnotationType.js +10 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/annotations/annotations.js +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +5 -3
- package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +29 -58
- package/build/vendor/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +7 -45
- package/build/vendor/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +1 -1
- package/build/vendor/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +14 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +8 -5
- package/build/vendor/chrome-devtools-frontend/front_end/models/greendev/Prototypes.js +33 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/greendev/greendev.js +4 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/ContrastCheckTrigger.js +2 -2
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +0 -21
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +1 -38
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +8 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManager.js +6 -12
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/PermissionElementIssue.js +243 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementActivationDisabled.md +7 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +9 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +9 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementCspFrameAncestorsMissing.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementGeolocationDeprecated.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementInvalidType.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementLowContrast.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +6 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +6 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementPermissionsPolicyBlocked.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementRegistrationFailed.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementRequestInProgress.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +5 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +7 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/issues_manager.js +2 -1
- package/build/vendor/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +0 -8
- package/build/vendor/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +4 -8
- package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +30 -1
- package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +70 -1
- package/build/vendor/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +82 -30
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +10 -2
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +2 -2
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +0 -3
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/Processor.js +18 -19
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/Styles.js +12 -4
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/Initiators.js +46 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +4 -3
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +1 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +2 -2
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +1 -1
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +6 -0
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +10 -1
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +44 -27
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +9 -2
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +1 -6
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +2 -2
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +2 -4
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +3 -2
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +1 -1
- package/build/vendor/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +33 -11
- package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +51 -18
- package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +1 -1
- package/build/vendor/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/scopes.js +4 -0
- package/build/vendor/chrome-devtools-frontend/mcp/HostBindings.js +4 -0
- package/build/vendor/chrome-devtools-frontend/mcp/mcp.js +4 -0
- package/package.json +17 -10
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +0 -8
- package/build/vendor/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteSamePartyCrossPartyContextSet.md +0 -10
|
@@ -362,10 +362,6 @@ export class AnimationModel extends SDKModel {
|
|
|
362
362
|
this.playbackRate = playbackRate;
|
|
363
363
|
void this.agent.invoke_setPlaybackRate({ playbackRate });
|
|
364
364
|
}
|
|
365
|
-
async releaseAllAnimations() {
|
|
366
|
-
const animationIds = [...this.animationGroups.values()].flatMap(animationGroup => animationGroup.animations().map(animation => animation.id()));
|
|
367
|
-
await this.agent.invoke_releaseAnimations({ animations: animationIds });
|
|
368
|
-
}
|
|
369
365
|
releaseAnimations(animations) {
|
|
370
366
|
void this.agent.invoke_releaseAnimations({ animations });
|
|
371
367
|
}
|
|
@@ -474,10 +474,10 @@ export class CSSMatchedStyles {
|
|
|
474
474
|
// Now that we've built the arrays of NodeCascades for each pseudo type, convert them into
|
|
475
475
|
// DOMInheritanceCascades.
|
|
476
476
|
for (const [pseudoType, nodeCascade] of pseudoCascades.entries()) {
|
|
477
|
-
pseudoInheritanceCascades.set(pseudoType, new DOMInheritanceCascade(this, nodeCascade, this.#registeredProperties));
|
|
477
|
+
pseudoInheritanceCascades.set(pseudoType, new DOMInheritanceCascade(this, nodeCascade, this.#registeredProperties, this.#mainDOMCascade));
|
|
478
478
|
}
|
|
479
479
|
for (const [highlightName, nodeCascade] of customHighlightPseudoCascades.entries()) {
|
|
480
|
-
customHighlightPseudoInheritanceCascades.set(highlightName, new DOMInheritanceCascade(this, nodeCascade, this.#registeredProperties));
|
|
480
|
+
customHighlightPseudoInheritanceCascades.set(highlightName, new DOMInheritanceCascade(this, nodeCascade, this.#registeredProperties, this.#mainDOMCascade));
|
|
481
481
|
}
|
|
482
482
|
return [pseudoInheritanceCascades, customHighlightPseudoInheritanceCascades];
|
|
483
483
|
}
|
|
@@ -685,6 +685,10 @@ export class CSSMatchedStyles {
|
|
|
685
685
|
const domCascade = this.#styleToDOMCascade.get(property.ownerStyle);
|
|
686
686
|
return domCascade ? domCascade.propertyState(property) : null;
|
|
687
687
|
}
|
|
688
|
+
isPropertyOverriddenByAnimation(property) {
|
|
689
|
+
const domCascade = this.#styleToDOMCascade.get(property.ownerStyle);
|
|
690
|
+
return domCascade?.isPropertyOverriddenByAnimation(property) ?? false;
|
|
691
|
+
}
|
|
688
692
|
resetActiveProperties() {
|
|
689
693
|
Platform.assertNotNullOrUndefined(this.#mainDOMCascade);
|
|
690
694
|
Platform.assertNotNullOrUndefined(this.#pseudoDOMCascades);
|
|
@@ -730,22 +734,24 @@ export class CSSMatchedStyles {
|
|
|
730
734
|
}
|
|
731
735
|
}
|
|
732
736
|
class NodeCascade {
|
|
737
|
+
isHighlightPseudoCascade;
|
|
733
738
|
#matchedStyles;
|
|
734
739
|
styles;
|
|
735
740
|
#isInherited;
|
|
736
|
-
#isHighlightPseudoCascade;
|
|
737
741
|
propertiesState = new Map();
|
|
742
|
+
propertiesOverriddenByAnimation = new Set();
|
|
738
743
|
activeProperties = new Map();
|
|
739
744
|
#node;
|
|
740
745
|
constructor(matchedStyles, styles, node, isInherited, isHighlightPseudoCascade = false) {
|
|
746
|
+
this.isHighlightPseudoCascade = isHighlightPseudoCascade;
|
|
741
747
|
this.#matchedStyles = matchedStyles;
|
|
742
748
|
this.styles = styles;
|
|
743
749
|
this.#isInherited = isInherited;
|
|
744
|
-
this.#isHighlightPseudoCascade = isHighlightPseudoCascade;
|
|
745
750
|
this.#node = node;
|
|
746
751
|
}
|
|
747
752
|
computeActiveProperties() {
|
|
748
753
|
this.propertiesState.clear();
|
|
754
|
+
this.propertiesOverriddenByAnimation.clear();
|
|
749
755
|
this.activeProperties.clear();
|
|
750
756
|
for (let i = this.styles.length - 1; i >= 0; i--) {
|
|
751
757
|
const style = this.styles[i];
|
|
@@ -760,9 +766,17 @@ class NodeCascade {
|
|
|
760
766
|
for (const property of style.allProperties()) {
|
|
761
767
|
// Do not pick non-inherited properties from inherited styles.
|
|
762
768
|
const metadata = cssMetadata();
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
769
|
+
if (this.#isInherited) {
|
|
770
|
+
if (this.isHighlightPseudoCascade) {
|
|
771
|
+
// All properties are inherited for highlight pseudos, but custom
|
|
772
|
+
// variables do not come from the inherited pseudo elements.
|
|
773
|
+
if (property.name.startsWith('--')) {
|
|
774
|
+
continue;
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
else if (!metadata.isPropertyInherited(property.name)) {
|
|
778
|
+
continue;
|
|
779
|
+
}
|
|
766
780
|
}
|
|
767
781
|
// When a property does not have a range in an otherwise ranged CSSStyleDeclaration,
|
|
768
782
|
// we consider it as a non-leading property (see computeLeadingProperties()), and most
|
|
@@ -833,6 +847,10 @@ class NodeCascade {
|
|
|
833
847
|
}
|
|
834
848
|
if (activeProperty) {
|
|
835
849
|
this.propertiesState.set(activeProperty, "Overloaded" /* PropertyState.OVERLOADED */);
|
|
850
|
+
if (propertyWithHigherSpecificity.ownerStyle.type === Type.Animation ||
|
|
851
|
+
propertyWithHigherSpecificity.ownerStyle.type === Type.Transition) {
|
|
852
|
+
this.propertiesOverriddenByAnimation.add(activeProperty);
|
|
853
|
+
}
|
|
836
854
|
}
|
|
837
855
|
this.propertiesState.set(propertyWithHigherSpecificity, "Active" /* PropertyState.ACTIVE */);
|
|
838
856
|
this.activeProperties.set(canonicalName, propertyWithHigherSpecificity);
|
|
@@ -913,6 +931,7 @@ function* forEach(array, startAfter) {
|
|
|
913
931
|
}
|
|
914
932
|
class DOMInheritanceCascade {
|
|
915
933
|
#propertiesState = new Map();
|
|
934
|
+
#propertiesOverriddenByAnimation = new Set();
|
|
916
935
|
#availableCSSVariables = new Map();
|
|
917
936
|
#computedCSSVariables = new Map();
|
|
918
937
|
#styleToNodeCascade = new Map();
|
|
@@ -920,13 +939,24 @@ class DOMInheritanceCascade {
|
|
|
920
939
|
#nodeCascades;
|
|
921
940
|
#registeredProperties;
|
|
922
941
|
#matchedStyles;
|
|
923
|
-
|
|
942
|
+
#fallbackCascade = null;
|
|
943
|
+
#styles = [];
|
|
944
|
+
constructor(matchedStyles, nodeCascades, registeredProperties, fallbackCascade = null) {
|
|
924
945
|
this.#nodeCascades = nodeCascades;
|
|
925
946
|
this.#matchedStyles = matchedStyles;
|
|
926
947
|
this.#registeredProperties = registeredProperties;
|
|
948
|
+
this.#fallbackCascade = fallbackCascade;
|
|
927
949
|
for (const nodeCascade of nodeCascades) {
|
|
928
950
|
for (const style of nodeCascade.styles) {
|
|
929
951
|
this.#styleToNodeCascade.set(style, nodeCascade);
|
|
952
|
+
this.#styles.push(style);
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
if (fallbackCascade) {
|
|
956
|
+
for (const [style, nodeCascade] of fallbackCascade.#styleToNodeCascade) {
|
|
957
|
+
if (!this.#styles.includes(style)) {
|
|
958
|
+
this.#styleToNodeCascade.set(style, nodeCascade);
|
|
959
|
+
}
|
|
930
960
|
}
|
|
931
961
|
}
|
|
932
962
|
}
|
|
@@ -981,6 +1011,9 @@ class DOMInheritanceCascade {
|
|
|
981
1011
|
}
|
|
982
1012
|
}
|
|
983
1013
|
}
|
|
1014
|
+
if (this.#fallbackCascade && (!nodeCascade.isHighlightPseudoCascade || property.name.startsWith('--'))) {
|
|
1015
|
+
return this.#fallbackCascade.resolveProperty(property.name, property.ownerStyle);
|
|
1016
|
+
}
|
|
984
1017
|
return null;
|
|
985
1018
|
}
|
|
986
1019
|
#findPropertyInParentCascadeIfInherited(property) {
|
|
@@ -1224,15 +1257,20 @@ class DOMInheritanceCascade {
|
|
|
1224
1257
|
}
|
|
1225
1258
|
}
|
|
1226
1259
|
styles() {
|
|
1227
|
-
return
|
|
1260
|
+
return this.#styles;
|
|
1228
1261
|
}
|
|
1229
1262
|
propertyState(property) {
|
|
1230
1263
|
this.ensureInitialized();
|
|
1231
1264
|
return this.#propertiesState.get(property) || null;
|
|
1232
1265
|
}
|
|
1266
|
+
isPropertyOverriddenByAnimation(property) {
|
|
1267
|
+
this.ensureInitialized();
|
|
1268
|
+
return this.#propertiesOverriddenByAnimation.has(property);
|
|
1269
|
+
}
|
|
1233
1270
|
reset() {
|
|
1234
1271
|
this.#initialized = false;
|
|
1235
1272
|
this.#propertiesState.clear();
|
|
1273
|
+
this.#propertiesOverriddenByAnimation.clear();
|
|
1236
1274
|
this.#availableCSSVariables.clear();
|
|
1237
1275
|
this.#computedCSSVariables.clear();
|
|
1238
1276
|
}
|
|
@@ -1247,11 +1285,20 @@ class DOMInheritanceCascade {
|
|
|
1247
1285
|
for (const [property, state] of nodeCascade.propertiesState) {
|
|
1248
1286
|
if (state === "Overloaded" /* PropertyState.OVERLOADED */) {
|
|
1249
1287
|
this.#propertiesState.set(property, "Overloaded" /* PropertyState.OVERLOADED */);
|
|
1288
|
+
if (nodeCascade.propertiesOverriddenByAnimation.has(property)) {
|
|
1289
|
+
this.#propertiesOverriddenByAnimation.add(property);
|
|
1290
|
+
}
|
|
1250
1291
|
continue;
|
|
1251
1292
|
}
|
|
1252
1293
|
const canonicalName = cssMetadata().canonicalPropertyName(property.name);
|
|
1253
1294
|
if (activeProperties.has(canonicalName)) {
|
|
1254
1295
|
this.#propertiesState.set(property, "Overloaded" /* PropertyState.OVERLOADED */);
|
|
1296
|
+
const activeProperty = activeProperties.get(canonicalName);
|
|
1297
|
+
if (activeProperty &&
|
|
1298
|
+
(activeProperty.ownerStyle.type === Type.Animation ||
|
|
1299
|
+
activeProperty.ownerStyle.type === Type.Transition)) {
|
|
1300
|
+
this.#propertiesOverriddenByAnimation.add(property);
|
|
1301
|
+
}
|
|
1255
1302
|
continue;
|
|
1256
1303
|
}
|
|
1257
1304
|
activeProperties.set(canonicalName, property);
|
|
@@ -1289,6 +1336,19 @@ class DOMInheritanceCascade {
|
|
|
1289
1336
|
const initialValue = rule.initialValue();
|
|
1290
1337
|
accumulatedCSSVariables.set(rule.propertyName(), initialValue !== null ? { value: initialValue, declaration: new CSSValueSource(rule) } : null);
|
|
1291
1338
|
}
|
|
1339
|
+
if (this.#fallbackCascade) {
|
|
1340
|
+
this.#fallbackCascade.ensureInitialized();
|
|
1341
|
+
for (const [cascade, available] of this.#fallbackCascade.#availableCSSVariables) {
|
|
1342
|
+
this.#availableCSSVariables.set(cascade, available);
|
|
1343
|
+
}
|
|
1344
|
+
for (const [cascade, computed] of this.#fallbackCascade.#computedCSSVariables) {
|
|
1345
|
+
this.#computedCSSVariables.set(cascade, computed);
|
|
1346
|
+
}
|
|
1347
|
+
for (const [key, value] of this.#fallbackCascade.#availableCSSVariables.get(this.#fallbackCascade.#nodeCascades[0]) ??
|
|
1348
|
+
[]) {
|
|
1349
|
+
accumulatedCSSVariables.set(key, value);
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1292
1352
|
for (let i = this.#nodeCascades.length - 1; i >= 0; --i) {
|
|
1293
1353
|
const nodeCascade = this.#nodeCascades[i];
|
|
1294
1354
|
const variableNames = [];
|
|
@@ -526,7 +526,7 @@ const extraPropertyValues = new Map([
|
|
|
526
526
|
['background-repeat', new Set(['repeat', 'repeat-x', 'repeat-y', 'no-repeat', 'space', 'round'])],
|
|
527
527
|
['content', new Set(['normal', 'close-quote', 'no-close-quote', 'no-open-quote', 'open-quote'])],
|
|
528
528
|
['baseline-shift', new Set(['baseline'])],
|
|
529
|
-
['max-height', new Set(['min-content', 'max-content', '-webkit-fill-available', 'fit-content'])],
|
|
529
|
+
['max-height', new Set(['min-content', 'max-content', '-webkit-fill-available', 'fit-content', 'stretch'])],
|
|
530
530
|
['color', new Set(['black'])],
|
|
531
531
|
['background-color', new Set(['white'])],
|
|
532
532
|
['box-shadow', new Set(['inset'])],
|
|
@@ -600,7 +600,7 @@ const extraPropertyValues = new Map([
|
|
|
600
600
|
]),
|
|
601
601
|
],
|
|
602
602
|
['zoom', new Set(['normal'])],
|
|
603
|
-
['max-width', new Set(['min-content', 'max-content', '-webkit-fill-available', 'fit-content'])],
|
|
603
|
+
['max-width', new Set(['min-content', 'max-content', '-webkit-fill-available', 'fit-content', 'stretch'])],
|
|
604
604
|
['-webkit-font-smoothing', new Set(['antialiased', 'subpixel-antialiased'])],
|
|
605
605
|
[
|
|
606
606
|
'border',
|
|
@@ -991,7 +991,7 @@ const extraPropertyValues = new Map([
|
|
|
991
991
|
]),
|
|
992
992
|
],
|
|
993
993
|
['flex-flow', new Set(['nowrap', 'row', 'row-reverse', 'column', 'column-reverse', 'wrap', 'wrap-reverse'])],
|
|
994
|
-
['height', new Set(['-webkit-fill-available'])],
|
|
994
|
+
['height', new Set(['-webkit-fill-available', 'stretch'])],
|
|
995
995
|
['inline-size', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content'])],
|
|
996
996
|
[
|
|
997
997
|
'list-style',
|
|
@@ -1058,9 +1058,9 @@ const extraPropertyValues = new Map([
|
|
|
1058
1058
|
['max-block-size', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content'])],
|
|
1059
1059
|
['max-inline-size', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content'])],
|
|
1060
1060
|
['min-block-size', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content'])],
|
|
1061
|
-
['min-height', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content'])],
|
|
1061
|
+
['min-height', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content', 'stretch'])],
|
|
1062
1062
|
['min-inline-size', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content'])],
|
|
1063
|
-
['min-width', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content'])],
|
|
1063
|
+
['min-width', new Set(['-webkit-fill-available', 'min-content', 'max-content', 'fit-content', 'stretch'])],
|
|
1064
1064
|
['object-position', new Set(['top', 'bottom', 'left', 'right', 'center'])],
|
|
1065
1065
|
['shape-outside', new Set(['border-box', 'content-box', 'padding-box', 'margin-box'])],
|
|
1066
1066
|
[
|
|
@@ -1222,7 +1222,7 @@ const extraPropertyValues = new Map([
|
|
|
1222
1222
|
['-webkit-text-stroke-width', new Set(['medium', 'thick', 'thin'])],
|
|
1223
1223
|
['-webkit-transform-origin-x', new Set(['left', 'right', 'center'])],
|
|
1224
1224
|
['-webkit-transform-origin-y', new Set(['top', 'bottom', 'center'])],
|
|
1225
|
-
['width', new Set(['-webkit-fill-available'])],
|
|
1225
|
+
['width', new Set(['-webkit-fill-available', 'stretch'])],
|
|
1226
1226
|
['contain-intrinsic-width', new Set(['auto none', 'auto 100px'])],
|
|
1227
1227
|
['contain-intrinsic-height', new Set(['auto none', 'auto 100px'])],
|
|
1228
1228
|
['contain-intrinsic-size', new Set(['auto none', 'auto 100px'])],
|
|
@@ -296,6 +296,12 @@ export class CSSModel extends SDKModel {
|
|
|
296
296
|
}
|
|
297
297
|
return await this.#styleLoader.computedStylePromise(nodeId);
|
|
298
298
|
}
|
|
299
|
+
async getComputedStyleExtraFields(nodeId) {
|
|
300
|
+
if (!this.isEnabled()) {
|
|
301
|
+
await this.enable();
|
|
302
|
+
}
|
|
303
|
+
return await this.#styleLoader.extraFieldsPromise(nodeId);
|
|
304
|
+
}
|
|
299
305
|
async getLayoutPropertiesFromComputedStyle(nodeId) {
|
|
300
306
|
const styles = await this.getComputedStyle(nodeId);
|
|
301
307
|
if (!styles) {
|
|
@@ -317,7 +323,7 @@ export class CSSModel extends SDKModel {
|
|
|
317
323
|
isGrid,
|
|
318
324
|
isSubgrid,
|
|
319
325
|
isGridLanes,
|
|
320
|
-
isContainer,
|
|
326
|
+
containerType: isContainer ? containerType : undefined,
|
|
321
327
|
hasScroll,
|
|
322
328
|
};
|
|
323
329
|
}
|
|
@@ -858,25 +864,34 @@ class ComputedStyleLoader {
|
|
|
858
864
|
constructor(cssModel) {
|
|
859
865
|
this.#cssModel = cssModel;
|
|
860
866
|
}
|
|
861
|
-
|
|
867
|
+
#getResponsePromise(nodeId) {
|
|
862
868
|
let promise = this.#nodeIdToPromise.get(nodeId);
|
|
863
869
|
if (promise) {
|
|
864
870
|
return promise;
|
|
865
871
|
}
|
|
866
|
-
promise =
|
|
867
|
-
this.#
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
872
|
+
promise =
|
|
873
|
+
this.#cssModel.getAgent().invoke_getComputedStyleForNode({ nodeId }).then(({ computedStyle, extraFields }) => {
|
|
874
|
+
this.#nodeIdToPromise.delete(nodeId);
|
|
875
|
+
if (!computedStyle?.length) {
|
|
876
|
+
return { style: null, extraFields };
|
|
877
|
+
}
|
|
878
|
+
const result = new Map();
|
|
879
|
+
for (const property of computedStyle) {
|
|
880
|
+
result.set(property.name, property.value);
|
|
881
|
+
}
|
|
882
|
+
return { style: result, extraFields };
|
|
883
|
+
});
|
|
877
884
|
this.#nodeIdToPromise.set(nodeId, promise);
|
|
878
885
|
return promise;
|
|
879
886
|
}
|
|
887
|
+
async computedStylePromise(nodeId) {
|
|
888
|
+
const computedStyleWithExtraFields = await this.#getResponsePromise(nodeId);
|
|
889
|
+
return computedStyleWithExtraFields.style;
|
|
890
|
+
}
|
|
891
|
+
async extraFieldsPromise(nodeId) {
|
|
892
|
+
const computedStyleWithExtraFields = await this.#getResponsePromise(nodeId);
|
|
893
|
+
return computedStyleWithExtraFields.extraFields;
|
|
894
|
+
}
|
|
880
895
|
}
|
|
881
896
|
export class InlineStyleResult {
|
|
882
897
|
inlineStyle;
|
|
@@ -77,7 +77,7 @@ export class CSSProperty extends Common.ObjectWrapper.ObjectWrapper {
|
|
|
77
77
|
#matchers(matchedStyles, computedStyles) {
|
|
78
78
|
const matchers = matchedStyles.propertyMatchers(this.ownerStyle, computedStyles);
|
|
79
79
|
matchers.push(new CSSWideKeywordMatcher(this, matchedStyles));
|
|
80
|
-
if (Root.Runtime.experiments.isEnabled(
|
|
80
|
+
if (Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.FONT_EDITOR)) {
|
|
81
81
|
matchers.push(new FontMatcher());
|
|
82
82
|
}
|
|
83
83
|
return matchers;
|
package/build/vendor/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js
CHANGED
|
@@ -926,6 +926,9 @@ export class MathFunctionMatch extends BaseFunctionMatch {
|
|
|
926
926
|
case "calc" /* ArithmeticFunction.CALC */:
|
|
927
927
|
case "sibling-count" /* ArithmeticFunction.SIBLING_COUNT */:
|
|
928
928
|
case "sibling-index" /* ArithmeticFunction.SIBLING_INDEX */:
|
|
929
|
+
case "round" /* ArithmeticFunction.ROUND */:
|
|
930
|
+
case "mod" /* ArithmeticFunction.MOD */:
|
|
931
|
+
case "rem" /* ArithmeticFunction.REM */:
|
|
929
932
|
return true;
|
|
930
933
|
}
|
|
931
934
|
// This assignment catches missed values in the switch above.
|
|
@@ -946,6 +949,9 @@ export class MathFunctionMatcher extends matcherBase(MathFunctionMatch) {
|
|
|
946
949
|
case "calc" /* ArithmeticFunction.CALC */:
|
|
947
950
|
case "sibling-count" /* ArithmeticFunction.SIBLING_COUNT */:
|
|
948
951
|
case "sibling-index" /* ArithmeticFunction.SIBLING_INDEX */:
|
|
952
|
+
case "round" /* ArithmeticFunction.ROUND */:
|
|
953
|
+
case "mod" /* ArithmeticFunction.MOD */:
|
|
954
|
+
case "rem" /* ArithmeticFunction.REM */:
|
|
949
955
|
return maybeFunc;
|
|
950
956
|
}
|
|
951
957
|
// This assignment catches missed values in the switch above.
|
|
@@ -433,7 +433,6 @@ export class ConsoleMessage {
|
|
|
433
433
|
#exceptionId = undefined;
|
|
434
434
|
#affectedResources;
|
|
435
435
|
category;
|
|
436
|
-
isCookieReportIssue = false;
|
|
437
436
|
/**
|
|
438
437
|
* The parent frame of the `console.log` call of logpoints or conditional breakpoints
|
|
439
438
|
* if they called `console.*` explicitly. The parent frame is where V8 paused
|
|
@@ -460,7 +459,6 @@ export class ConsoleMessage {
|
|
|
460
459
|
this.workerId = details?.workerId;
|
|
461
460
|
this.#affectedResources = details?.affectedResources;
|
|
462
461
|
this.category = details?.category;
|
|
463
|
-
this.isCookieReportIssue = Boolean(details?.isCookieReportIssue);
|
|
464
462
|
if (!this.#executionContextId && this.#runtimeModel) {
|
|
465
463
|
if (this.scriptId) {
|
|
466
464
|
this.#executionContextId = this.#runtimeModel.executionContextIdForScriptId(this.scriptId);
|
|
@@ -84,7 +84,7 @@ export class CookieModel extends SDKModel {
|
|
|
84
84
|
if (cookie.expires()) {
|
|
85
85
|
expires = Math.floor(Date.parse(`${cookie.expires()}`) / 1000);
|
|
86
86
|
}
|
|
87
|
-
const enabled = Root.Runtime.experiments.isEnabled(
|
|
87
|
+
const enabled = Root.Runtime.experiments.isEnabled(Root.ExperimentNames.ExperimentName.EXPERIMENTAL_COOKIE_FEATURES);
|
|
88
88
|
const preserveUnset = (scheme) => scheme === "Unset" /* Protocol.Network.CookieSourceScheme.Unset */ ? scheme : undefined;
|
|
89
89
|
const protocolCookie = {
|
|
90
90
|
name: cookie.name(),
|