[webkit-changes] [WebKit/WebKit] 217906: Update counters at the end of render tree update
Antti Koivisto
noreply at github.com
Wed Apr 19 02:15:02 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 21790649ca108abfa081988c5c8de0ec8cec7c1e
https://github.com/WebKit/WebKit/commit/21790649ca108abfa081988c5c8de0ec8cec7c1e
Author: Antti Koivisto <antti at apple.com>
Date: 2023-04-19 (Wed, 19 Apr 2023)
Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/platform/mac-ventura-wk2/imported/w3c/web-platform-tests/css/css-cascade/layer-counter-style-override-expected.txt
M Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp
M Source/WebCore/rendering/CounterNode.cpp
M Source/WebCore/rendering/LegacyLineLayout.cpp
M Source/WebCore/rendering/RenderBlockFlow.cpp
M Source/WebCore/rendering/RenderCounter.cpp
M Source/WebCore/rendering/RenderCounter.h
M Source/WebCore/rendering/RenderView.cpp
M Source/WebCore/rendering/RenderView.h
M Source/WebCore/rendering/line/BreakingContext.h
M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.h
Log Message:
-----------
Update counters at the end of render tree update
https://bugs.webkit.org/show_bug.cgi?id=255589
rdar://108189324
Reviewed by Alan Baradlay.
Simplify counter updating by doing it in a single place at the end of render tree update.
* Source/WebCore/layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::createLayoutBox):
Remove layout-time update code from here and elsewhere.
* Source/WebCore/rendering/CounterNode.cpp:
(WebCore::CounterNode::resetRenderers):
Invalidate by adding the counter to a weak map.
* Source/WebCore/rendering/LegacyLineLayout.cpp:
(WebCore::dirtyLineBoxesForRenderer):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
* Source/WebCore/rendering/RenderCounter.cpp:
(WebCore::RenderCounter::RenderCounter):
(WebCore::RenderCounter::willBeDestroyed):
(WebCore::RenderCounter::originalText const):
Just generate the text here.
(WebCore::RenderCounter::updateCounter):
Use setText instead of setRenderedText so we get correct layout invalidation for free.
(WebCore::RenderCounter::computePreferredLogicalWidths): Deleted.
Updating counters is no longer tied to preferred width updates.
* Source/WebCore/rendering/RenderCounter.h:
* Source/WebCore/rendering/RenderCounter.cpp:
(WebCore::RenderCounter::rendererRemovedFromTree): Deleted.
(WebCore::updateCounters): Deleted.
(WebCore::RenderCounter::rendererSubtreeAttached): Deleted.
No need for these tree-traversing move paths anymore. Counters get recomputed using the normal update paths.
* Source/WebCore/rendering/RenderView.cpp:
(WebCore::RenderView::addCounterNeedingUpdate):
(WebCore::RenderView::takeCountersNeedingUpdate):
Track counters that need updating. This replaces the use preferred logical width bit.
* Source/WebCore/rendering/RenderView.h:
* Source/WebCore/rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):
(WebCore::updateCounterIfNeeded): Deleted.
* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::commit):
* Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::detachFromRenderElement):
* Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updateCounters):
Do The actual updating.
* Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.h:
Canonical link: https://commits.webkit.org/263127@main
More information about the webkit-changes
mailing list