Changeset 128713 in webkit


Ignore:
Timestamp:
Sep 16, 2012 4:36:41 PM (12 years ago)
Author:
mitz@apple.com
Message:

REGRESSION (r126763): css1/pseudo/firstline.html fails when using the complex text code path
https://bugs.webkit.org/show_bug.cgi?id=96890

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/text/stale-TextLayout-from-first-line.html

When a first-line style specifies a font, different pieces of the same RednerText can be
laid out using different fonts, requiring a differet TextLayout for each piece.

  • rendering/RenderBlock.h:

(RenderTextInfo): Added m_font data member.

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlock::RenderTextInfo::RenderTextInfo): Added initializer for new data member.
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Added code to update the text layout in
renderTextInfo if the font has changed.

LayoutTests:

  • fast/text/stale-TextLayout-from-first-line-expected.html: Added.
  • fast/text/stale-TextLayout-from-first-line.html: Added.
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r128711 r128713  
     12012-09-16  Dan Bernstein  <mitz@apple.com>
     2
     3        REGRESSION (r126763): css1/pseudo/firstline.html fails when using the complex text code path
     4        https://bugs.webkit.org/show_bug.cgi?id=96890
     5
     6        Reviewed by Sam Weinig.
     7
     8        * fast/text/stale-TextLayout-from-first-line-expected.html: Added.
     9        * fast/text/stale-TextLayout-from-first-line.html: Added.
     10
    1112012-09-16  Christophe Dumez  <christophe.dumez@intel.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r128712 r128713  
     12012-09-16  Dan Bernstein  <mitz@apple.com>
     2
     3        REGRESSION (r126763): css1/pseudo/firstline.html fails when using the complex text code path
     4        https://bugs.webkit.org/show_bug.cgi?id=96890
     5
     6        Reviewed by Sam Weinig.
     7
     8        Test: fast/text/stale-TextLayout-from-first-line.html
     9
     10        When a first-line style specifies a font, different pieces of the same RednerText can be
     11        laid out using different fonts, requiring a differet TextLayout for each piece.
     12
     13        * rendering/RenderBlock.h:
     14        (RenderTextInfo): Added m_font data member.
     15        * rendering/RenderBlockLineLayout.cpp:
     16        (WebCore::RenderBlock::RenderTextInfo::RenderTextInfo): Added initializer for new data member.
     17        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Added code to update the text layout in
     18        renderTextInfo if the font has changed.
     19
    1202012-09-16  Kalev Lember  <kalevlember@gmail.com>
    221
  • trunk/Source/WebCore/rendering/RenderBlock.h

    r128110 r128713  
    716716        OwnPtr<TextLayout> m_layout;
    717717        LazyLineBreakIterator m_lineBreakIterator;
     718        const Font* m_font;
    718719    };
    719720
  • trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp

    r128346 r128713  
    12761276RenderBlock::RenderTextInfo::RenderTextInfo()
    12771277    : m_text(0)
     1278    , m_font(0)
    12781279{
    12791280}
     
    24372438                t->updateTextIfNeeded();
    24382439                renderTextInfo.m_text = t;
     2440                renderTextInfo.m_font = &f;
    24392441                renderTextInfo.m_layout = f.createLayout(t, width.currentWidth(), collapseWhiteSpace);
    24402442                renderTextInfo.m_lineBreakIterator.reset(t->characters(), t->textLength(), style->locale());
    2441             }
     2443            } else if (renderTextInfo.m_layout && renderTextInfo.m_font != &f) {
     2444                renderTextInfo.m_font = &f;
     2445                renderTextInfo.m_layout = f.createLayout(t, width.currentWidth(), collapseWhiteSpace);
     2446            }
     2447
    24422448            TextLayout* textLayout = renderTextInfo.m_layout.get();
    24432449
Note: See TracChangeset for help on using the changeset viewer.