WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-58417-20111031121511.patch (text/plain), 6.43 KB, created by
Florin Malita
on 2011-10-31 09:15:13 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Florin Malita
Created:
2011-10-31 09:15:13 PDT
Size:
6.43 KB
patch
obsolete
>Subversion Revision: 98855 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 86917dd45026699807e20aefa6542b8d084383e6..ca9c6e55c2d7f22cdb50cbb9f8f2e16e962278fa 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2011-10-31 Florin Malita <fmalita@google.com> >+ >+ SVG object covers CSS background in HTML foreignObject >+ https://bugs.webkit.org/show_bug.cgi?id=58417 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Test: svg/foreignObject/background-render-phase.html >+ >+ * rendering/svg/RenderSVGForeignObject.cpp: >+ (WebCore::RenderSVGForeignObject::paint): >+ >+ Paint SVG foreign objects atomically, following the same pattern as >+ http://trac.webkit.org/browser/trunk/Source/WebCore/rendering/InlineBox.cpp#L209. >+ > 2011-10-31 Pavel Feldman <pfeldman@google.com> > > Web Inspector: move localization support into UIUtil.js, reduce externs. >diff --git a/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp b/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp >index 08842714ce39323191d59e9d6a3a1691a7351046..09811811bece7312d2f0ab93c93987ef9b691ecb 100644 >--- a/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp >+++ b/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp >@@ -47,7 +47,8 @@ RenderSVGForeignObject::~RenderSVGForeignObject() > > void RenderSVGForeignObject::paint(PaintInfo& paintInfo, const LayoutPoint&) > { >- if (paintInfo.context->paintingDisabled()) >+ if (paintInfo.context->paintingDisabled() >+ || (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhaseSelection)) > return; > > PaintInfo childPaintInfo(paintInfo); >@@ -61,7 +62,22 @@ void RenderSVGForeignObject::paint(PaintInfo& paintInfo, const LayoutPoint&) > if (opacity < 1.0f) > childPaintInfo.context->beginTransparencyLayer(opacity); > >+ // Paint all phases of FO elements atomically, as though the FO element established its >+ // own stacking context. >+ bool preservePhase = paintInfo.phase == PaintPhaseSelection || paintInfo.phase == PaintPhaseTextClip; >+ LayoutPoint childPoint = IntPoint(); >+ childPaintInfo.phase = preservePhase ? paintInfo.phase : PaintPhaseBlockBackground; > RenderBlock::paint(childPaintInfo, IntPoint()); >+ if (!preservePhase) { >+ childPaintInfo.phase = PaintPhaseChildBlockBackgrounds; >+ RenderBlock::paint(childPaintInfo, childPoint); >+ childPaintInfo.phase = PaintPhaseFloat; >+ RenderBlock::paint(childPaintInfo, childPoint); >+ childPaintInfo.phase = PaintPhaseForeground; >+ RenderBlock::paint(childPaintInfo, childPoint); >+ childPaintInfo.phase = PaintPhaseOutline; >+ RenderBlock::paint(childPaintInfo, childPoint); >+ } > > if (opacity < 1.0f) > childPaintInfo.context->endTransparencyLayer(); >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 7fabff3733a8885d31c2bf6d61775f6f1f263c00..b3caa873966888d66d2ada6c6211a2254dacddd6 100755 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2011-10-31 Florin Malita <fmalita@google.com> >+ >+ SVG object covers CSS background in HTML foreignObject >+ https://bugs.webkit.org/show_bug.cgi?id=58417 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * svg/foreignObject/background-render-phase-expected.png: Added. >+ * svg/foreignObject/background-render-phase-expected.txt: Added. >+ * svg/foreignObject/background-render-phase.html: Added. >+ > 2011-10-31 Nikolas Zimmermann <nzimmermann@rim.com> > > CSS 2.1 failure: background-intrinsic-* >diff --git a/LayoutTests/svg/foreignObject/background-render-phase-expected.png b/LayoutTests/svg/foreignObject/background-render-phase-expected.png >new file mode 100644 >index 0000000000000000000000000000000000000000..b0de7366d8fdc10acb46efb318e1db524ec6a8bf >GIT binary patch >literal 3131 >zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>i0*Z)=h^hlA%@Ws$lH`ok<m}?oTn6*h >zR13?rM5Dw+;}io!(=;I8$jrdN$TZm?*(k*@W$nQ{9tH;Pvz{)FAr*7p-r1O|<jv6V >z@M)*iio>QBH+uLq@~st=3wW<M`t1>quu@E(C;r-A=iNSk76aph8H?kMGr~XH@G~&z >z6j;dkEx)|>=GipkzQ+bUui5iB86I@{Ufy#1?X)$KmIs*_eq4H3P+>neYSX9v_Isrn >z8ulOfe}^Y-y+{NDgJB~pgMcuQao@!E^76+_+zbz_@4bF?`PeSWh}BciU*c!@uzu&8 >zRj-c~HL)@j%zwS;m%$^~#S9GJe|{=m?6-k|Aql8OK@G(C*UZYW;l$eQaj_utx^uSQ >zetq!s&p(Mz-o8C6s>tBrlfcMughgynFs^M^dzSe1M6Hc^f7Z^*e=lVj4#+=ef%ydP >zB`Pqs?K9md_00X<<CSOSL>USWat@9FAT}OyYO|B($?xO^CYp9(9fpP(2bdT-I7b<y >zfiRj9aOZ-x^;OIa4CmAL-;e)SQ(L?Dk0!8ye7Egx-u?Y^&Od)08QuacdDVfXWO=bG >z2ZI2J_z(apP2WB15@1jO5f2s;n?(mxxjO3R!BfYL#>Hq{42DM6HT%7c3=PjW+<z~= >z4%FoA-m_<qPGp&lT&y4yxeY?7nFTg-P&40@?N&X#EVBqyoPwI4@OG_XeGxmuj`LYt >zcgf9p{_}e|sMP(wGiRm0J1~D7xU1LwYS(rUt9(!S)zVmAPy_h3-P+ZTz{ctmkoa}8 >z*=IjZ1qo+Aw(z_B<>{u(S;q=v?(VW?VR+Dd_+f$7+`O}SX0r=r+7o}UW<71=RX%ZA >R1=t&4@O1TaS?83{1OT_qIx7GG > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/svg/foreignObject/background-render-phase-expected.txt b/LayoutTests/svg/foreignObject/background-render-phase-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..89248584ee00d0f0ca31142f9f138885b1b7c111 >--- /dev/null >+++ b/LayoutTests/svg/foreignObject/background-render-phase-expected.txt >@@ -0,0 +1,12 @@ >+layer at (0,0) size 785x616 >+ RenderView at (0,0) size 785x600 >+layer at (0,0) size 785x616 >+ RenderBlock {HTML} at (0,0) size 785x616 >+ RenderBody {BODY} at (8,8) size 769x600 >+ RenderSVGRoot {svg} at (8,8) size 200x180 >+ RenderSVGPath {rect} at (8,8) size 100x100 [fill={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00] >+ RenderSVGForeignObject {foreignObject} at (0,40) size 200x100 >+ RenderBlock {DIV} at (0,0) size 200x20 [bgcolor=#FF0000] >+ RenderText {#text} at (0,0) size 4x19 >+ text run at (0,0) width 4: " " >+ RenderText {#text} at (0,0) size 0x0 >diff --git a/LayoutTests/svg/foreignObject/background-render-phase.html b/LayoutTests/svg/foreignObject/background-render-phase.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a307164515be19ac97490995619c8c37e48c9d2a >--- /dev/null >+++ b/LayoutTests/svg/foreignObject/background-render-phase.html >@@ -0,0 +1,14 @@ >+<html> >+<body> >+<svg xmlns="http://www.w3.org/2000/svg"> >+<rect x="0" y="0" width="100" height="100" fill="blue"></rect> >+<foreignObject x="0" y="40" width="200" height="100"> >+ <html xmlns="http://www.w3.org/1999/xhtml"> >+ <body style="dmargin: 0;"> >+ <div style="background: red;"> </div> >+ </body> >+ </html> >+</foreignObject> >+</svg> >+</body> >+</html>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 58417
:
89349
|
89350
|
89351
|
89353
|
113057
|
114116