Bug 15153 - REGRESSION (r25395): Assertion failure in FrameView::scheduleRelayout() (m_frame->view() == this)
Summary: REGRESSION (r25395): Assertion failure in FrameView::scheduleRelayout() (m_fr...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 523.x (Safari 3)
Hardware: Mac OS X 10.4
: P1 Normal
Assignee: Nobody
URL:
Keywords: Regression
Depends on:
Blocks:
 
Reported: 2007-09-06 13:35 PDT by mitz
Modified: 2007-09-06 14:06 PDT (History)
2 users (show)

See Also:


Attachments
Test case (will assert) (315 bytes, text/html)
2007-09-06 13:52 PDT, mitz
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description mitz 2007-09-06 13:35:12 PDT
I just hit this assertion (while Safari was in the background. I do not know how to reproduce):

ASSERTION FAILED: m_frame->view() == this
(WebCore/page/FrameView.cpp:650 void WebCore::FrameView::scheduleRelayout())

I very much suspect it is a result of <http://trac.webkit.org/projects/webkit/changeset/25395>.

Backtrace:

0   com.apple.WebCore             	0x01a53960 WebCore::FrameView::scheduleRelayout() + 144
1   com.apple.WebCore             	0x01b56f90 WebCore::RenderObject::setNeedsLayout(bool, bool) + 116
2   com.apple.WebCore             	0x01b58004 WebCore::RenderObject::setStyle(WebCore::RenderStyle*) + 4084
3   com.apple.WebCore             	0x01b08b48 WebCore::RenderBox::setStyle(WebCore::RenderStyle*) + 88
4   com.apple.WebCore             	0x01ae948c WebCore::RenderBlock::setStyle(WebCore::RenderStyle*) + 68
5   com.apple.WebCore             	0x01b8f9f8 WebCore::RenderTextControl::setStyle(WebCore::RenderStyle*) + 40
6   com.apple.WebCore             	0x01c9c684 WebCore::Node::setRenderStyle(WebCore::RenderStyle*) + 88
7   com.apple.WebCore             	0x01ca99f4 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 864
8   com.apple.WebCore             	0x01a1c51c WebCore::HTMLGenericFormElement::recalcStyle(WebCore::Node::StyleChange) + 40
9   com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
10  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
11  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
12  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
13  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
14  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
15  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
16  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
17  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
18  com.apple.WebCore             	0x01ca9c60 WebCore::Element::recalcStyle(WebCore::Node::StyleChange) + 1484
19  com.apple.WebCore             	0x01a68cd0 WebCore::Document::recalcStyle(WebCore::Node::StyleChange) + 1448
20  com.apple.WebCore             	0x01a5bfd8 WebCore::Document::updateRendering() + 80
21  com.apple.WebCore             	0x01a5f3c0 WebCore::Document::updateDocumentsRendering() + 92
22  com.apple.WebCore             	0x01c63e64 WebCore::EventTargetNode::dispatchGenericEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool) + 3044
23  com.apple.WebCore             	0x01c64c34 WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool, WebCore::EventTarget*) + 392
24  com.apple.WebCore             	0x01c64cc8 WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool) + 76
25  com.apple.WebCore             	0x01a54fb0 WebCore::FrameView::scheduleEvent(WTF::PassRefPtr<WebCore::Event>, WTF::PassRefPtr<WebCore::EventTargetNode>, bool) + 140
26  com.apple.WebCore             	0x01b3feac WebCore::RenderLayer::scrollToOffset(int, int, bool, bool) + 964
27  com.apple.WebCore             	0x01b8c47c WebCore::RenderTextControl::forwardEvent(WebCore::Event*) + 280
28  com.apple.WebCore             	0x01a1a508 WebCore::HTMLInputElement::defaultEventHandler(WebCore::Event*) + 4516
29  com.apple.WebCore             	0x01c63e00 WebCore::EventTargetNode::dispatchGenericEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool) + 2944
30  com.apple.WebCore             	0x01c64c34 WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool, WebCore::EventTarget*) + 392
31  com.apple.WebCore             	0x01c64cc8 WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool) + 76
32  com.apple.WebCore             	0x01c64044 WebCore::EventTargetNode::dispatchHTMLEvent(WebCore::AtomicString const&, bool, bool) + 224
33  com.apple.WebCore             	0x01c640ac WebCore::EventTargetNode::dispatchBlurEvent() + 52
34  com.apple.WebCore             	0x01a147c4 WebCore::HTMLInputElement::dispatchBlurEvent() + 228
35  com.apple.WebCore             	0x01a63354 WebCore::Document::setFocusedNode(WTF::PassRefPtr<WebCore::Node>) + 940
36  com.apple.WebCore             	0x01a639a0 WebCore::Document::focusedNodeRemoved(WebCore::Node*) + 48
37  com.apple.WebCore             	0x01c9b590 WebCore::Node::willRemove() + 140
38  com.apple.WebCore             	0x01a88494 WebCore::ContainerNode::willRemove() + 108
39  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
40  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
41  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
42  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
43  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
44  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
45  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
46  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
47  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
48  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
49  com.apple.WebCore             	0x01a8846c WebCore::ContainerNode::willRemove() + 68
50  com.apple.WebCore             	0x01a62bb0 WebCore::Document::detach() + 204
51  com.apple.WebCore             	0x01fbca78 WebCore::CachedPage::clear() + 428
52  com.apple.WebCore             	0x01fbdb04 WebCore::CachedPage::close() + 180
53  com.apple.WebCore             	0x0201d028 WebCore::PageCache::releaseAutoreleasedPagesNow() + 156
54  com.apple.WebCore             	0x0201d288 WebCore::PageCache::releaseAutoreleasedPagesNowOrReschedule(WebCore::Timer<WebCore::PageCache>*) + 472
55  com.apple.WebCore             	0x0201eb0c WebCore::Timer<WebCore::PageCache>::fired() + 148
56  com.apple.WebCore             	0x01c2cfdc WebCore::TimerBase::fireTimers(double, WTF::Vector<WebCore::TimerBase*, 0ul> const&) + 240
57  com.apple.WebCore             	0x01c2d0bc WebCore::TimerBase::sharedTimerFired() + 128
58  com.apple.WebCore             	0x01c2c284 WebCore::timerFired(__CFRunLoopTimer*, void*) + 136
59  com.apple.CoreFoundation      	0x96289930 CFRunLoopRunSpecific + 2992
60  com.apple.HIToolbox           	0x9420a0d8 RunCurrentEventLoopInMode + 264
61  com.apple.HIToolbox           	0x94209efc ReceiveNextEventCommon + 412
62  com.apple.HIToolbox           	0x94209d3c BlockUntilNextEventMatchingListInMode + 84
63  com.apple.AppKit              	0x959b8330 _DPSNextEvent + 580
64  com.apple.AppKit              	0x959b7d80 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 112
65  com.apple.Safari              	0x00006cec 0x1000 + 23788
66  com.apple.AppKit              	0x959b1b58 -[NSApplication run] + 736
67  com.apple.AppKit              	0x95982754 NSApplicationMain + 548
68  com.apple.Safari              	0x0004ce20 0x1000 + 310816
69  ???                           	0x00000ffc 0 + 4092
Comment 1 mitz 2007-09-06 13:52:36 PDT
Created attachment 16211 [details]
Test case (will assert)
Comment 2 mitz 2007-09-06 14:01:58 PDT
The test case does not crash release builds, although I think with more complicated layout it might. This is still a P1 regression in my opinion because of the change of behavior (blur event dispatched where it previously hadn't been, and with arbitrary timing). See also bug 12768.
Comment 3 Darin Adler 2007-09-06 14:05:03 PDT
r25397