Branch: refs/heads/webkitglib/2.44
Home: https://github.com/WebKit/WebKit
Commit: 00ffde40dfc59c157170922f6c876b08fa3e0bc6
https://github.com/WebKit/WebKit/commit/00ffde40dfc59c157170922f6c876b08fa3e0bc6
Author: Ahmad Saleem <[email protected]>
Date: 2024-09-04 (Wed, 04 Sep 2024)
Changed paths:
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayerModelObject.cpp
Log Message:
-----------
Cherry-pick 281307@main (52ae7a91d2f1).
https://bugs.webkit.org/show_bug.cgi?id=276996
destroyLayer() should call setHasLayer(false)
https://bugs.webkit.org/show_bug.cgi?id=276996
Reviewed by Simon Fraser.
Merge:
https://github.com/chromium/chromium/commit/515b887cc764eff0fd976bf60efd6dd6fd099ec5
This change synchronize clearing the layer and calling setHasLayer.
The old code would dissociate the two operations to handle clean-ups
during RenderLayer::removeOnlyThisLayer. The dissociation was
introduced to handle bug 25252 (33539@main)
and Eric wasn't sure at the time it was the right solution.
Based on the fact that the tests are still passing, it wasn't.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::removeOnlyThisLayer):
* Source/WebCore/rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::willBeDestroyed):
(WebCore::RenderLayerModelObject::destroyLayer):
Canonical link: https://commits.webkit.org/281307@main
Canonical link: https://commits.webkit.org/274313.414@webkitglib/2.44
Commit: b098c860ae82c7f508639b1246dea6ecd949fdda
https://github.com/WebKit/WebKit/commit/b098c860ae82c7f508639b1246dea6ecd949fdda
Author: Tyler Wilcock <[email protected]>
Date: 2024-09-04 (Wed, 04 Sep 2024)
Changed paths:
A
LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang-expected.txt
A
LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang.html
A
LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang-expected.txt
A
LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang.html
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/ios/TestExpectations
A
LayoutTests/platform/ios/accessibility/mixed-contenteditable-double-br-visible-character-range-hang-expected.txt
A
LayoutTests/platform/ios/accessibility/mixed-contenteditable-visible-character-range-hang-expected.txt
M LayoutTests/platform/mac-wk1/TestExpectations
M Source/WebCore/accessibility/AccessibilityObject.cpp
Log Message:
-----------
Cherry-pick 281089@main (4b84c3ea8c26).
https://bugs.webkit.org/show_bug.cgi?id=276656
AX: WebCore::endOfLine can return the same position it started with,
causing an infinite loop when iterating over
`AccessibilityObject::nextLineEndPosition`s
https://bugs.webkit.org/show_bug.cgi?id=276656
rdar://131837344
Reviewed by Andres Gonzalez.
In `WebCore::endOfLine(const VisiblePosition& input)`, the input position
is taken, and an `endPositionForLine` is
computed. It then checks to ensure that `inSameLine(input, computedEnd)`,
and if not, it walks `previous()` one position
from `input` and gets the `endPositionForLine` of that position.
This all makes sense on the surface. `endOfLine`s job is to find the end
position of the line `input` belongs to. The
problem is that `inSameLine` does not arguably work intuitively — it
returns false if position A is editable, while
position B is not, even if they are rendered on the same line.
This mixed editability is present in markup on Google Docs documents:
<span class="text-style">Line of text</span><span contenteditable="false">
<br role="presentation"/></span>
There is a single space character before the br element, and if that
position is compared with any earlier one,
`inSameLine` will return false.
I did try passing a flag through to `isSameLine` that ignored this
editability requirement, but there are other ways
to trigger this behavior too, so the bug persisted. Instead, I've made
nextLineEndPosition resilient to this issue
by looping until we have moved off the start position.
Two testcases added — these hang indefinitely without the changes in this
commit.
*
LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang-expected.txt:
Added.
*
LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang.html:
Added.
*
LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang-expected.txt:
Added.
*
LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang.html:
Added.
* LayoutTests/platform/glib/TestExpectations: Disable new tests.
* LayoutTests/platform/ios/TestExpectations: Enable new tests.
*
LayoutTests/platform/ios/accessibility/mixed-contenteditable-double-br-visible-character-range-hang-expected.txt:
Added.
*
LayoutTests/platform/ios/accessibility/mixed-contenteditable-visible-character-range-hang-expected.txt:
Added.
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::nextLineEndPosition const):
Canonical link: https://commits.webkit.org/281089@main
Canonical link: https://commits.webkit.org/274313.415@webkitglib/2.44
Commit: 2d09b43768b70c0c2af2ef58796d8009ad7d16c2
https://github.com/WebKit/WebKit/commit/2d09b43768b70c0c2af2ef58796d8009ad7d16c2
Author: Simon Fraser <[email protected]>
Date: 2024-09-04 (Wed, 04 Sep 2024)
Changed paths:
M Source/WebCore/rendering/ImageQualityController.cpp
M Source/WebCore/rendering/ImageQualityController.h
Log Message:
-----------
Cherry-pick 280872@main (42d62602b564).
https://bugs.webkit.org/show_bug.cgi?id=276347
ImageQualityController thrashes a timer
https://bugs.webkit.org/show_bug.cgi?id=276347
rdar://131352675
Reviewed by Tim Horton.
For content with lots of images,
`ImageQualityController::chooseInterpolationQuality()` is called each time
an image paints and potentially restarts a timer. Use a
DeferrableOneShotTimer instead, which is designed
for this kind of use case.
Also do some other minor optimizations; only call
`context.getCTM().isIdentityOrTranslationOrFlipped()` if we need to,
and only set a new value in the hash tables if the size changed.
* Source/WebCore/rendering/ImageQualityController.cpp:
(WebCore::ImageQualityController::ImageQualityController):
(WebCore::ImageQualityController::restartTimer):
* Source/WebCore/rendering/ImageQualityController.h:
Canonical link: https://commits.webkit.org/280872@main
Canonical link: https://commits.webkit.org/274313.416@webkitglib/2.44
Compare: https://github.com/WebKit/WebKit/compare/5f48d180c1b7...2d09b43768b7
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes