Title: [293217] trunk/Source/WebCore
- Revision
- 293217
- Author
- [email protected]
- Date
- 2022-04-22 05:02:18 -0700 (Fri, 22 Apr 2022)
Log Message
Bail out from text decoration computation if none is requested
https://bugs.webkit.org/show_bug.cgi?id=239641
Reviewed by Tim Nguyen.
* rendering/TextDecorationPainter.cpp:
(WebCore::collectStylesForRenderer):
Also avoid resolving colors unnecessarily.
(WebCore::TextDecorationPainter::stylesForRenderer):
* rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* rendering/style/RenderStyleConstants.h:
Remove unused 'None' value.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (293216 => 293217)
--- trunk/Source/WebCore/ChangeLog 2022-04-22 11:40:59 UTC (rev 293216)
+++ trunk/Source/WebCore/ChangeLog 2022-04-22 12:02:18 UTC (rev 293217)
@@ -1,3 +1,22 @@
+2022-04-22 Antti Koivisto <[email protected]>
+
+ Bail out from text decoration computation if none is requested
+ https://bugs.webkit.org/show_bug.cgi?id=239641
+
+ Reviewed by Tim Nguyen.
+
+ * rendering/TextDecorationPainter.cpp:
+ (WebCore::collectStylesForRenderer):
+
+ Also avoid resolving colors unnecessarily.
+
+ (WebCore::TextDecorationPainter::stylesForRenderer):
+ * rendering/style/RenderStyleConstants.cpp:
+ (WebCore::operator<<):
+ * rendering/style/RenderStyleConstants.h:
+
+ Remove unused 'None' value.
+
2022-04-22 Enrique Ocaña González <[email protected]>
[MSE] Improve SourceBuffer memory cost reporting
Modified: trunk/Source/WebCore/rendering/TextDecorationPainter.cpp (293216 => 293217)
--- trunk/Source/WebCore/rendering/TextDecorationPainter.cpp 2022-04-22 11:40:59 UTC (rev 293216)
+++ trunk/Source/WebCore/rendering/TextDecorationPainter.cpp 2022-04-22 12:02:18 UTC (rev 293217)
@@ -336,6 +336,9 @@
static void collectStylesForRenderer(TextDecorationPainter::Styles& result, const RenderObject& renderer, OptionSet<TextDecorationLine> remainingDecorations, bool firstLineStyle, PseudoId pseudoId)
{
auto extractDecorations = [&] (const RenderStyle& style, OptionSet<TextDecorationLine> decorations) {
+ if (decorations.isEmpty())
+ return;
+
auto color = TextDecorationPainter::decorationColor(style);
auto decorationStyle = style.textDecorationStyle();
@@ -354,7 +357,6 @@
result.linethroughColor = color;
result.linethroughStyle = decorationStyle;
}
-
};
auto styleForRenderer = [&] (const RenderObject& renderer) -> const RenderStyle& {
@@ -407,6 +409,9 @@
auto TextDecorationPainter::stylesForRenderer(const RenderObject& renderer, OptionSet<TextDecorationLine> requestedDecorations, bool firstLineStyle, PseudoId pseudoId) -> Styles
{
+ if (requestedDecorations.isEmpty())
+ return { };
+
Styles result;
collectStylesForRenderer(result, renderer, requestedDecorations, false, pseudoId);
if (firstLineStyle)
Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp (293216 => 293217)
--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp 2022-04-22 11:40:59 UTC (rev 293216)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp 2022-04-22 12:02:18 UTC (rev 293217)
@@ -1006,7 +1006,6 @@
TextStream& operator<<(TextStream& ts, TextDecorationLine line)
{
switch (line) {
- case TextDecorationLine::None: ts << "none"; break;
case TextDecorationLine::Underline: ts << "underline"; break;
case TextDecorationLine::Overline: ts << "overline"; break;
case TextDecorationLine::LineThrough: ts << "line-through"; break;
Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (293216 => 293217)
--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h 2022-04-22 11:40:59 UTC (rev 293216)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h 2022-04-22 12:02:18 UTC (rev 293217)
@@ -738,7 +738,6 @@
static const size_t TextDecorationLineBits = 4;
enum class TextDecorationLine : uint8_t {
- None = 0,
Underline = 1 << 0,
Overline = 1 << 1,
LineThrough = 1 << 2,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes