From 0564c12f54f1c4ffd4ddb5a438fffb58b83820b8 Mon Sep 17 00:00:00 2001 From: "mitz@apple.com" Date: Fri, 30 Sep 2011 21:36:57 +0000 Subject: [PATCH] first-letter in generated before content with display: table is not updated Reviewed by Sam Weinig. Source/WebCore: Test: fast/css-generated-content/first-letter-in-nested-before.html * rendering/RenderObjectChildList.cpp: (WebCore::RenderObjectChildList::updateBeforeAfterContent): Preserve the style type of anonymous containers around the generated content when updating their style. This preserves the first-letter-ness of the inline wrapping the first letter, which allows updateFirstLetter() to identify it later. LayoutTests: * fast/css-generated-content/first-letter-in-nested-before-expected.png: Added. * fast/css-generated-content/first-letter-in-nested-before-expected.txt: Added. * fast/css-generated-content/first-letter-in-nested-before.html: Added. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@96427 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- LayoutTests/ChangeLog | 10 ++++++++++ .../first-letter-in-nested-before-expected.png | Bin 0 -> 11389 bytes .../first-letter-in-nested-before-expected.txt | 17 +++++++++++++++++ .../first-letter-in-nested-before.html | 13 +++++++++++++ Source/WebCore/ChangeLog | 13 +++++++++++++ Source/WebCore/rendering/RenderObjectChildList.cpp | 1 + Source/WebCore/rendering/RenderView.cpp | 4 ++++ 7 files changed, 58 insertions(+) create mode 100644 LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.png create mode 100644 LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.txt create mode 100644 LayoutTests/fast/css-generated-content/first-letter-in-nested-before.html diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index 7c76356..5bfd34f 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,13 @@ +2011-09-30 Dan Bernstein + + first-letter in generated before content with display: table is not updated + + Reviewed by Sam Weinig. + + * fast/css-generated-content/first-letter-in-nested-before-expected.png: Added. + * fast/css-generated-content/first-letter-in-nested-before-expected.txt: Added. + * fast/css-generated-content/first-letter-in-nested-before.html: Added. + 2011-09-30 David Hyatt https://bugs.webkit.org/show_bug.cgi?id=69167 diff --git a/LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.png b/LayoutTests/fast/css-generated-content/first-letter-in-nested-before-expected.png new file mode 100644 index 0000000000000000000000000000000000000000..6835cd5a7d9a7be266316f1b8673eea9a62bd852 GIT binary patch literal 11389 zcmeHN`BxKH6rKqY0t5+*EXskARTNPOK|!U%RzQ$NP+2qxVO1aqL9wC^SUfDUilD&& z6?cTPsBD51fkRu-$|}YMDuS4XRS;U_bf`<_PiRlyPcw7Ryl?Kk=e_&A`@Knab+(g{ zS}6rVkc@-9%}xjsLm-IcNfE~_+`|cx_(h*%>&an-1hNiB$Am+s{u={XtW9(V!`Nh_ znJL34C?JS#5@c$|@Y_V+XiEPWQelgusE1lxyE<4~Bd$^GpwO^D2#SRhJzgE`a#dV> z7RW0fOf?Udle7rQiU@G$SYNz*a8F%__dC<-)%N*U!}oIAw1p?iCHhm@=B-C2B`oG8 zsQstd$FgPG6#eFIC22a%YE~8Go9xhY7pwhH|7w2BOmAd}Su}shyGwC{tl}w~*IjY=*8q%1 zDhl1(%~2TWO&;eNF`7G^qCKyXB{hOKvsv+jXVSECgG?AGSF%~6)ymwl2Hku7#hXAwAt2*@mfGOKf*;coSe-Nu8b0h(0ytTYf!fG{1C&mKM%cb$$|;@>0X>c;uO3 zsOP6|d{r7OYj}~Krmu?`C#*WO%j9$$M#eay=Y@gXJTHBD9X0KH{vKuYu+U*?v1IOW zm+-x7c6p)6eG|IZ^lPE(IkLd0b!OJ_+xK-1ef+Gm60aE+*YtZ&qKge5W};Hw9L=5( z+*VKPdGC{LzMIb<>bR=)pyi0$H)8fy3F&G9YX-8csD4~l%gs3_B~{Jsmpel_9!D!T z_ikBpHdm--7yGmC@*1Ynj8A3F?7&|IFLe6S@2yB|tuB7*CcG0rT34ySU3D_X?@DpR z;HKI)`K!W9q$zHTDQ_z5nSsB!B)Ij(m=0&U=PkrYKQ_)8(>W~fNv*pz!JJzgCgqZ- z+?;p6yZzD2Qn_ETLk1Ql1@0Yff9P~NbqWG%?x)OHwW-W!8d-bu8nt&^Ofj2!<|?fx zek4IK{QKSweG&!r5BClJSxYH3jM7SPR-UnqTRqW8Z?y2OW+(Yw<2QB%2#Sro1@&E7 zb(bo>%gNyD&2CG-si0a}(O7X}H)Y-JORNLit2i!@m`=EJ-t@Aw<8t3i$0e1mPtGXu z-;?RGPKtej%FLrW{Ak~ASiU7gD0bJqci(WRZ?xI;+Q`vWA0G$|H|-Kj=UBnq}nnaMo%OEP}%tU5_UC{~S-+-3n322n~k?X#r`$rv#WSORE?xBD@}g z+OkwL|5YWoX+$tm8%$&ovN?Po5j*XtP%_~FU6G+kfrjv|I1=cJ3d6?OLxO=rB3-WHBol~oHG+y~ULY8pQIHgn z6bhIrWC~b5D5xn23JNVu0_+2m043AFK7~R9n>P#vJ6a5E^GSFI1$rOQ5P~ilZ|#9} z0L2680E!3F0gw)Gbr47gKsvzXT_7F&&!vM3{X!lDQTmtu1^6uY0~rCx2>6i + #target { color: green; margin-top: -100px; } + #target:before { display: table; content: "A"; } + #target:first-letter { font-size: 200%; } + + +
A
+
+ + diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index f771ed6..814ed07 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,16 @@ +2011-09-30 Dan Bernstein + + first-letter in generated before content with display: table is not updated + + Reviewed by Sam Weinig. + + Test: fast/css-generated-content/first-letter-in-nested-before.html + + * rendering/RenderObjectChildList.cpp: + (WebCore::RenderObjectChildList::updateBeforeAfterContent): Preserve the style type of anonymous + containers around the generated content when updating their style. This preserves the first-letter-ness + of the inline wrapping the first letter, which allows updateFirstLetter() to identify it later. + 2011-09-30 Cary Clark Inset focus ring (Skia on Mac) diff --git a/Source/WebCore/rendering/RenderObjectChildList.cpp b/Source/WebCore/rendering/RenderObjectChildList.cpp index 04f8f70..0e68f9c 100644 --- a/Source/WebCore/rendering/RenderObjectChildList.cpp +++ b/Source/WebCore/rendering/RenderObjectChildList.cpp @@ -434,6 +434,7 @@ void RenderObjectChildList::updateBeforeAfterContent(RenderObject* owner, Pseudo RefPtr newStyle = RenderStyle::create(); newStyle->inheritFrom(pseudoElementStyle); newStyle->setDisplay(curr->style()->display()); + newStyle->setStyleType(curr->style()->styleType()); curr->setStyle(newStyle); curr = curr->parent(); } diff --git a/Source/WebCore/rendering/RenderView.cpp b/Source/WebCore/rendering/RenderView.cpp index 1fefac4..775b15d 100644 --- a/Source/WebCore/rendering/RenderView.cpp +++ b/Source/WebCore/rendering/RenderView.cpp @@ -142,6 +142,10 @@ void RenderView::layout() ASSERT(m_layoutState == &state); m_layoutState = 0; setNeedsLayout(false); +#if !ASSERT_DISABLED + for (RenderObject* renderer = this; renderer; renderer = renderer->nextInPreOrder()) + ASSERT(!renderer->needsLayout()); +#endif } void RenderView::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool useTransforms, TransformState& transformState, bool* wasFixed) const -- 1.8.3.1