Ignore:
Timestamp:
Apr 26, 2022, 10:30:42 PM (3 years ago)
Author:
Antti Koivisto
Message:

::first-letter does not work if used only in shadow content
https://bugs.webkit.org/show_bug.cgi?id=220650
<rdar://problem/73477161>

Reviewed by Alan Bujtas.

Source/WebCore:

Test: fast/shadow-dom/shadow-first-line-and-letter.html

We were not setting usesFirstLetter/LinesRules bits if those pseudo-elements were used
only in shadow trees.

Fix by removing the bits. They don't seem to allow any valuable optimizations.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::verticalPositionForBox):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::lineHeight const):
(WebCore::RenderBlock::getFirstLetter):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectLayout const):
(WebCore::RenderInline::lineHeight const):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::lineHeight const):

  • rendering/RenderView.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
(WebCore::Style::TreeResolver::resolve):

LayoutTests:

Test case by [email protected].

  • fast/shadow-dom/shadow-first-line-and-letter-expected.html: Added.
  • fast/shadow-dom/shadow-first-line-and-letter.html: Added.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/rendering/RenderLineBreak.cpp

    r291548 r293497  
    6767LayoutUnit RenderLineBreak::lineHeight(bool firstLine, LineDirectionMode /*direction*/, LinePositionMode /*linePositionMode*/) const
    6868{
    69     if (firstLine && view().usesFirstLineRules()) {
     69    if (firstLine) {
    7070        const RenderStyle& firstLineStyle = this->firstLineStyle();
    7171        if (&firstLineStyle != &style())
Note: See TracChangeset for help on using the changeset viewer.