Changeset 142152 in webkit


Ignore:
Timestamp:
Feb 7, 2013 10:48:39 AM (11 years ago)
Author:
robert@webkit.org
Message:

CSS 2.1 failure: floats-149 fails
https://bugs.webkit.org/show_bug.cgi?id=95772

Reviewed by David Hyatt.

Source/WebCore:

Treat inlines that contain nothing but empty inlines as empty too so that they get a linebox.

Tests: fast/inline/inline-with-empty-inline-children.html

css2.1/20110323/floats-149.htm

  • rendering/InlineIterator.h:

(WebCore::isEmptyInline):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Now that empty inlines get a linebox any out-of-flow
objects inside an empty inline (on a line that is otherwise empty) won't get positioned while skipping
through leading whitespace.

LayoutTests:

  • css2.1/20110323/floats-149-expected.html: Added.
  • css2.1/20110323/floats-149.htm: Added.
  • fast/inline/inline-with-empty-inline-children-expected.txt: Added.
  • fast/inline/inline-with-empty-inline-children.html: Added.
  • platform/chromium-win/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
Location:
trunk
Files:
4 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r142149 r142152  
     12013-01-27  Robert Hogan  <robert@webkit.org>
     2
     3        CSS 2.1 failure: floats-149 fails
     4        https://bugs.webkit.org/show_bug.cgi?id=95772
     5
     6        Reviewed by David Hyatt.
     7
     8        * css2.1/20110323/floats-149-expected.html: Added.
     9        * css2.1/20110323/floats-149.htm: Added.
     10        * fast/inline/inline-with-empty-inline-children-expected.txt: Added.
     11        * fast/inline/inline-with-empty-inline-children.html: Added.
     12        * platform/chromium-win/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
     13
    1142013-02-07  Max Vujovic  <mvujovic@adobe.com>
    215
  • trunk/LayoutTests/platform/chromium-win/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt

    r71592 r142152  
    108108          text run at (0,0) width 19 RTL: "\x{5D3}\x{5D4}\x{5D5}"
    109109          text run at (19,0) width 10: "(["
    110         RenderInline {SPAN} at (0,0) size 0x19
     110        RenderInline {SPAN} at (0,0) size 20x19
    111111          RenderInline {SPAN} at (0,0) size 0x19
    112112        RenderText {#text} at (29,0) size 20x19
  • trunk/LayoutTests/platform/efl/TestExpectations

    r142142 r142152  
    18671867webkit.org/b/108370 editing/spelling/spelling-with-underscore-selection.html [ Skip ]
    18681868webkit.org/b/108370 editing/spelling/spelling-with-whitespace-selection.html [ Skip ]
     1869
     1870# Rebaseline required after https://webkit.org/b/95772
     1871webkit.org/b/109209 fast/text/international/bidi-ignored-for-first-child-inline.html [ Failure ]
  • trunk/LayoutTests/platform/gtk/TestExpectations

    r142078 r142152  
    7575webkit.org/b/107567 editing/selection/extend-by-sentence-001.html [ Failure ]
    7676webkit.org/b/107567 svg/carto.net/combobox.svg [ Failure ]
     77
     78# Rebaseline required after https://webkit.org/b/95772
     79webkit.org/b/109209 fast/text/international/bidi-ignored-for-first-child-inline.html [ Failure ]
    7780#////////////////////////////////////////////////////////////////////////////////////////
    7881# Expected failures
  • trunk/LayoutTests/platform/mac/TestExpectations

    r142142 r142152  
    13321332webkit.org/b/108257 [ Debug ] compositing/overflow/composited-scrolling-creates-a-stacking-container.html [ Crash ]
    13331333webkit.org/b/108257 [ Debug ] compositing/overflow/automatically-opt-into-composited-scrolling.html [ Crash ]
     1334
     1335
     1336# Rebaseline required after https://webkit.org/b/95772
     1337webkit.org/b/109209 fast/text/international/bidi-ignored-for-first-child-inline.html [ Failure ]
  • trunk/LayoutTests/platform/qt/TestExpectations

    r142142 r142152  
    26182618webkit.org/b/91665 fast/dynamic/floating-to-non-floating.html [ Skip ]
    26192619webkit.org/b/91665 fast/dynamic/static-positioned-to-absolute-positioned.html [ Skip ]
     2620
     2621# Rebaseline required after https://webkit.org/b/95772
     2622webkit.org/b/109209 fast/text/international/bidi-ignored-for-first-child-inline.html [ Failure ]
  • trunk/Source/WebCore/ChangeLog

    r142151 r142152  
     12013-01-27  Robert Hogan  <robert@webkit.org>
     2
     3        CSS 2.1 failure: floats-149 fails
     4        https://bugs.webkit.org/show_bug.cgi?id=95772
     5
     6        Reviewed by David Hyatt.
     7
     8        Treat inlines that contain nothing but empty inlines as empty too so that they get a linebox.
     9
     10        Tests: fast/inline/inline-with-empty-inline-children.html
     11               css2.1/20110323/floats-149.htm
     12
     13        * rendering/InlineIterator.h:
     14        (WebCore::isEmptyInline):
     15        * rendering/RenderBlockLineLayout.cpp:
     16        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Now that empty inlines get a linebox any out-of-flow
     17        objects inside an empty inline (on a line that is otherwise empty) won't get positioned while skipping
     18        through leading whitespace.
     19
    1202013-02-07  peavo@outlook.com  <peavo@outlook.com>
    221
  • trunk/Source/WebCore/rendering/InlineIterator.h

    r140693 r142152  
    182182        return false;
    183183
    184     if (!object->firstChild())
    185         return true;
    186 
    187     return object->firstChild()->isText() && (object->firstChild() == object->lastChild()) && toRenderText(object->firstChild())->isAllCollapsibleWhitespace();
     184    for (RenderObject* curr = object->firstChild(); curr; curr = curr->nextSibling()) {
     185        if (curr->isFloatingOrOutOfFlowPositioned())
     186            continue;
     187        if (curr->isText() && toRenderText(curr)->isAllCollapsibleWhitespace())
     188            continue;
     189
     190        if (!isEmptyInline(curr))
     191            return false;
     192    }
     193    return true;
    188194}
    189195
  • trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp

    r141783 r142152  
    16171617                }
    16181618            }
    1619 
    1620             for (size_t i = 0; i < lineBreaker.positionedObjects().size(); ++i)
    1621                 setStaticPositions(this, lineBreaker.positionedObjects()[i]);
    1622 
     1619        }
     1620
     1621        for (size_t i = 0; i < lineBreaker.positionedObjects().size(); ++i)
     1622            setStaticPositions(this, lineBreaker.positionedObjects()[i]);
     1623
     1624        if (!layoutState.lineInfo().isEmpty()) {
    16231625            layoutState.lineInfo().setFirstLine(false);
    16241626            newLine(lineBreaker.clear());
Note: See TracChangeset for help on using the changeset viewer.