[Webkit-unassigned] [Bug 26983] tst_qwebpage segfaults

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jul 6 07:27:33 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=26983





--- Comment #3 from robert <robert at roberthogan.net>  2009-07-06 07:27:32 PDT ---
(In reply to comment #2)
> I wonder why this doesn't affect other ports? Perhaps the Qt port is calling
> Frame methods differently, thus violating their assumptions.

I'm not sure this is the case here. The sequence of events in
WebCore::Frame::createView is:


    setView(0); 
    frameView = FrameView::create(this, viewportSize);
    frameView->setFixedLayoutSize(fixedLayoutSize);
    frameView->setUseFixedLayout(useFixedLayout);
    ...
    setView(frameView);

So the Frames m_view gets set to 0, a new view is created, and then various
layout calls are made on it. It is during the call to setUseFixedLayout that
WebCore::FrameView::layout fails on an ASSERT (the backtrace shows there are no
intermediate calls to the qt port). This is because setView(frameView) has not
yet been called on the frame.

So as you can see, the assumptions all seem to be contained within
WebCore::Frame::createView. I haven't done enough research to know why this
situation doesn't crop up more often.

I experimented with moving setView(frameView) to right after FrameView::create
but it resulted in the segfaulting test case timing out, and introduced
failures in others. So it seems to be in its current position for good reason.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list