Reviewed by Eric Seidel.
- fix http://bugs.webkit.org/show_bug.cgi?id=16490
ASSERT in ~FrameView while viewing/reloading WICD test case
Test: fast/dynamic/paused-event-dispatch.html
* page/FrameView.cpp:
(WebCore::FrameView::~FrameView):
(WebCore::FrameView::layout): Changed to always pause event dispatch and
always resume event dispatch, regardless of whether the post-layout
task time is active. However, if it is active, assert that event
dispatch is still paused.
LayoutTests:
Reviewed by Eric Seidel.
- test for http://bugs.webkit.org/show_bug.cgi?id=16490
ASSERT in ~FrameView while viewing/reloading WICD test case
* fast/dynamic/paused-event-dispatch-expected.txt: Added.
* fast/dynamic/paused-event-dispatch.html: Added.
* fast/dynamic/resources/paused-event-dispatch-iframe.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@29002
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2007-12-27 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Eric Seidel.
+
+ - test for http://bugs.webkit.org/show_bug.cgi?id=16490
+ ASSERT in ~FrameView while viewing/reloading WICD test case
+
+ * fast/dynamic/paused-event-dispatch-expected.txt: Added.
+ * fast/dynamic/paused-event-dispatch.html: Added.
+ * fast/dynamic/resources/paused-event-dispatch-iframe.html: Added.
+
2007-12-27 Sam Weinig <sam@webkit.org>
Reviewed by Maciej.
--- /dev/null
+Test for http://bugs.webkit.org/show_bug.cgi?id=16490 ASSERT in ~FrameView while viewing/reloading WICD test case.
+
+
+PASS
+
--- /dev/null
+<p>
+ Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=16490">http://bugs.webkit.org/show_bug.cgi?id=16490</a>
+ ASSERT in ~FrameView while viewing/reloading WICD test case</i>.
+</p>
+<div>
+ <iframe onload="test()" style="width: 100%;" src="resources/paused-event-dispatch-iframe.html"></iframe>
+</div>
+<div id="bottomBox" style="position: absolute; left: 0; top: 5000px; height: 10px; width: 10px;"></div>
+<div style="height: 100px; width: 100px; overflow: auto;" id="overflow">
+ <div style="height: 200px;" id="tallBox"></div>
+</div>
+<div id="result">FAIL</div>
+<script>
+ function overflowChanged()
+ {
+ document.getElementById("result").innerText = "PASS";
+ }
+
+ function test()
+ {
+ document.body.offsetTop;
+ var bottomBox = document.getElementById("bottomBox");
+ bottomBox.parentNode.removeChild(bottomBox);
+ document.addEventListener("overflowchanged", overflowChanged, true, true);
+ }
+
+ function iframeResized()
+ {
+ document.body.appendChild(document.createElement("div"));
+ if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.dumpAsText();
+ }
+ setTimeout(finish, 0);
+ }
+
+ function finish()
+ {
+ document.getElementById("tallBox").style.height = "50px";
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }
+</script>
--- /dev/null
+<body onresize="parent.iframeResized()">
+</body>
+2007-12-27 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Eric Seidel.
+
+ - fix http://bugs.webkit.org/show_bug.cgi?id=16490
+ ASSERT in ~FrameView while viewing/reloading WICD test case
+
+ Test: fast/dynamic/paused-event-dispatch.html
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::~FrameView):
+ (WebCore::FrameView::layout): Changed to always pause event dispatch and
+ always resume event dispatch, regardless of whether the post-layout
+ task time is active. However, if it is active, assert that event
+ dispatch is still paused.
+
2007-12-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
resetScrollbars();
ASSERT(m_refCount == 0);
- ASSERT(d->m_scheduledEvents.isEmpty() && !d->m_enqueueEvents);
+ ASSERT(d->m_scheduledEvents.isEmpty());
+ ASSERT(!d->m_enqueueEvents);
if (m_frame) {
ASSERT(m_frame->view() != this || !m_frame->document() || !m_frame->document()->renderer());
RenderLayer* layer = root->enclosingLayer();
- if (!d->postLayoutTasksTimer.isActive())
- pauseScheduledEvents();
+ pauseScheduledEvents();
if (subtree)
root->view()->pushLayoutState(root);
pauseScheduledEvents();
layout();
}
+ } else {
+ resumeScheduledEvents();
+ ASSERT(d->m_enqueueEvents);
}
d->nestedLayoutCount--;