Changeset 87351 in webkit
- Timestamp:
- May 25, 2011 7:31:38 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r87350 r87351 1 2011-05-24 MORITA Hajime <morrita@google.com> 2 3 RenderText with empty text is not created inside ShadowContentElement 4 https://bugs.webkit.org/show_bug.cgi?id=61111 5 6 - Added tests that capture the probelem. 7 - Updated expectations that were wrong. 8 9 * fast/html/details-replace-summary-child.html: Added. 10 * fast/html/details-replace-text.html: Added. 11 * platform/gtk/fast/html/details-no-summary4-expected.txt: 12 * platform/gtk/fast/html/details-open-javascript-expected.txt: 13 * platform/gtk/fast/html/details-open4-expected.txt: 14 * platform/mac/fast/html/details-add-details-child-2-expected.txt: 15 * platform/mac/fast/html/details-no-summary4-expected.txt: 16 * platform/mac/fast/html/details-open-javascript-expected.txt: 17 * platform/mac/fast/html/details-open4-expected.txt: 18 * platform/mac/fast/html/details-replace-summary-child-expected.png: Added. 19 * platform/mac/fast/html/details-replace-summary-child-expected.txt: Added. 20 * platform/mac/fast/html/details-replace-text-expected.png: Added. 21 * platform/mac/fast/html/details-replace-text-expected.txt: Added. 22 * platform/qt/fast/html/details-no-summary4-expected.txt: 23 * platform/qt/fast/html/details-open-javascript-expected.txt: 24 * platform/qt/fast/html/details-open4-expected.txt: 25 1 26 2011-05-25 Adam Klein <adamk@chromium.org> 2 27 -
trunk/LayoutTests/platform/chromium/test_expectations.txt
r87350 r87351 4116 4116 BUGCR83683 : fast/dom/HTMLLinkElement/prerender.html = TEXT 4117 4117 4118 // Needs expectations 4119 BUGMORRITA : fast/html/details-replace-text.html = FAIL 4120 BUGMORRITA : fast/html/details-replace-summary-child.html = FAIL 4121 4118 4122 // Regression from webkit r87118 4119 4123 BUGWK61342 MAC : fast/repaint/fixed-move-after-keyboard-scroll.html = IMAGE+TEXT -
trunk/LayoutTests/platform/gtk/fast/html/details-no-summary4-expected.txt
r84677 r87351 11 11 RenderBlock (anonymous) at (0,19) size 784x29 12 12 RenderTextControl {INPUT} at (2,2) size 194x25 [bgcolor=#FFFFFF] [border: (2px inset #000000)] 13 RenderText {#text} at (0,0) size 0x014 13 layer at (13,32) size 188x19 15 14 RenderBlock {DIV} at (3,3) size 188x19 -
trunk/LayoutTests/platform/gtk/fast/html/details-open-javascript-expected.txt
r84677 r87351 11 11 RenderBlock (anonymous) at (0,19) size 784x29 12 12 RenderTextControl {INPUT} at (2,2) size 194x25 [bgcolor=#FFFFFF] [border: (2px inset #000000)] 13 RenderText {#text} at (0,0) size 0x014 13 RenderDetails {DETAILS} at (0,48) size 784x19 15 14 RenderSummary {SUMMARY} at (0,0) size 784x19 -
trunk/LayoutTests/platform/gtk/fast/html/details-open4-expected.txt
r84677 r87351 11 11 RenderBlock (anonymous) at (0,19) size 784x29 12 12 RenderTextControl {INPUT} at (2,2) size 194x25 [bgcolor=#FFFFFF] [border: (2px inset #000000)] 13 RenderText {#text} at (0,0) size 0x014 13 layer at (13,32) size 188x19 15 14 RenderBlock {DIV} at (3,3) size 188x19 -
trunk/LayoutTests/platform/mac/fast/html/details-add-details-child-2-expected.txt
r86521 r87351 14 14 RenderText {#text} at (0,0) size 142x18 15 15 text run at (0,0) width 142: "should have bold test" 16 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/platform/mac/fast/html/details-no-summary4-expected.txt
r84632 r87351 11 11 RenderBlock (anonymous) at (0,18) size 784x23 12 12 RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] 13 RenderText {#text} at (0,0) size 0x014 13 layer at (13,31) size 119x13 15 14 RenderBlock {DIV} at (3,3) size 119x13 -
trunk/LayoutTests/platform/mac/fast/html/details-open-javascript-expected.txt
r84632 r87351 11 11 RenderBlock (anonymous) at (0,18) size 784x23 12 12 RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] 13 RenderText {#text} at (0,0) size 0x014 13 RenderDetails {DETAILS} at (0,41) size 784x18 15 14 RenderSummary {SUMMARY} at (0,0) size 784x18 -
trunk/LayoutTests/platform/mac/fast/html/details-open4-expected.txt
r84632 r87351 11 11 RenderBlock (anonymous) at (0,18) size 784x23 12 12 RenderTextControl {INPUT} at (2,2) size 125x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)] 13 RenderText {#text} at (0,0) size 0x014 13 layer at (13,31) size 119x13 15 14 RenderBlock {DIV} at (3,3) size 119x13 -
trunk/LayoutTests/platform/qt/fast/html/details-no-summary4-expected.txt
r84673 r87351 11 11 RenderBlock (anonymous) at (0,22) size 784x30 12 12 RenderTextControl {INPUT} at (2,2) size 166x26 13 RenderText {#text} at (0,0) size 0x014 13 layer at (12,34) size 162x22 15 14 RenderBlock {DIV} at (2,2) size 162x22 -
trunk/LayoutTests/platform/qt/fast/html/details-open-javascript-expected.txt
r84673 r87351 11 11 RenderBlock (anonymous) at (0,22) size 784x30 12 12 RenderTextControl {INPUT} at (2,2) size 166x26 13 RenderText {#text} at (0,0) size 0x014 13 RenderDetails {DETAILS} at (0,52) size 784x22 15 14 RenderSummary {SUMMARY} at (0,0) size 784x22 -
trunk/LayoutTests/platform/qt/fast/html/details-open4-expected.txt
r84673 r87351 11 11 RenderBlock (anonymous) at (0,22) size 784x30 12 12 RenderTextControl {INPUT} at (2,2) size 166x26 13 RenderText {#text} at (0,0) size 0x014 13 layer at (12,34) size 162x22 15 14 RenderBlock {DIV} at (2,2) size 162x22 -
trunk/Source/WebCore/ChangeLog
r87347 r87351 1 2011-05-24 MORITA Hajime <morrita@google.com> 2 3 Reviewed by Dimitri Glazkov. 4 5 RenderText with empty text is not created inside ShadowContentElement 6 https://bugs.webkit.org/show_bug.cgi?id=61111 7 8 - Changed Text::rendererIsNeeded() to be shadow-aware. 9 - previousRenderer(), nextRenderer() and parentRenderer() on NodeRenderingContext is now 10 safe even if it's used with an attached node, which was originally used only during attach(). 11 We need this change because these APIs are called inside CharacterData::updateRenderer() callstack. 12 13 Tests: fast/html/details-replace-summary-child.html 14 fast/html/details-replace-text.html 15 16 * dom/NodeRenderingContext.cpp: 17 (WebCore::NodeRenderingContext::NodeRenderingContext): 18 (WebCore::NodeRenderingContext::nextRenderer): 19 (WebCore::NodeRenderingContext::previousRenderer): 20 (WebCore::NodeRenderingContext::parentRenderer): 21 (WebCore::NodeRenderingContext::shouldCreateRenderer): 22 * dom/NodeRenderingContext.h: 23 (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle): 24 * dom/Text.cpp: 25 (WebCore::Text::rendererIsNeeded): 26 1 27 2011-05-25 Sailesh Agrawal <sail@chromium.org> 2 28 -
trunk/Source/WebCore/dom/NodeRenderingContext.cpp
r87125 r87351 75 75 76 76 NodeRenderingContext::NodeRenderingContext(Node* node, RenderStyle* style) 77 : m_location(Location NotInTree)77 : m_location(LocationUndetermined) 78 78 , m_phase(AttachStraight) 79 79 , m_node(node) … … 100 100 RenderObject* NodeRenderingContext::nextRenderer() const 101 101 { 102 if (RenderObject* renderer = m_node->renderer()) { 103 ASSERT(m_location == LocationUndetermined); 104 return renderer->nextSibling(); 105 } 106 107 ASSERT(m_location != LocationUndetermined); 108 102 109 if (m_phase != AttachContentForwarded) 103 110 return m_node->nextRenderer(); … … 108 115 } 109 116 117 RenderObject* NodeRenderingContext::previousRenderer() const 118 { 119 if (RenderObject* renderer = m_node->renderer()) { 120 ASSERT(m_location == LocationUndetermined); 121 return renderer->previousSibling(); 122 } 123 124 ASSERT(m_location != LocationUndetermined); 125 126 if (m_phase != AttachContentForwarded) 127 return m_node->previousRenderer(); 128 // Returns lastChild() here to insert renderer at the end of child list. 129 // We assume content children are always attached in tree order and 130 // there is no partial render tree creation. 131 if (RenderObject* parent = parentRenderer()) 132 return parent->lastChild(); 133 return 0; 134 } 135 110 136 RenderObject* NodeRenderingContext::parentRenderer() const 111 137 { 112 return m_parentNodeForRenderingAndStyle->renderer(); 138 if (RenderObject* renderer = m_node->renderer()) { 139 ASSERT(m_location == LocationUndetermined); 140 return renderer->parent(); 141 } 142 143 ASSERT(m_location != LocationUndetermined); 144 return m_parentNodeForRenderingAndStyle ? m_parentNodeForRenderingAndStyle->renderer() : 0; 113 145 } 114 146 … … 121 153 bool NodeRenderingContext::shouldCreateRenderer() const 122 154 { 155 ASSERT(m_location != LocationUndetermined); 123 156 ASSERT(parentNodeForRenderingAndStyle()); 124 157 … … 198 231 Node* node = m_context.node(); 199 232 Document* document = node->document(); 200 201 233 if (!document->shouldCreateRenderers()) 202 234 return; 203 235 236 RenderObject* parentRenderer = m_context.parentRenderer(); 237 RenderObject* nextRenderer = m_context.nextRenderer(); 204 238 RenderObject* newRenderer = createRendererAndStyle(); 205 239 … … 216 250 217 251 // Note: Adding newRenderer instead of renderer(). renderer() may be a child of newRenderer. 218 m_context.parentRenderer()->addChild(newRenderer, m_context.nextRenderer());219 } 220 221 } 252 parentRenderer->addChild(newRenderer, nextRenderer); 253 } 254 255 } -
trunk/Source/WebCore/dom/NodeRenderingContext.h
r87125 r87351 49 49 RenderObject* parentRenderer() const; 50 50 RenderObject* nextRenderer() const; 51 RenderObject* previousRenderer() const; 51 52 52 53 RenderStyle* style() const; … … 59 60 60 61 private: 62 61 63 enum TreeLocation { 64 LocationUndetermined, 62 65 LocationNotInTree, 63 66 LocationLightChild, … … 86 89 inline ContainerNode* NodeRenderingContext::parentNodeForRenderingAndStyle() const 87 90 { 91 ASSERT(m_location != LocationUndetermined); 88 92 return m_parentNodeForRenderingAndStyle; 89 93 } … … 93 97 return m_style.get(); 94 98 } 95 96 99 97 100 class NodeRendererFactory { -
trunk/Source/WebCore/dom/Text.cpp
r87125 r87351 200 200 return true; 201 201 202 RenderObject *par = parentNode()->renderer(); 203 202 RenderObject* par = context.parentRenderer(); 204 203 if (par->isTable() || par->isTableRow() || par->isTableSection() || par->isTableCol() || par->isFrameSet()) 205 204 return false; … … 208 207 return true; 209 208 210 RenderObject *prev =previousRenderer();209 RenderObject* prev = context.previousRenderer(); 211 210 if (prev && prev->isBR()) // <span><br/> <br/></span> 212 211 return false; … … 220 219 return false; 221 220 222 RenderObject *first = par->firstChild();221 RenderObject* first = par->firstChild(); 223 222 while (first && first->isFloatingOrPositioned()) 224 223 first = first->nextSibling(); 225 RenderObject *next =nextRenderer();224 RenderObject* next = context.nextRenderer(); 226 225 if (!first || next == first) 227 226 // Whitespace at the start of a block just goes away. Don't even
Note: See TracChangeset
for help on using the changeset viewer.