Title: [149435] trunk/Source/WebCore
- Revision
- 149435
- Author
- akl...@apple.com
- Date
- 2013-05-01 09:55:59 -0700 (Wed, 01 May 2013)
Log Message
REGRESSION(r149287): Assertion failure in fast/frames/flattening/iframe-flattening-crash.html
<http://webkit.org/b/115386>
<rdar://problem/13769995>
Reviewed by Antti Koivisto.
Only send synchronous resize events for the main frame. Subframes change size during layout,
so it never really makes sense for them to use synchronous dispatch anyway.
* page/FrameView.cpp:
(WebCore::FrameView::dispatchResizeEvent):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (149434 => 149435)
--- trunk/Source/WebCore/ChangeLog 2013-05-01 15:47:16 UTC (rev 149434)
+++ trunk/Source/WebCore/ChangeLog 2013-05-01 16:55:59 UTC (rev 149435)
@@ -1,3 +1,17 @@
+2013-05-01 Andreas Kling <akl...@apple.com>
+
+ REGRESSION(r149287): Assertion failure in fast/frames/flattening/iframe-flattening-crash.html
+ <http://webkit.org/b/115386>
+ <rdar://problem/13769995>
+
+ Reviewed by Antti Koivisto.
+
+ Only send synchronous resize events for the main frame. Subframes change size during layout,
+ so it never really makes sense for them to use synchronous dispatch anyway.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::dispatchResizeEvent):
+
2013-05-01 Csaba Osztrogonác <o...@webkit.org>
Unreviewed trivial buildfix after r149432.
Modified: trunk/Source/WebCore/page/FrameView.cpp (149434 => 149435)
--- trunk/Source/WebCore/page/FrameView.cpp 2013-05-01 15:47:16 UTC (rev 149434)
+++ trunk/Source/WebCore/page/FrameView.cpp 2013-05-01 16:55:59 UTC (rev 149435)
@@ -2788,21 +2788,21 @@
{
ASSERT(m_frame);
+ Page* page = m_frame->page();
+ bool isMainFrame = page && page->mainFrame() == m_frame;
+ bool canSendResizeEventSynchronously = isMainFrame && !isInLayout();
+
// If we resized during layout, queue up a resize event for later, otherwise fire it right away.
RefPtr<Event> resizeEvent = Event::create(eventNames().resizeEvent, false, false);
- if (isInLayout())
+ if (canSendResizeEventSynchronously)
+ m_frame->document()->dispatchWindowEvent(resizeEvent.release(), m_frame->document()->domWindow());
+ else
m_frame->document()->enqueueWindowEvent(resizeEvent.release());
- else
- m_frame->document()->dispatchWindowEvent(resizeEvent.release(), m_frame->document()->domWindow());
#if ENABLE(INSPECTOR)
- if (InspectorInstrumentation::hasFrontends()) {
- if (Page* page = m_frame->page()) {
- if (page->mainFrame() == m_frame) {
- if (InspectorClient* inspectorClient = page->inspectorController()->inspectorClient())
- inspectorClient->didResizeMainFrame(m_frame.get());
- }
- }
+ if (InspectorInstrumentation::hasFrontends() && isMainFrame) {
+ if (InspectorClient* inspectorClient = page ? page->inspectorController()->inspectorClient() : 0)
+ inspectorClient->didResizeMainFrame(m_frame.get());
}
#endif
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes