[webkit-changes] [WebKit/WebKit] fecd1d: Cherry-pick a6fb71355a3d. rdar://problem/102650207
Alex Christensen
noreply at github.com
Thu Dec 8 12:25:38 PST 2022
Branch: refs/heads/safari-7615.1.14-branch
Home: https://github.com/WebKit/WebKit
Commit: fecd1dbdadbfbc08ac38ea1b8126823dc2f3dbca
https://github.com/WebKit/WebKit/commit/fecd1dbdadbfbc08ac38ea1b8126823dc2f3dbca
Author: Razvan Caliman <rcaliman at apple.com>
Date: 2022-12-08 (Thu, 08 Dec 2022)
Changed paths:
M LayoutTests/inspector/css/css-property-expected.txt
M LayoutTests/inspector/css/css-property.html
M Source/WebCore/inspector/InspectorStyleSheet.cpp
Log Message:
-----------
Cherry-pick a6fb71355a3d. rdar://problem/102650207
Web Inspector: REGRESSION(r256223 at main) Styles Panel: All CSS variables marked as unsupported
https://bugs.webkit.org/show_bug.cgi?id=248314
Reviewed by Darin Adler.
Querying `WebCore::cssPropertyID()` defined in `CSSPropertyParser.cpp`
with a CSS custom property name (aka CSS variable) mistakenly returns
`CSSPropertyID::CSSPropertyInvalid` instead of `CSSPropertyID::CSSPropertyCustom`.
This was also the case before https://github.com/WebKit/WebKit/pull/5986 landed,
so this wasn't regressed by it.
What the refactoring in https://github.com/WebKit/WebKit/pull/5986 did was to
introduce stricter checks in `PropertySetCSSStyleDeclaration::isExposed()`
and in `WebCore::isExposed()` declared in the generated file `CSSPropertyNames.cpp`
to return `false` when encountering `CSSPropertyID::CSSPropertyInvalid`.
The specific `CSSPropertyID` wasn't of particular importance for Web Inspector so the
wrong id didn't cause issues previously.
But `InspectorStyle::styleWithProperties()` makes use of the `isExposed()` check to
mark a CSS custom property as `property->setParsedOk(false)` which ultimately marks it
as unsupported in the Web Inspector frontend.
Now that the check is more strict, compounded with the effect of the mistaken
`CSSPropertyID::CSSPropertyInvalid`, causes CSS custom properties to be incorrectly
marked as unsupported.
To mitigate this:
- explicitly check if the property is a custom property and assign it the correct id of
`CSSPropertyID::CSSPropertyCustom`.
- since `WebCore::nameString()` can't return an arbitrary CSS custom property name
even if it were provided the correct `CSSPropertyID`, we guard for this before calling the method.
There are many callers of `WebCore::cssPropertyID()` and only some of them
manually check for `WebCore::isCustomPropertyName()` to take special action.
Fixing the root issue so that it correctly returns `CSSPropertyID::CSSPropertyCustom`
will be done in another patch to account for any regressions it may introduce.
* LayoutTests/inspector/css/css-property-expected.txt:
* LayoutTests/inspector/css/css-property.html:
Added a check that CSS custom properties are valid.
`Protocol::CSS::CSSProperty::parsedOk` maps to `WI.CSSProperty.valid`.
* Source/WebCore/inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::styleWithProperties const):
Canonical link: https://commits.webkit.org/257564@main
Canonical link: https://commits.webkit.org/257350.6@safari-7615.1.14-branch
Commit: 85272a0e3a2be85e32dd6b20b9819dbc3a1d55b8
https://github.com/WebKit/WebKit/commit/85272a0e3a2be85e32dd6b20b9819dbc3a1d55b8
Author: Alex Christensen <achristensen at apple.com>
Date: 2022-12-08 (Thu, 08 Dec 2022)
Changed paths:
M Source/WebKit/Scripts/generate-serializers.py
M Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.cpp
M Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h
M Source/WebKit/Scripts/webkit/tests/SerializedTypeInfo.cpp
M Source/WebKit/Scripts/webkit/tests/TestSerializedType.serialization.in
M Source/WebKit/Shared/mac/WebHitTestResultPlatformData.serialization.in
Log Message:
-----------
Cherry-pick 5e92b798c222. rdar://problem/103099864
Don't call getDDActionContextClass if we don't have a DDActionContext to decode
https://bugs.webkit.org/show_bug.cgi?id=248931
rdar://103099864
Reviewed by Aditya Keerthi.
This fixes a regression from 257087 at main, before which we would only call getDDActionContextClass
if hasActionContext was true. This restores equivalent behavior by supporting the Nullable attribute
when encoding soft linked ObjC classes.
* Source/WebKit/Scripts/generate-serializers.py:
(decode_type):
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.cpp:
(IPC::ArgumentCoder<NullableSoftLinkedMember>::encode):
(IPC::ArgumentCoder<NullableSoftLinkedMember>::decode):
* Source/WebKit/Scripts/webkit/tests/GeneratedSerializers.h:
* Source/WebKit/Scripts/webkit/tests/SerializedTypeInfo.cpp:
(WebKit::allSerializedTypes):
* Source/WebKit/Scripts/webkit/tests/TestSerializedType.serialization.in:
* Source/WebKit/Shared/mac/WebHitTestResultPlatformData.serialization.in:
Canonical link: https://commits.webkit.org/257575@main
Canonical link: https://commits.webkit.org/257350.7@safari-7615.1.14-branch
Compare: https://github.com/WebKit/WebKit/compare/17c70727628c...85272a0e3a2b
More information about the webkit-changes
mailing list