WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
71196
[Qt] [WK2] MiniBrowser assert in QtWebProccess on startup in debug build.
https://bugs.webkit.org/show_bug.cgi?id=71196
Summary
[Qt] [WK2] MiniBrowser assert in QtWebProccess on startup in debug build.
Viatcheslav Ostapenko
Reported
2011-10-30 17:16:06 PDT
Assert in DrawingAreaImpl::exitAcceleratedCompositingMode() ASSERT(!m_layerTreeStateIsFrozen); Call stack: 0 WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode DrawingAreaImpl.cpp 470 0xb5fd7ad4 1 WebKit::DrawingAreaImpl::setRootCompositingLayer DrawingAreaImpl.cpp 298 0xb5fd7111 2 WebKit::WebPage::exitAcceleratedCompositingMode WebPage.cpp 468 0xb5ed1396 3 WebKit::WebChromeClient::attachRootGraphicsLayer WebChromeClient.cpp 684 0xb5fb8aff 4 WebCore::RenderLayerCompositor::detachRootLayer RenderLayerCompositor.cpp 1899 0xb66dcc37 5 WebCore::RenderLayerCompositor::destroyRootLayer RenderLayerCompositor.cpp 1808 0xb66dc63c 6 WebCore::RenderLayerCompositor::enableCompositingMode RenderLayerCompositor.cpp 129 0xb66d6eb0 7 WebCore::RenderLayerCompositor::computeCompositingRequirements RenderLayerCompositor.cpp 791 0xb66d9198 8 WebCore::RenderLayerCompositor::updateCompositingLayers RenderLayerCompositor.cpp 304 0xb66d7626 9 WebCore::FrameView::updateCompositingLayers FrameView.cpp 643 0xb650eac8 10 WebCore::FrameView::layout FrameView.cpp 1127 0xb650ffb0 11 WebCore::FrameView::visibleContentsResized FrameView.cpp 1802 0xb65124be 12 WebCore::ScrollView::updateScrollbars ScrollView.cpp 516 0xb65c6168 13 WebCore::ScrollView::setFrameRect ScrollView.cpp 863 0xb65c7a32 14 WebCore::FrameView::setFrameRect FrameView.cpp 406 0xb650df67 15 WebCore::Widget::resize Widget.h 143 0xb5d7d9d6 16 WebKit::WebPage::setSize WebPage.cpp 687 0xb5ed2917 17 WebKit::DrawingAreaImpl::updateBackingStoreState DrawingAreaImpl.cpp 328 0xb5fd72ac 18 CoreIPC::callMemberFunction<WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned long long, bool, float, WebCore::IntSize const&, WebCore::IntSize const&), unsigned long long, bool, float, WebCore::IntSize, WebCore::IntSize> HandleMessage.h 43 0xb5efa40e 19 CoreIPC::handleMessage<Messages::DrawingArea::UpdateBackingStoreState, WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned long long, bool, float, WebCore::IntSize const&, WebCore::IntSize const&)> HandleMessage.h 277 0xb5efa059 20 WebKit::DrawingArea::didReceiveDrawingAreaMessage DrawingAreaMessageReceiver.cpp 47 0xb5ef9db6 21 WebKit::WebPage::didReceiveMessage WebPage.cpp 2205 0xb5ed856c 22 WebKit::WebProcess::didReceiveMessage WebProcess.cpp 658 0xb5eea5a1 23 CoreIPC::Connection::dispatchMessage Connection.cpp 689 0xb5f1ed76 24 CoreIPC::Connection::dispatchMessages Connection.cpp 716 0xb5f1ef1f 25 MemberFunctionWorkItem0<CoreIPC::Connection>::execute WorkItem.h 79 0xb5f276af 26 RunLoop::performWork RunLoop.cpp 63 0xb5e04499 27 RunLoop::TimerObject::performWork RunLoopQt.cpp 49 0xb5e0549c 28 RunLoop::TimerObject::qt_static_metacall RunLoopQt.moc 48 0xb5e05eca 29 QMetaCallEvent::placeMetaCall qobject.cpp 529 0xb284d6d6 30 QObject::event qobject.cpp 1111 0xb284e2f7 31 QApplicationPrivate::notify_helper qapplication.cpp 4080 0xb35dc436 32 QApplication::notify qapplication.cpp 3497 0xb35d9e37 33 QCoreApplication::notifyInternal qcoreapplication.cpp 827 0xb282e10a 34 QCoreApplication::sendEvent qcoreapplication.h 205 0xb5d78a35 35 QCoreApplicationPrivate::sendPostedEvents qcoreapplication.cpp 1469 0xb282efef 36 QCoreApplication::sendPostedEvents qcoreapplication.cpp 1339 0xb282ecab 37 QCoreApplication::sendPostedEvents qcoreapplication.h 210 0xb2b3564a 38 QWindowSystemInterface::sendWindowSystemEvents qwindowsysteminterface_qpa.cpp 296 0xb2b3542a 39 QEventDispatcherQPA::processEvents qeventdispatcher_qpa.cpp 70 0xb09550e8 40 QEventLoop::processEvents qeventloop.cpp 149 0xb282bc31 41 QEventLoop::exec qeventloop.cpp 225 0xb282be92 42 QCoreApplication::exec qcoreapplication.cpp 1094 0xb282e76e 43 RunLoop::run RunLoopQt.cpp 65 0xb5e056c9 44 WebKit::WebProcessMainQt WebProcessMainQt.cpp 199 0xb5e00e6f 45 main MainQt.cpp 38 0x804850f
Attachments
Delay exit from AC mode if layer state is frozen during setSize/layout.
(1.59 KB, patch)
2011-10-30 17:51 PDT
,
Viatcheslav Ostapenko
no flags
Details
Formatted Diff
Diff
[Qt] [WK2] MiniBrowser assert in QtWebProccess on startup in debug build.
(1.93 KB, patch)
2011-11-03 03:00 PDT
,
Simon Hausmann
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Viatcheslav Ostapenko
Comment 1
2011-10-30 17:51:54 PDT
Created
attachment 113004
[details]
Delay exit from AC mode if layer state is frozen during setSize/layout.
Simon Hausmann
Comment 2
2011-10-31 02:11:53 PDT
Comment on
attachment 113004
[details]
Delay exit from AC mode if layer state is frozen during setSize/layout. View in context:
https://bugs.webkit.org/attachment.cgi?id=113004&action=review
> Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:297 > + if (m_inUpdateBackingStoreState && !m_layerTreeStateIsFrozen)
How is it possible to hit this code patch? It's wrapped in if (!m_alwaysUseCompositing).
Simon Hausmann
Comment 3
2011-10-31 02:29:44 PDT
As a matter of fact, I can't reproduce this on trunk (
r98839
), because we should now always be compositing.
Viatcheslav Ostapenko
Comment 4
2011-10-31 09:59:38 PDT
(In reply to
comment #3
)
> As a matter of fact, I can't reproduce this on trunk (
r98839
), because we should now always be compositing.
I have
r98793
and it doesn't run in AC always mode. I'll figure out.
Viatcheslav Ostapenko
Comment 5
2011-10-31 20:10:32 PDT
(In reply to
comment #3
)
> As a matter of fact, I can't reproduce this on trunk (
r98839
), because we should now always be compositing.
It's QDesktopWebView.Seems QDesktopWebView doesn't have AC because QtDesktopWebPageProxy disables AC in constructor:
Noam Rosenthal
Comment 6
2011-10-31 23:15:19 PDT
Maybe a better solution would be to expose forceCompositing to WebPreferencesPrivate, and to enable force-compositing for touch only.
Simon Hausmann
Comment 7
2011-10-31 23:26:28 PDT
Ohh, I see. On that note: Alexis is currently working on changing the DesktopWebView from a painted item to using AC together with layered scrollbars.
Viatcheslav Ostapenko
Comment 8
2011-11-01 05:52:42 PDT
(In reply to
comment #6
)
> Maybe a better solution would be to expose forceCompositing to WebPreferencesPrivate, and to enable force-compositing for touch only.
forceCompositing is not enabled for desktop view. The problem, that it tries to switch AC on and off. IMHO, another solution would be to disable AC for DV now.
Viatcheslav Ostapenko
Comment 9
2011-11-01 05:57:39 PDT
(In reply to
comment #6
)
> Maybe a better solution would be to expose forceCompositing to WebPreferencesPrivate, and to enable force-compositing for touch only.
BTW, is any other port still using switchable AC (not always on)? In this case they would need patch because webprocess would assert/crash if window get resized during load (when m_layerTreeStateIsFrozen is set). In Qt Minibrowser on startup 1st comes load, then setSize from window getting visible.
Noam Rosenthal
Comment 10
2011-11-02 08:40:12 PDT
(In reply to
comment #9
)
> (In reply to
comment #6
) > > Maybe a better solution would be to expose forceCompositing to WebPreferencesPrivate, and to enable force-compositing for touch only. > > BTW, is any other port still using switchable AC (not always on)? > In this case they would need patch because webprocess would assert/crash if window get resized during load (when m_layerTreeStateIsFrozen is set). > In Qt Minibrowser on startup 1st comes load, then setSize from window getting visible.
Yes, Apple uses switchable AC I believe. but we have AC always on for touch and always off for desktop (at least that's how it should be).
Simon Hausmann
Comment 11
2011-11-03 02:56:34 PDT
(In reply to
comment #10
)
> (In reply to
comment #9
) > > (In reply to
comment #6
) > > > Maybe a better solution would be to expose forceCompositing to WebPreferencesPrivate, and to enable force-compositing for touch only. > > > > BTW, is any other port still using switchable AC (not always on)? > > In this case they would need patch because webprocess would assert/crash if window get resized during load (when m_layerTreeStateIsFrozen is set). > > In Qt Minibrowser on startup 1st comes load, then setSize from window getting visible. > > Yes, Apple uses switchable AC I believe. but we have AC always on for touch and always off for desktop (at least that's how it should be).
And it turns out that this is where the bug is, AC is not actually properly turned off for the desktop view. I'm fixing this as we speak :)
Simon Hausmann
Comment 12
2011-11-03 03:00:41 PDT
Created
attachment 113449
[details]
[Qt] [WK2] MiniBrowser assert in QtWebProccess on startup in debug build.
Simon Hausmann
Comment 13
2011-11-03 04:20:49 PDT
Comment on
attachment 113449
[details]
[Qt] [WK2] MiniBrowser assert in QtWebProccess on startup in debug build. Clearing flags on attachment: 113449 Committed
r99165
: <
http://trac.webkit.org/changeset/99165
>
Simon Hausmann
Comment 14
2011-11-03 04:20:57 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug