Skip to content

REGRESSION(252070@main): [ iOS16 Debug ] Updates to WebCore::RenderLayerBacking::updateGeometry cause testing to exit early and not complete#2484

Closed
robert-jenner wants to merge 1 commit intoWebKit:mainfrom
robert-jenner:eng/REGRESSION252070main--iOS16-Debug---Updates-to-WebCoreRenderLayerBackingupdateGeometry-cause-testing-to-exit-early-and-not-complete
Closed

REGRESSION(252070@main): [ iOS16 Debug ] Updates to WebCore::RenderLayerBacking::updateGeometry cause testing to exit early and not complete#2484
robert-jenner wants to merge 1 commit intoWebKit:mainfrom
robert-jenner:eng/REGRESSION252070main--iOS16-Debug---Updates-to-WebCoreRenderLayerBackingupdateGeometry-cause-testing-to-exit-early-and-not-complete

Conversation

@robert-jenner
Copy link
Copy Markdown
Contributor

2ed1487

REGRESSION(252070@main): [ iOS16 Debug ]  Updates to WebCore::RenderLayerBacking::updateGeometry cause testing to exit early and not complete
https://bugs.webkit.org/show_bug.cgi?id=242832

Reviewed by NOBODY (OOPS!).

Partial revert of 252070@main to fix the changes that updateGeometry broke on iOS16 Debug beta.

* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::~RenderLayerBacking):
(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateChildClippingStrategy):
(WebCore::RenderLayerBacking::updatePaintingPhases):
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::backingStoreMemoryEstimate const):
* Source/WebCore/rendering/RenderLayerBacking.h:

…yerBacking::updateGeometry cause testing to exit early and not complete

https://bugs.webkit.org/show_bug.cgi?id=242832

Reviewed by NOBODY (OOPS!).

Partial revert of 252070@main to fix the changes that updateGeometry broke on iOS16 Debug beta.

* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::~RenderLayerBacking):
(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateChildClippingStrategy):
(WebCore::RenderLayerBacking::updatePaintingPhases):
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::backingStoreMemoryEstimate const):
* Source/WebCore/rendering/RenderLayerBacking.h:
@robert-jenner robert-jenner self-assigned this Jul 16, 2022
@robert-jenner robert-jenner added New Bugs Unclassified bugs are placed in this component until the correct component can be determined. WebKit Nightly Build labels Jul 16, 2022
@robert-jenner
Copy link
Copy Markdown
Contributor Author

Going to let this run all checks before landing.

@webkit-early-warning-system webkit-early-warning-system added the merging-blocked Applied to prevent a change from being merged label Jul 16, 2022
void RenderLayerBacking::updateChildClippingStrategy(bool needsDescendantsClippingLayer)
{
auto needsClipMaskLayer = [&] {
return needsDescendantsClippingLayer && is<RenderBox>(renderer()) && (renderer().style().hasBorderRadius() || renderer().style().clipPath());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code has a problem. This will create an unnecessary child clipping mask layer.
The original code created the child clipping mask layer only if GraphicsLayer::supportsRoundedClip() returned false.

return needsDescendantsClippingLayer && !GraphicsLayer::supportsRoundedClip() && is<RenderBox>(renderer()) && (renderer().style().hasBorderRadius() || renderer().style().clipPath());

And, GraphicsLayer::supportsRoundedClip() never returned false for all port.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello!

Thanks for the review. This is exactly why I didn't move towards a direct revert, and opted to have it run through EWS completely first. Also, it wasn't a clean and easy revert. It had some conflicts and I tried to deal with them as best as I could.

@robert-jenner robert-jenner deleted the eng/REGRESSION252070main--iOS16-Debug---Updates-to-WebCoreRenderLayerBackingupdateGeometry-cause-testing-to-exit-early-and-not-complete branch July 19, 2022 01:46
webkit-commit-queue pushed a commit to rahimabdi/WebKit that referenced this pull request Aug 26, 2025
https://bugs.webkit.org/show_bug.cgi?id=296851
rdar://157952768

Reviewed by Tyler Wilcock and Ryosuke Niwa.

Adds 'status: developer' feature flag for enumerated ARIA attributes: w3c/aria#2484.

The ARIA spec intends to convert the following attributes to be enumerated, i.e., content attributes
with permissible keywords and invalid/missing value defaults:
- aria-atomic
- aria-autocomplete
- aria-busy
- aria-checked
- aria-current
- aria-disabled
- aria-expanded
- aria-haspopup
- aria-hidden
- aria-invalid
- aria-live
- aria-modal
- aria-multiline
- aria-multiselectable
- aria-orientation
- aria-pressed
- aria-readonly
- aria-required
- aria-selected
- aria-sort

This PR changes ARIA's IDL to use [ReflectSetter] for enumerated attributes in order to implement the desired reflection
behavior behind a flag using manual getters; this also allows maintaining current ARIA IDL behavior when the flag is disabled.
When ARIA PR WebKit#2484 lands, ARIA's IDL should be updated to use [Reflect, Enumerated] for automatic JS bindings codegen
that doesn't need manual code.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/accessibility/AriaAttributes.idl:
* Source/WebCore/dom/Element.h:
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::ariaAtomic const):
(WebCore::Element::ariaAutoComplete const):
(WebCore::Element::ariaBusy const):
(WebCore::Element::ariaChecked const):
(WebCore::Element::ariaCurrent const):
(WebCore::Element::ariaDisabled const):
(WebCore::Element::ariaExpanded const):
(WebCore::Element::ariaHasPopup const):
(WebCore::Element::ariaHidden const):
(WebCore::Element::ariaInvalid const):
(WebCore::Element::ariaLive const):
(WebCore::Element::ariaModal const):
(WebCore::Element::ariaMultiLine const):
(WebCore::Element::ariaMultiSelectable const):
(WebCore::Element::ariaOrientation const):
(WebCore::Element::ariaPressed const):
(WebCore::Element::ariaReadOnly const):
(WebCore::Element::ariaRequired const):
(WebCore::Element::ariaSelected const):
(WebCore::Element::ariaSort const):
* Tools/DumpRenderTree/TestOptions.cpp:
* Tools/WebKitTestRunner/TestOptions.cpp:

Canonical link: https://commits.webkit.org/299159@main
Jarred-Sumner pushed a commit to oven-sh/WebKit that referenced this pull request Aug 29, 2025
https://bugs.webkit.org/show_bug.cgi?id=296851
rdar://157952768

Reviewed by Tyler Wilcock and Ryosuke Niwa.

Adds 'status: developer' feature flag for enumerated ARIA attributes: w3c/aria#2484.

The ARIA spec intends to convert the following attributes to be enumerated, i.e., content attributes
with permissible keywords and invalid/missing value defaults:
- aria-atomic
- aria-autocomplete
- aria-busy
- aria-checked
- aria-current
- aria-disabled
- aria-expanded
- aria-haspopup
- aria-hidden
- aria-invalid
- aria-live
- aria-modal
- aria-multiline
- aria-multiselectable
- aria-orientation
- aria-pressed
- aria-readonly
- aria-required
- aria-selected
- aria-sort

This PR changes ARIA's IDL to use [ReflectSetter] for enumerated attributes in order to implement the desired reflection
behavior behind a flag using manual getters; this also allows maintaining current ARIA IDL behavior when the flag is disabled.
When ARIA PR WebKit#2484 lands, ARIA's IDL should be updated to use [Reflect, Enumerated] for automatic JS bindings codegen
that doesn't need manual code.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/accessibility/AriaAttributes.idl:
* Source/WebCore/dom/Element.h:
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::ariaAtomic const):
(WebCore::Element::ariaAutoComplete const):
(WebCore::Element::ariaBusy const):
(WebCore::Element::ariaChecked const):
(WebCore::Element::ariaCurrent const):
(WebCore::Element::ariaDisabled const):
(WebCore::Element::ariaExpanded const):
(WebCore::Element::ariaHasPopup const):
(WebCore::Element::ariaHidden const):
(WebCore::Element::ariaInvalid const):
(WebCore::Element::ariaLive const):
(WebCore::Element::ariaModal const):
(WebCore::Element::ariaMultiLine const):
(WebCore::Element::ariaMultiSelectable const):
(WebCore::Element::ariaOrientation const):
(WebCore::Element::ariaPressed const):
(WebCore::Element::ariaReadOnly const):
(WebCore::Element::ariaRequired const):
(WebCore::Element::ariaSelected const):
(WebCore::Element::ariaSort const):
* Tools/DumpRenderTree/TestOptions.cpp:
* Tools/WebKitTestRunner/TestOptions.cpp:

Canonical link: https://commits.webkit.org/299159@main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merging-blocked Applied to prevent a change from being merged New Bugs Unclassified bugs are placed in this component until the correct component can be determined.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants