During our WebView initialization a default FrameView is created, triggering a layout. This is triggering QtViewportHandler::pageContentsSizeChanged earlier than the first QtViewportHandler::viewportAttributesChanged, which was responsible for initializing m_rawAttributes from QtViewportHandler. This hasn't been noticed before because we set useFixedLayout in QQuickWebViewFlickablePrivate::initialize before the layout is finished, which triggers the correct layout anyway. However, while debugging https://bugs.webkit.org/show_bug.cgi?id=92753, debug messages delayed the initialization of the webview and the first layout finished before expected, leading us to "ASSERT(scale < 0)" in QQuickWebPage::setContentsScale. (The random negative scale was returned by WebCore::computeMinimumScaleFactorForContentContained, called in QtViewportHandler::pageContentsSizeChanged). This overly descriptive bug report is for the sake of remembering, since it took me a while to understand the race condition... Patch is coming.
Created attachment 155874 [details] Patch
Comment on attachment 155874 [details] Patch Clearing flags on attachment: 155874 Committed r124374: <http://trac.webkit.org/changeset/124374>
All reviewed patches have been landed. Closing bug.