Bug 121682 - ASSERTION FAILED: object->style()->overflowX() == object->style()->overflowY() in WebCore::SVGRenderSupport::isOverflowHidden
Summary: ASSERTION FAILED: object->style()->overflowX() == object->style()->overflowY(...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: CSS (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 116980
  Show dependency treegraph
 
Reported: 2013-09-20 07:46 PDT by Renata Hodovan
Modified: 2019-12-09 14:13 PST (History)
21 users (show)

See Also:


Attachments
Test case (100 bytes, text/html)
2013-09-20 07:46 PDT, Renata Hodovan
no flags Details
Proposed patch (4.43 KB, patch)
2014-04-16 04:19 PDT, Zsolt Borbely
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-01 for mac-mountainlion (666.77 KB, application/zip)
2014-04-16 05:41 PDT, Build Bot
no flags Details
Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 (636.38 KB, application/zip)
2014-04-16 06:19 PDT, Build Bot
no flags Details
Archive of layout-test-results from webkit-ews-05 for mac-mountainlion (664.46 KB, application/zip)
2014-04-16 06:36 PDT, Build Bot
no flags Details
Proposed patch (72.35 KB, patch)
2014-05-08 08:02 PDT, Zsolt Borbely
no flags Details | Formatted Diff | Diff
Test case (166 bytes, text/html)
2014-05-08 08:10 PDT, Dirk Schulze
no flags Details
Patch (7.22 KB, patch)
2014-05-08 08:51 PDT, Dirk Schulze
no flags Details | Formatted Diff | Diff
Proposed patch (72.96 KB, patch)
2014-05-09 06:49 PDT, Zsolt Borbely
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-03 for mac-mountainlion (650.99 KB, application/zip)
2014-05-09 07:24 PDT, Build Bot
no flags Details
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2 (552.99 KB, application/zip)
2014-05-09 07:47 PDT, Build Bot
no flags Details
Proposed patch (118.39 KB, patch)
2014-05-09 10:28 PDT, Zsolt Borbely
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Renata Hodovan 2013-09-20 07:46:57 PDT
Created attachment 212164 [details]
Test case

The test:

<svg>
    <svg style="overflow-y: auto;">
        <rect width='10' height='10'/>
    </svg>
</svg>


Backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff56dafad in WTFCrash () at /home/reni/Data/REPOS/webkit_sec/Source/WTF/wtf/Assertions.cpp:342
342	    *(int *)(uintptr_t)0xbbadbeef = 0;
(gdb) bt
#0  0x00007ffff56dafad in WTFCrash () at /home/reni/Data/REPOS/webkit_sec/Source/WTF/wtf/Assertions.cpp:342
#1  0x00007ffff4be0c99 in WebCore::SVGRenderSupport::isOverflowHidden (object=0x8ed018)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/svg/SVGRenderSupport.cpp:302
#2  0x00007ffff4bd7ff6 in WebCore::RenderSVGViewportContainer::applyViewportClip (this=0x8ed018, paintInfo=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp:55
#3  0x00007ffff4bafb39 in WebCore::RenderSVGContainer::paint (this=0x8ed018, paintInfo=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/svg/RenderSVGContainer.cpp:129
#4  0x00007ffff4bd8a1d in WebCore::RenderSVGViewportContainer::paint (this=0x8ed018, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp:160
#5  0x00007ffff4870594 in WebCore::RenderBox::paint (this=0x8c0018, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBox.cpp:1104
#6  0x00007ffff4bd04df in WebCore::RenderSVGRoot::paintReplaced (this=0x8c0018, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/svg/RenderSVGRoot.cpp:308
#7  0x00007ffff497d0c0 in WebCore::RenderReplaced::paint (this=0x8c0018, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderReplaced.cpp:158
#8  0x00007ffff47e36cf in WebCore::InlineBox::paint (this=0x8d6928, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/InlineBox.cpp:237
#9  0x00007ffff47ebce3 in WebCore::InlineFlowBox::paint (this=0x8c0228, paintInfo=..., paintOffset=..., lineTop=..., lineBottom=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/InlineFlowBox.cpp:1170
#10 0x00007ffff49d9938 in WebCore::RootInlineBox::paint (this=0x8c0228, paintInfo=..., paintOffset=..., lineTop=..., lineBottom=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RootInlineBox.cpp:212
#11 0x00007ffff49437dd in WebCore::RenderLineBoxList::paint (this=0x8bcd40, renderer=0x8bcca8, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLineBoxList.cpp:262
#12 0x00007ffff4813eff in WebCore::RenderBlock::paintContents (this=0x8bcca8, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBlock.cpp:3206
#13 0x00007ffff4814a48 in WebCore::RenderBlock::paintObject (this=0x8bcca8, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBlock.cpp:3323
#14 0x00007ffff48126cf in WebCore::RenderBlock::paint (this=0x8bcca8, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBlock.cpp:3019
#15 0x00007ffff4814407 in WebCore::RenderBlock::paintChild (this=0x79c1d8, child=0x8bcca8, paintInfo=..., paintOffset=..., paintInfoForChild=..., 
    usePrintRect=false) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBlock.cpp:3256
#16 0x00007ffff481403d in WebCore::RenderBlock::paintChildren (this=0x79c1d8, paintInfo=..., paintOffset=..., paintInfoForChild=..., usePrintRect=false)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBlock.cpp:3226
#17 0x00007ffff4813fe1 in WebCore::RenderBlock::paintContents (this=0x79c1d8, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBlock.cpp:3219
#18 0x00007ffff4814a48 in WebCore::RenderBlock::paintObject (this=0x79c1d8, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBlock.cpp:3323
#19 0x00007ffff48126cf in WebCore::RenderBlock::paint (this=0x79c1d8, paintInfo=..., paintOffset=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderBlock.cpp:3019
#20 0x00007ffff4911185 in WebCore::RenderLayer::paintForegroundForFragmentsWithPhase (this=0x7d2468, phase=WebCore::PaintPhaseForeground, layerFragments=..., 
    context=0x7fffffffb940, localPaintingInfo=..., paintBehavior=0, subtreePaintRootForRenderer=0x0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:4175
#21 0x00007ffff4910e8a in WebCore::RenderLayer::paintForegroundForFragments (this=0x7d2468, layerFragments=..., context=0x7fffffffb940, 
    transparencyLayerContext=0x7fffffffb940, transparencyPaintDirtyRect=..., haveTransparency=false, localPaintingInfo=..., paintBehavior=0, 
    subtreePaintRootForRenderer=0x0, selectionOnly=false, forceBlackText=false)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:4151
#22 0x00007ffff490f7b4 in WebCore::RenderLayer::paintLayerContents (this=0x7d2468, context=0x7fffffffb940, paintingInfo=..., paintFlags=224)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:3882
#23 0x00007ffff490e694 in WebCore::RenderLayer::paintLayerContentsAndReflection (this=0x7d2468, context=0x7fffffffb940, paintingInfo=..., paintFlags=224)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:3646
#24 0x00007ffff490e589 in WebCore::RenderLayer::paintLayer (this=0x7d2468, context=0x7fffffffb940, paintingInfo=..., paintFlags=224)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:3628
#25 0x00007ffff490fe45 in WebCore::RenderLayer::paintList (this=0x799018, list=0x8dd480, context=0x7fffffffb940, paintingInfo=..., paintFlags=224)
---Type <return> to continue, or q <return> to quit---
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:3968
#26 0x00007ffff490f873 in WebCore::RenderLayer::paintLayerContents (this=0x799018, context=0x7fffffffb940, paintingInfo=..., paintFlags=224)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:3893
#27 0x00007ffff490e694 in WebCore::RenderLayer::paintLayerContentsAndReflection (this=0x799018, context=0x7fffffffb940, paintingInfo=..., paintFlags=0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:3646
#28 0x00007ffff490e589 in WebCore::RenderLayer::paintLayer (this=0x799018, context=0x7fffffffb940, paintingInfo=..., paintFlags=0)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:3628
#29 0x00007ffff490d84c in WebCore::RenderLayer::paint (this=0x799018, context=0x7fffffffb940, damageRect=..., paintBehavior=0, subtreePaintRoot=0x0, region=
    0x0, paintFlags=0) at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/rendering/RenderLayer.cpp:3438
#30 0x00007ffff4671fba in WebCore::FrameView::paintContents (this=0x7d3d10, p=0x7fffffffb940, rect=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebCore/page/FrameView.cpp:3564
#31 0x00007ffff3b97e0a in QWebFrameAdapter::renderRelativeCoords (this=0x79c350, painter=0x7fffffffbaa0, layers=255, clip=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp:541
#32 0x00007ffff7baa7a0 in QWebFrame::render (this=0x79c450, painter=0x7fffffffbaa0, layer=..., clip=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebKit/qt/WidgetApi/qwebframe.cpp:644
#33 0x00007ffff7baa870 in QWebFrame::render (this=0x79c450, painter=0x7fffffffbaa0, clip=...)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebKit/qt/WidgetApi/qwebframe.cpp:654
#34 0x00007ffff7bb9492 in QWebView::paintEvent (this=0x7aaf50, ev=0x7fffffffc280)
    at /home/reni/Data/REPOS/webkit_sec/Source/WebKit/qt/WidgetApi/qwebview.cpp:829
#35 0x00007ffff3064848 in QWidget::event(QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#36 0x00007ffff7bb923b in QWebView::event (this=0x7aaf50, e=0x7fffffffc280) at /home/reni/Data/REPOS/webkit_sec/Source/WebKit/qt/WidgetApi/qwebview.cpp:733
#37 0x00007ffff302ddbc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#38 0x00007ffff3031075 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#39 0x00007ffff21c1dbe in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#40 0x00007ffff3061705 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#41 0x00007ffff306217b in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#42 0x00007ffff3061256 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#43 0x00007ffff306217b in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#44 0x00007ffff3061fd1 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#45 0x00007ffff3061fd1 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#46 0x00007ffff3061256 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#47 0x00007ffff303709f in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#48 0x00007ffff3037839 in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#49 0x00007ffff3082bc3 in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#50 0x00007ffff302ddbc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#51 0x00007ffff3031075 in QApplication::notify(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Widgets.so.5
#52 0x00007ffff21c1dbe in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#53 0x00007ffff26983a7 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Gui.so.5
#54 0x00007ffff269f53d in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Gui.so.5
#55 0x00007ffff268ea68 in QWindowSystemInterface::sendWindowSystemEventsImplementation(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Gui.so.5
#56 0x00007fffe80776b0 in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/plugins/platforms/libxcb.so
#57 0x00007fffee34a3c6 in g_main_dispatch (context=0x6632f0) at /build/buildd/glib2.0-2.37.7/./glib/gmain.c:3065
#58 g_main_context_dispatch (context=context@entry=0x6632f0) at /build/buildd/glib2.0-2.37.7/./glib/gmain.c:3641
---Type <return> to continue, or q <return> to quit---
#59 0x00007fffee34a718 in g_main_context_iterate (context=context@entry=0x6632f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at /build/buildd/glib2.0-2.37.7/./glib/gmain.c:3712
#60 0x00007fffee34a7bc in g_main_context_iteration (context=0x6632f0, may_block=1) at /build/buildd/glib2.0-2.37.7/./glib/gmain.c:3773
#61 0x00007ffff22094bc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#62 0x00007ffff21c0d3b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#63 0x00007ffff21c4120 in QCoreApplication::exec() () from /usr/local/Trolltech/Qt5/Qt-5.0.0-r40/lib/libQt5Core.so.5
#64 0x0000000000421ba0 in launcherMain (app=...) at /home/reni/Data/REPOS/webkit_sec/Tools/QtTestBrowser/qttestbrowser.cpp:49
#65 0x0000000000423680 in main (argc=2, argv=0x7fffffffdb18) at /home/reni/Data/REPOS/webkit_sec/Tools/QtTestBrowser/qttestbrowser.cpp:318
Comment 1 Renata Hodovan 2013-09-20 07:56:08 PDT
According to the comment before the assert SVG doesn't support independent x/y overflow values, but in this case these values are WebCore::OHIDDEN and WebCore::OVISIBLE, respectively.

On the other hand the test runs fine if the outermost <svg> is removed.
Comment 2 Renata Hodovan 2013-09-26 04:29:41 PDT
I took a closer look on the problem and I'm a bit confused now: the failing test sets the overflow-y property of the inner SVG tag to auto and as a result WebKit sets its x and y overflow properties to OHIDDEN and OVISIBLE (RenderSVGViewportContainer). However SVG doesn't support different values for the x/y overflows, this way we got the assertion issue. Ok.
On the other hand, I checked what happens if we leave the wrapping SVG tag: in this case OVISIBLE is set for both values (RenderSVGRoot) and the condition above is fulfilled, however the asked property was "auto"... So I'm not sure what is the expectation by the original problem? Should both values been set to OAUTO or OVISIBLE? Ideas?
Comment 3 Zsolt Borbely 2014-04-16 04:19:54 PDT
Created attachment 229437 [details]
Proposed patch
Comment 4 Build Bot 2014-04-16 05:41:12 PDT
Comment on attachment 229437 [details]
Proposed patch

Attachment 229437 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/6493322700914688

New failing tests:
svg/zoom/page/zoom-foreign-content.svg
svg/zoom/page/zoom-foreignObject.svg
svg/custom/display-table-caption-inherit-text.xhtml
svg/custom/svg-absolute-children.svg
Comment 5 Build Bot 2014-04-16 05:41:16 PDT
Created attachment 229439 [details]
Archive of layout-test-results from webkit-ews-01 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-01  Port: mac-mountainlion  Platform: Mac OS X 10.8.5
Comment 6 Dirk Schulze 2014-04-16 05:44:48 PDT
There has been some changes on overflow with SVG2. Blink has a patch to change the behavior. https://codereview.chromium.org/220853002/ is the CL. It might be worth fixing it together.

The spec will explicitly allow setting x and y independent of each other btw.
Comment 7 Build Bot 2014-04-16 06:19:31 PDT
Comment on attachment 229437 [details]
Proposed patch

Attachment 229437 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6259358652432384

New failing tests:
svg/zoom/page/zoom-foreign-content.svg
svg/zoom/page/zoom-foreignObject.svg
svg/custom/display-table-caption-inherit-text.xhtml
svg/custom/svg-absolute-children.svg
Comment 8 Build Bot 2014-04-16 06:19:35 PDT
Created attachment 229440 [details]
Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-11  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5
Comment 9 Build Bot 2014-04-16 06:36:30 PDT
Comment on attachment 229437 [details]
Proposed patch

Attachment 229437 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/5630214663045120

New failing tests:
svg/zoom/page/zoom-foreign-content.svg
svg/zoom/page/zoom-foreignObject.svg
svg/custom/display-table-caption-inherit-text.xhtml
svg/custom/svg-absolute-children.svg
Comment 10 Build Bot 2014-04-16 06:36:33 PDT
Created attachment 229441 [details]
Archive of layout-test-results from webkit-ews-05 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-05  Port: mac-mountainlion  Platform: Mac OS X 10.8.5
Comment 11 Zsolt Borbely 2014-05-08 08:02:00 PDT
Created attachment 231065 [details]
Proposed patch
Comment 12 Dirk Schulze 2014-05-08 08:07:43 PDT
Comment on attachment 231065 [details]
Proposed patch

I have exactly the same patch locally. I get massive repaint issues in certain situations where content overflows the SVG root. Since your patch is identical, I expect that it has the same issues. Could you verify please?
Comment 13 Dirk Schulze 2014-05-08 08:10:51 PDT
Created attachment 231066 [details]
Test case

This is one of the tests that fail for me. If you run it the first time, you see a green rect on white background. The whole document should be green instead. (with the exception of a white stripe at the left and top side.) I have to change the window size to trigger a whole page repaint. Somehow the repaint rect is not updated correctly.

Can you check as well please?
Comment 14 Zsolt Borbely 2014-05-08 08:35:03 PDT
(In reply to comment #13)
> Created an attachment (id=231066) [details]
> Test case
> 
> This is one of the tests that fail for me. If you run it the first time, you see a green rect on white background. The whole document should be green instead. (with the exception of a white stripe at the left and top side.) I have to change the window size to trigger a whole page repaint. Somehow the repaint rect is not updated correctly.
> 
> Can you check as well please?

I checked your test and the whole document is green. 
I don't have to change the window size to repaint.
Comment 15 Dirk Schulze 2014-05-08 08:51:50 PDT
Created attachment 231071 [details]
Patch

Maybe you can find the difference. For me it looks absolutely identical. It definitely does not work for me. I see a squared green rect on the uploaded example. I have to resize the window to make it work.
Comment 16 Dirk Schulze 2014-05-08 10:12:58 PDT
(In reply to comment #14)
> (In reply to comment #13)
> > Created an attachment (id=231066) [details] [details]
> > Test case
> > 
> > This is one of the tests that fail for me. If you run it the first time, you see a green rect on white background. The whole document should be green instead. (with the exception of a white stripe at the left and top side.) I have to change the window size to trigger a whole page repaint. Somehow the repaint rect is not updated correctly.
> > 
> > Can you check as well please?
> 
> I checked your test and the whole document is green. 
> I don't have to change the window size to repaint.

Do you use debug builds? Did you rebaseline to trunk? A lot of things changed the last couple of days. I just did with my patch and it doesn't work for me.
Comment 17 Zsolt Borbely 2014-05-09 06:49:31 PDT
Created attachment 231152 [details]
Proposed patch

The different output is caused by reversing the order of the !shouldApplyViewportClip() and m_needsBoundariesOrTransformUpdate checks in RenderSVGRoot.cpp.
Comment 18 Build Bot 2014-05-09 07:24:16 PDT
Comment on attachment 231152 [details]
Proposed patch

Attachment 231152 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/4778108385230848

New failing tests:
svg/text/non-bmp-positioning-lists.svg
svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible.xhtml
svg/animations/animate-viewport-overflow.html
svg/in-html/overflow-repaint.html
svg/overflow/overflow-scroll-on-outermost-svg-element.svg
svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg
svg/W3C-SVG-1.1-SE/painting-marker-06-f.svg
svg/animations/animate-viewport-overflow-2.html
Comment 19 Build Bot 2014-05-09 07:24:22 PDT
Created attachment 231154 [details]
Archive of layout-test-results from webkit-ews-03 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-03  Port: mac-mountainlion  Platform: Mac OS X 10.8.5
Comment 20 Build Bot 2014-05-09 07:47:42 PDT
Comment on attachment 231152 [details]
Proposed patch

Attachment 231152 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/4955442216173568

New failing tests:
svg/text/non-bmp-positioning-lists.svg
svg/overflow/overflow-on-outermost-svg-element-in-xhtml-visible.xhtml
svg/animations/animate-viewport-overflow.html
svg/in-html/overflow-repaint.html
svg/overflow/overflow-scroll-on-outermost-svg-element.svg
svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg
svg/W3C-SVG-1.1-SE/painting-marker-06-f.svg
svg/animations/animate-viewport-overflow-2.html
Comment 21 Build Bot 2014-05-09 07:47:47 PDT
Created attachment 231156 [details]
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-12  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5
Comment 22 Zsolt Borbely 2014-05-09 10:28:42 PDT
Created attachment 231162 [details]
Proposed patch
Comment 23 Dirk Schulze 2014-05-09 11:33:47 PDT
Comment on attachment 231162 [details]
Proposed patch

r=me
Comment 24 WebKit Commit Bot 2014-05-09 12:12:13 PDT
Comment on attachment 231162 [details]
Proposed patch

Clearing flags on attachment: 231162

Committed r168543: <http://trac.webkit.org/changeset/168543>
Comment 25 WebKit Commit Bot 2014-05-09 12:12:21 PDT
All reviewed patches have been landed.  Closing bug.
Comment 26 Nikolas Zimmermann 2019-12-09 14:13:19 PST
This patch checked in broken LayoutTests "CONSOLE MESSAGE: line 16: ReferenceError: Can't find variable: runRepaintAndPixelTest" - I just noticed this and wanted to leave a comment.

git grep runRepaintAndPixelTest reveals the broken tests in LayoutTests/svg/, s/AndPixel// should fix it and actually track the repaint rects.