Changeset 81807 in webkit
- Timestamp:
- Mar 23, 2011 2:27:00 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r81806 r81807 1 2011-03-23 Xiaomei Ji <xji@chromium.org> 2 3 Reviewed by David Hyatt. 4 5 Preserve unicode-bidi:bidi-override in anonymous block. 6 https://bugs.webkit.org/show_bug.cgi?id=21440 7 8 * fast/css/bidi-override-in-anonymous-block.html: Added. 9 * platform/mac/fast/css/bidi-override-in-anonymous-block-expected.txt: Added. 10 1 11 2011-03-23 Mihai Parparita <mihaip@chromium.org> 2 12 -
trunk/Source/WebCore/ChangeLog
r81802 r81807 1 2011-03-23 Xiaomei Ji <xji@chromium.org> 2 3 Reviewed by David Hyatt. 4 5 Preserve unicode-bidi:bidi-override in anonymous block. 6 https://bugs.webkit.org/show_bug.cgi?id=21440 7 8 unicode-bidi:bidi-override should be preserved in anonymous block 9 according to http://www.w3.org/TR/CSS21/visuren.html#propdef-unicode-bidi. 10 11 Introduce a helper function RenderStyle()::createAnonymousStyle() which 12 creates a default RenderStyle, inherits the inherited style from parent, 13 and inherit unicode-bidi:bidi-override from parent. 14 And replace the style creation when anonymous block is created. 15 16 Note: the TABLE releated anonymous blocks are untouched, including: 17 TABLE, TABLE_CELL, TABLE_ROW, TABLE_ROW_GROUP anonymous blocks created in 18 RenderObject, RenderTable, RenderTableRow, and RenderTableSection, 19 due to the expected behavior is not clear. 20 Please refer to https://bugs.webkit.org/show_bug.cgi?id=56594. 21 22 Test: fast/css/bidi-override-in-anonymous-block.html 23 24 * rendering/RenderBlock.cpp: 25 (WebCore::RenderBlock::styleDidChange): 26 (WebCore::RenderBlock::removeChild): 27 (WebCore::RenderBlock::createAnonymousBlock): 28 (WebCore::RenderBlock::createAnonymousColumnsBlock): 29 (WebCore::RenderBlock::createAnonymousColumnSpanBlock): 30 * rendering/RenderInline.cpp: 31 (WebCore::RenderInline::addChildIgnoringContinuation): 32 * rendering/RenderRubyRun.cpp: 33 (WebCore::RenderRubyRun::createRubyBase): 34 (WebCore::RenderRubyRun::staticCreateRubyRun): 35 * rendering/style/RenderStyle.cpp: 36 (WebCore::RenderStyle::createAnonymousStyle): 37 * rendering/style/RenderStyle.h: 38 1 39 2011-03-23 David Hyatt <hyatt@apple.com> 2 40 -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r81802 r81807 241 241 for (RenderObject* child = firstChild(); child; child = child->nextSibling()) { 242 242 if (child->isAnonymousBlock()) { 243 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 244 newStyle->inheritFrom(style()); 243 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); 245 244 if (style()->specifiesColumns()) { 246 245 if (child->style()->specifiesColumns()) … … 977 976 // column span flag if it is set. 978 977 ASSERT(!inlineChildrenBlock->continuation()); 979 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 980 newStyle->inheritFrom(style()); 978 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); 981 979 children()->removeChildNode(this, inlineChildrenBlock, inlineChildrenBlock->hasLayer()); 982 980 inlineChildrenBlock->setStyle(newStyle); … … 5911 5909 RenderBlock* RenderBlock::createAnonymousBlock(bool isFlexibleBox) const 5912 5910 { 5913 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 5914 newStyle->inheritFrom(style()); 5911 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); 5915 5912 5916 5913 RenderBlock* newBox = 0; … … 5938 5935 RenderBlock* RenderBlock::createAnonymousColumnsBlock() const 5939 5936 { 5940 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 5941 newStyle->inheritFrom(style()); 5937 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); 5942 5938 newStyle->inheritColumnPropertiesFrom(style()); 5943 5939 newStyle->setDisplay(BLOCK); … … 5950 5946 RenderBlock* RenderBlock::createAnonymousColumnSpanBlock() const 5951 5947 { 5952 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 5953 newStyle->inheritFrom(style()); 5948 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); 5954 5949 newStyle->setColumnSpan(true); 5955 5950 newStyle->setDisplay(BLOCK); -
trunk/Source/WebCore/rendering/RenderInline.cpp
r81684 r81807 202 202 // |newChild|. We then make that block box a continuation of this inline. We take all of 203 203 // the children after |beforeChild| and put them in a clone of this object. 204 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 205 newStyle->inheritFrom(style()); 204 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); 206 205 newStyle->setDisplay(BLOCK); 207 206 -
trunk/Source/WebCore/rendering/RenderRubyRun.cpp
r79629 r81807 195 195 { 196 196 RenderRubyBase* rb = new (renderArena()) RenderRubyBase(document() /* anonymous */); 197 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 198 newStyle->inheritFrom(style()); 197 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(style()); 199 198 newStyle->setDisplay(BLOCK); 200 199 newStyle->setTextAlign(CENTER); // FIXME: use WEBKIT_CENTER? … … 207 206 ASSERT(parentRuby && parentRuby->isRuby()); 208 207 RenderRubyRun* rr = new (parentRuby->renderArena()) RenderRubyRun(parentRuby->document() /* anonymous */); 209 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 210 newStyle->inheritFrom(parentRuby->style()); 208 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyle(parentRuby->style()); 211 209 newStyle->setDisplay(INLINE_BLOCK); 212 210 rr->setStyle(newStyle.release()); -
trunk/Source/WebCore/rendering/style/RenderStyle.cpp
r81802 r81807 55 55 { 56 56 return adoptRef(new RenderStyle(true)); 57 } 58 59 PassRefPtr<RenderStyle> RenderStyle::createAnonymousStyle(const RenderStyle* parentStyle) 60 { 61 RefPtr<RenderStyle> newStyle = RenderStyle::create(); 62 newStyle->inheritFrom(parentStyle); 63 newStyle->inheritUnicodeBidiFrom(parentStyle); 64 return newStyle; 57 65 } 58 66 -
trunk/Source/WebCore/rendering/style/RenderStyle.h
r81684 r81807 314 314 static PassRefPtr<RenderStyle> create(); 315 315 static PassRefPtr<RenderStyle> createDefaultStyle(); 316 static PassRefPtr<RenderStyle> createAnonymousStyle(const RenderStyle* parentStyle); 316 317 static PassRefPtr<RenderStyle> clone(const RenderStyle*); 317 318 … … 1323 1324 1324 1325 private: 1326 void inheritUnicodeBidiFrom(const RenderStyle* parent) { noninherited_flags._unicodeBidi = parent->noninherited_flags._unicodeBidi; } 1325 1327 void getShadowExtent(const ShadowData*, int& top, int& right, int& bottom, int& left) const; 1326 1328 void getShadowHorizontalExtent(const ShadowData*, int& left, int& right) const;
Note: See TracChangeset
for help on using the changeset viewer.