Changeset 168543 in webkit
- Timestamp:
- May 9, 2014 12:05:33 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 29 added
- 13 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r168542 r168543 1 2014-05-09 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> 2 3 ASSERTION FAILED: object->style()->overflowX() == object->style()->overflowY() 4 https://bugs.webkit.org/show_bug.cgi?id=121682 5 6 Reviewed by Dirk Schulze. 7 8 Merge Blink r172126 by Erik Dahlström. 9 10 * platform/efl/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt: 11 * platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.png: 12 * platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt: 13 * platform/mac/svg/text/non-bmp-positioning-lists-expected.txt: Added. 14 * svg/W3C-SVG-1.1-SE/painting-marker-05-f-expected.png: Added. 15 * svg/W3C-SVG-1.1-SE/painting-marker-05-f-expected.txt: Added. 16 * svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg: Added. 17 * svg/W3C-SVG-1.1-SE/painting-marker-06-f-expected.png: Added. 18 * svg/W3C-SVG-1.1-SE/painting-marker-06-f-expected.txt: Added. 19 * svg/W3C-SVG-1.1-SE/painting-marker-06-f.svg: Added. 20 * svg/animations/animate-viewport-overflow-2-expected.txt: Added. 21 * svg/animations/animate-viewport-overflow-2.html: Added. 22 * svg/animations/animate-viewport-overflow-expected.txt: Added. 23 * svg/animations/animate-viewport-overflow.html: Added. 24 * svg/in-html/overflow-repaint-expected.txt: Added. 25 * svg/in-html/overflow-repaint.html: Added. 26 * svg/in-html/overflow-svg-root-attr-expected.html: Added. 27 * svg/in-html/overflow-svg-root-attr.html: Added. 28 * svg/in-html/overflow-svg-root-expected.html: Added. 29 * svg/in-html/overflow-svg-root-style-expected.html: Added. 30 * svg/in-html/overflow-svg-root-style.html: Added. 31 * svg/in-html/overflow-svg-root.html: Added. 32 * svg/overflow/overflow-on-outermost-svg-element-horizontal-auto-expected.html: Added. 33 * svg/overflow/overflow-on-outermost-svg-element-horizontal-auto.svg: Added. 34 * svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-1-expected.txt: 35 * svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.png: 36 * svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt: Copied from LayoutTests/platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt. 37 * svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible.xhtml: 38 * svg/overflow/overflow-on-outermost-svg-element-vertical-auto-expected.html: Added. 39 * svg/overflow/overflow-on-outermost-svg-element-vertical-auto.svg: Added. 40 * svg/overflow/overflow-scroll-on-outermost-svg-element-expected.txt: Added. 41 * svg/overflow/overflow-scroll-on-outermost-svg-element.svg: Added. 42 * svg/overflow/overflow-x-hidden-on-outermost-svg-element-expected.svg: Added. 43 * svg/overflow/overflow-x-hidden-on-outermost-svg-element.svg: Added. 44 * svg/overflow/overflow-y-hidden-on-outermost-svg-element-expected.svg: Added. 45 * svg/overflow/overflow-y-hidden-on-outermost-svg-element.svg: Added. 46 1 47 2014-05-09 Alexey Proskuryakov <ap@apple.com> 2 48 -
trunk/LayoutTests/platform/efl/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt
r140245 r168543 5 5 RenderInline {body} at (0,0) size 400x17 6 6 RenderText {#text} at (0,0) size 0x0 7 RenderSVGRoot {svg} at (0,0) size 400 x4008 RenderSVGRect {rect} at (0,0) size 400 x400 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=4000.00] [height=4000.00]7 RenderSVGRoot {svg} at (0,0) size 4000x4000 8 RenderSVGRect {rect} at (0,0) size 4000x4000 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=4000.00] [height=4000.00] 9 9 RenderText {#text} at (0,0) size 0x0 10 10 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt
r103407 r168543 5 5 RenderInline {body} at (0,0) size 400x18 6 6 RenderText {#text} at (0,0) size 0x0 7 RenderSVGRoot {svg} at (0,0) size 400 x4008 RenderSVGRect {rect} at (0,0) size 400 x400 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=4000.00] [height=4000.00]7 RenderSVGRoot {svg} at (0,0) size 4000x4000 8 RenderSVGRect {rect} at (0,0) size 4000x4000 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=4000.00] [height=4000.00] 9 9 RenderText {#text} at (0,0) size 0x0 10 10 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-1-expected.txt
r149088 r168543 1 1 layer at (0,0) size 4000x4000 2 RenderView at (0,0) size 785x5852 RenderView at (0,0) size 800x600 3 3 layer at (0,0) size 4000x4000 4 4 RenderSVGRoot {svg} at (0,0) size 4000x4000 -
trunk/LayoutTests/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible-expected.txt
r168542 r168543 5 5 RenderInline {body} at (0,0) size 400x18 6 6 RenderText {#text} at (0,0) size 0x0 7 RenderSVGRoot {svg} at (0,0) size 400 x4008 RenderSVGRect {rect} at (0,0) size 400 x400 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=4000.00] [height=4000.00]7 RenderSVGRoot {svg} at (0,0) size 4000x4000 8 RenderSVGRect {rect} at (0,0) size 4000x4000 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=4000.00] [height=4000.00] 9 9 RenderText {#text} at (0,0) size 0x0 10 10 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible.xhtml
r54551 r168543 1 1 <!-- 2 2 Verify default overflow rules for the outermost <svg> element in non-standalone documents. 3 You should see a 400x400 green rectangle, not covering the whole screen size.3 The green rectangle should cover the entire screen, since no clipping is done for overflow:visible. 4 4 5 5 Spec reference: -
trunk/Source/WebCore/ChangeLog
r168536 r168543 1 2014-05-09 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> 2 3 ASSERTION FAILED: object->style()->overflowX() == object->style()->overflowY() 4 https://bugs.webkit.org/show_bug.cgi?id=121682 5 6 Reviewed by Dirk Schulze. 7 8 Add more overflow freedom to the SVG element: 9 -overflow-x and overflow-y for controlling each scrollbar independently is now supported 10 -overflow:scroll will display scrollbars regardless of the svg overflowing or not (as required by CSS) 11 -overflow:hidden will cause overflow to be clipped away and scrollbars to be hidden 12 13 Merged from Blink r172126 by <ed@opera.com> 14 15 Tests: svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg 16 svg/W3C-SVG-1.1-SE/painting-marker-06-f.svg 17 svg/animations/animate-viewport-overflow-2.html 18 svg/animations/animate-viewport-overflow.html 19 svg/in-html/overflow-repaint.html 20 svg/in-html/overflow-svg-root-attr.html 21 svg/in-html/overflow-svg-root-style.html 22 svg/in-html/overflow-svg-root.html 23 svg/overflow/overflow-on-outermost-svg-element-horizontal-auto.svg 24 svg/overflow/overflow-on-outermost-svg-element-vertical-auto.svg 25 svg/overflow/overflow-scroll-on-outermost-svg-element.svg 26 svg/overflow/overflow-x-hidden-on-outermost-svg-element-expected.svg 27 svg/overflow/overflow-x-hidden-on-outermost-svg-element.svg 28 svg/overflow/overflow-y-hidden-on-outermost-svg-element-expected.svg 29 svg/overflow/overflow-y-hidden-on-outermost-svg-element.svg 30 31 * css/StyleResolver.cpp: 32 (WebCore::StyleResolver::adjustRenderStyle): 33 * page/FrameView.cpp: 34 (WebCore::FrameView::applyOverflowToViewport): 35 * rendering/svg/RenderSVGRoot.cpp: 36 (WebCore::RenderSVGRoot::layout): 37 (WebCore::RenderSVGRoot::shouldApplyViewportClip): 38 (WebCore::RenderSVGRoot::paintReplaced): 39 (WebCore::RenderSVGRoot::computeFloatRectForRepaint): 40 * rendering/svg/RenderSVGRoot.h: 41 * rendering/svg/SVGRenderSupport.cpp: 42 (WebCore::SVGRenderSupport::isOverflowHidden): 43 1 44 2014-05-09 Jer Noble <jer.noble@apple.com> 2 45 -
trunk/Source/WebCore/css/StyleResolver.cpp
r168079 r168543 1319 1319 1320 1320 if (e && e->isSVGElement()) { 1321 // Spec: http://www.w3.org/TR/SVG/masking.html#OverflowProperty1322 if (style.overflowY() == OSCROLL)1323 style.setOverflowY(OHIDDEN);1324 else if (style.overflowY() == OAUTO)1325 style.setOverflowY(OVISIBLE);1326 1327 if (style.overflowX() == OSCROLL)1328 style.setOverflowX(OHIDDEN);1329 else if (style.overflowX() == OAUTO)1330 style.setOverflowX(OVISIBLE);1331 1332 1321 // Only the root <svg> element in an SVG document fragment tree honors css position 1333 1322 if (!(e->hasTagName(SVGNames::svgTag) && e->parentNode() && !e->parentNode()->isSVGElement())) -
trunk/Source/WebCore/page/FrameView.cpp
r168380 r168543 586 586 587 587 if (o->isSVGRoot()) { 588 // overflow is ignored in stand-alone SVG documents. 589 if (!toRenderSVGRoot(o)->isEmbeddedThroughFrameContainingSVGDocument()) 590 return; 591 overflowX = OHIDDEN; 592 overflowY = OHIDDEN; 588 // FIXME: evaluate if we can allow overflow for these cases too. 589 // Overflow is always hidden when stand-alone SVG documents are embedded. 590 if (toRenderSVGRoot(o)->isEmbeddedThroughFrameContainingSVGDocument()) { 591 overflowX = OHIDDEN; 592 overflowY = OHIDDEN; 593 } 593 594 } 594 595 -
trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
r168350 r168543 197 197 } 198 198 199 if (!shouldApplyViewportClip()) { 200 FloatRect contentRepaintRect = repaintRectInLocalCoordinates(); 201 contentRepaintRect = m_localToBorderBoxTransform.mapRect(contentRepaintRect); 202 addVisualOverflow(enclosingLayoutRect(contentRepaintRect)); 203 } 204 199 205 updateLayerTransform(); 200 206 … … 202 208 203 209 clearNeedsLayout(); 210 } 211 212 bool RenderSVGRoot::shouldApplyViewportClip() const 213 { 214 // the outermost svg is clipped if auto, and svg document roots are always clipped 215 // When the svg is stand-alone (isDocumentElement() == true) the viewport clipping should always 216 // be applied, noting that the window scrollbars should be hidden if overflow=hidden. 217 return style().overflowX() == OHIDDEN 218 || style().overflowX() == OAUTO 219 || style().overflowX() == OSCROLL 220 || this->isRoot(); 204 221 } 205 222 … … 238 255 childPaintInfo.context->save(); 239 256 240 // Apply initial viewport clip - not affected by overflow handling 241 childPaintInfo.context->clip(pixelSnappedIntRect(overflowClipRect(paintOffset, paintInfo.renderNamedFlowFragment))); 257 // Apply initial viewport clip 258 if (shouldApplyViewportClip()) 259 childPaintInfo.context->clip(pixelSnappedIntRect(overflowClipRect(paintOffset, paintInfo.renderNamedFlowFragment))); 242 260 243 261 // Convert from container offsets (html renderers) to a relative transform (svg renderers). … … 333 351 shadow->adjustRectForShadow(repaintRect); 334 352 335 // Apply initial viewport clip - not affected by overflow settings 336 repaintRect.intersect(pixelSnappedBorderBoxRect()); 353 // Apply initial viewport clip 354 if (shouldApplyViewportClip()) 355 repaintRect.intersect(pixelSnappedBorderBoxRect()); 337 356 338 357 LayoutRect rect = enclosingIntRect(repaintRect); -
trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h
r168350 r168543 104 104 virtual bool canHaveChildren() const override { return true; } 105 105 106 bool shouldApplyViewportClip() const; 106 107 void updateCachedBoundaries(); 107 108 void buildLocalToBorderBoxTransform(); -
trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp
r165546 r168543 293 293 bool SVGRenderSupport::isOverflowHidden(const RenderElement& renderer) 294 294 { 295 // SVG doesn't support independent x/y overflow296 ASSERT(renderer.style().overflowX() == renderer.style().overflowY());297 298 // OSCROLL is never set for SVG - see StyleResolver::adjustRenderStyle299 ASSERT(renderer.style().overflowX() != OSCROLL);300 301 295 // RenderSVGRoot should never query for overflow state - it should always clip itself to the initial viewport size. 302 296 ASSERT(!renderer.isRoot()); 303 297 304 return renderer.style().overflowX() == OHIDDEN ;298 return renderer.style().overflowX() == OHIDDEN || renderer.style().overflowX() == OSCROLL; 305 299 } 306 300
Note: See TracChangeset
for help on using the changeset viewer.