Title: [149382] trunk
- Revision
- 149382
- Author
- [email protected]
- Date
- 2013-04-30 11:09:52 -0700 (Tue, 30 Apr 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 Darin Adler.
Source/WebCore:
Put the resize event on the Document's event queue if it happens while layout is in progress.
This avoids re-entering layout while laying out flattened subframes.
Also move the little logic for the resize event from EventHandler to FrameView (the only client.)
* page/EventHandler.cpp:
* page/EventHandler.h:
* page/FrameView.cpp:
(WebCore::FrameView::dispatchResizeEvent):
LayoutTests:
* platform/mac/TestExpectations:
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (149381 => 149382)
--- trunk/LayoutTests/ChangeLog 2013-04-30 18:07:15 UTC (rev 149381)
+++ trunk/LayoutTests/ChangeLog 2013-04-30 18:09:52 UTC (rev 149382)
@@ -1,3 +1,13 @@
+2013-04-30 Andreas Kling <[email protected]>
+
+ REGRESSION(r149287): Assertion failure in fast/frames/flattening/iframe-flattening-crash.html
+ <http://webkit.org/b/115386>
+ <rdar://problem/13769995>
+
+ Reviewed by Darin Adler.
+
+ * platform/mac/TestExpectations:
+
2013-04-30 Glenn Adams <[email protected]>
The bison grammar for @supports should return 0 in case of an error
Modified: trunk/LayoutTests/platform/mac/TestExpectations (149381 => 149382)
--- trunk/LayoutTests/platform/mac/TestExpectations 2013-04-30 18:07:15 UTC (rev 149381)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2013-04-30 18:09:52 UTC (rev 149382)
@@ -1547,6 +1547,3 @@
webkit.org/b/115292 fast/writing-mode/japanese-ruby-vertical-rl.html
webkit.org/b/115292 fast/writing-mode/vertical-baseline-alignment.html
webkit.org/b/115292 fast/writing-mode/vertical-font-fallback.html
-
-# REGRESSION (r149287?): Assertion failure in fast/frames/flattening/iframe-flattening-crash.html
-webkit.org/b/115386 [ Debug ] fast/frames/flattening/iframe-flattening-crash.html [ Skip ]
Modified: trunk/Source/WebCore/ChangeLog (149381 => 149382)
--- trunk/Source/WebCore/ChangeLog 2013-04-30 18:07:15 UTC (rev 149381)
+++ trunk/Source/WebCore/ChangeLog 2013-04-30 18:09:52 UTC (rev 149382)
@@ -1,3 +1,21 @@
+2013-04-30 Andreas Kling <[email protected]>
+
+ REGRESSION(r149287): Assertion failure in fast/frames/flattening/iframe-flattening-crash.html
+ <http://webkit.org/b/115386>
+ <rdar://problem/13769995>
+
+ Reviewed by Darin Adler.
+
+ Put the resize event on the Document's event queue if it happens while layout is in progress.
+ This avoids re-entering layout while laying out flattened subframes.
+
+ Also move the little logic for the resize event from EventHandler to FrameView (the only client.)
+
+ * page/EventHandler.cpp:
+ * page/EventHandler.h:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::dispatchResizeEvent):
+
2013-04-30 Anders Carlsson <[email protected]>
Fix build.
Modified: trunk/Source/WebCore/page/EventHandler.cpp (149381 => 149382)
--- trunk/Source/WebCore/page/EventHandler.cpp 2013-04-30 18:07:15 UTC (rev 149381)
+++ trunk/Source/WebCore/page/EventHandler.cpp 2013-04-30 18:09:52 UTC (rev 149382)
@@ -3784,12 +3784,6 @@
}
}
-void EventHandler::dispatchResizeEvent()
-{
- RefPtr<Event> resizeEvent = Event::create(eventNames().resizeEvent, false, false);
- m_frame->document()->dispatchWindowEvent(resizeEvent.release(), m_frame->document()->domWindow());
-}
-
void EventHandler::sendScrollEvent()
{
setFrameWasScrolledByUser();
Modified: trunk/Source/WebCore/page/EventHandler.h (149381 => 149382)
--- trunk/Source/WebCore/page/EventHandler.h 2013-04-30 18:07:15 UTC (rev 149381)
+++ trunk/Source/WebCore/page/EventHandler.h 2013-04-30 18:09:52 UTC (rev 149382)
@@ -230,7 +230,6 @@
void capsLockStateMayHaveChanged(); // Only called by FrameSelection
- void dispatchResizeEvent(); // Only called in FrameView
void sendScrollEvent(); // Ditto
#if PLATFORM(MAC) && defined(__OBJC__)
Modified: trunk/Source/WebCore/page/FrameView.cpp (149381 => 149382)
--- trunk/Source/WebCore/page/FrameView.cpp 2013-04-30 18:07:15 UTC (rev 149381)
+++ trunk/Source/WebCore/page/FrameView.cpp 2013-04-30 18:09:52 UTC (rev 149382)
@@ -34,6 +34,7 @@
#include "CachedResourceLoader.h"
#include "Chrome.h"
#include "ChromeClient.h"
+#include "DOMWindow.h"
#include "DocumentMarkerController.h"
#include "EventHandler.h"
#include "FloatRect.h"
@@ -2787,7 +2788,12 @@
{
ASSERT(m_frame);
- m_frame->eventHandler()->dispatchResizeEvent();
+ // 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())
+ m_frame->document()->enqueueWindowEvent(resizeEvent.release());
+ else
+ m_frame->document()->dispatchWindowEvent(resizeEvent.release(), m_frame->document()->domWindow());
#if ENABLE(INSPECTOR)
if (InspectorInstrumentation::hasFrontends()) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes