Branch: refs/heads/webkitglib/2.52
Home: https://github.com/WebKit/WebKit
Commit: c71a008ed50d6d3564313c27fe479bbd5687a62a
https://github.com/WebKit/WebKit/commit/c71a008ed50d6d3564313c27fe479bbd5687a62a
Author: Nipun Shukla <[email protected]>
Date: 2026-03-13 (Fri, 13 Mar 2026)
Changed paths:
A PerformanceTests/Parser/pending-text-buffer-parser.html
M Source/WebCore/dom/CharacterData.cpp
M Source/WebCore/dom/CharacterData.h
M Source/WebCore/html/parser/HTMLConstructionSite.cpp
M Source/WebCore/html/parser/HTMLConstructionSite.h
M Source/WebCore/xml/parser/XMLDocumentParser.cpp
Log Message:
-----------
Cherry-pick 308781@main (3ce7856bc424).
https://bugs.webkit.org/show_bug.cgi?id=308852
WebKit is slow at opening very big HTML files
https://bugs.webkit.org/show_bug.cgi?id=308852
rdar://144245503
Reviewed by Ryosuke Niwa.
CharacterData::parserAppendData() previously called makeString() on
every chunk the HTML parser received, which copies all previously
accumulated text on each receipt, making total work occur in
polynomial time O(n^2) for large text nodes.
This change makes parserAppendData() take a StringBuilder&, which lives
in HTMLConstructionSite that is lazily heap allocated before the first
parserAppendData() call, avoiding polynomial time complexity via
StringBuilder's exponential growth. This StringBuilder is only
created when text nodes are split across multiple chunks.
The included microbenchmark is progressed from ~240 ms/run to ~110 ms/run.
This patch does not cause any behavior change.
* PerformanceTests/Parser/pending-text-buffer-parser.html: Added.
* Source/WebCore/dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
* Source/WebCore/dom/CharacterData.h:
* Source/WebCore/html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::finishedParsing):
(WebCore::HTMLConstructionSite::insertTextNode):
* Source/WebCore/html/parser/HTMLConstructionSite.h:
* Source/WebCore/xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::updateLeafTextNode):
Canonical link: https://commits.webkit.org/308781@main
Canonical link: https://commits.webkit.org/305877.196@webkitglib/2.52
Commit: a16b7df085ac144d818d7453c098aab89ce6912f
https://github.com/WebKit/WebKit/commit/a16b7df085ac144d818d7453c098aab89ce6912f
Author: Karl Dubost <[email protected]>
Date: 2026-03-13 (Fri, 13 Mar 2026)
Changed paths:
A LayoutTests/fast/css/hotels-animation-quirk-expected.txt
A LayoutTests/fast/css/hotels-animation-quirk.html
M Source/WebCore/style/StyleAdjuster.cpp
Log Message:
-----------
Cherry-pick 308678@main (381ad0cbb2cd).
https://bugs.webkit.org/show_bug.cgi?id=308116
Adjust Quirks for hotels.com to remove the flickering
https://bugs.webkit.org/show_bug.cgi?id=308116
rdar://170331800
Reviewed by Brandon Stewart, Antoine Quint, and Sam Weinig.
The previous quirk stopped working, but the markup and CSS do not seem
to have changed at all. This is another strategy to make it work. The
flickering doesn't happen.
* LayoutTests/fast/css/hotels-animation-quirk.html: Added
Test for making sure any future changes will not break this quirk.
* LayoutTests/fast/css/hotels-animation-quirk-expected.txt: Added.
* Source/WebCore/page/Quirks.cpp:
(WebCore::Quirks::needsHotelsAnimationQuirk const):
* Source/WebCore/style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):
Canonical link: https://commits.webkit.org/308678@main
Canonical link: https://commits.webkit.org/305877.197@webkitglib/2.52
Compare: https://github.com/WebKit/WebKit/compare/619df758c4c6...a16b7df085ac
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications