Title: [116656] trunk
- Revision
- 116656
- Author
- [email protected]
- Date
- 2012-05-10 09:54:02 -0700 (Thu, 10 May 2012)
Log Message
[EFL][DRT] ewk_view_paint_contents may trigger assertion failure
https://bugs.webkit.org/show_bug.cgi?id=85058
Patch by Dominik Röttsches <[email protected]> on 2012-05-10
Reviewed by Gustavo Noronha Silva.
Source/WebKit/efl:
Fixing assertion failure triggered in media/media-fragment cases.
The assertion is hit because of a race between scheduleRelayout() and
the EWK's idle tiling painting. This is exposed by test cases
that rapidly insert child nodes to the document which lead to
scheduleRelayout() calls. Using the general purpose defensive
layout function, not causing any extra relayout work if there's
nothing to be done, but still avoiding the assertion failure if
layout is needed.
* ewk/ewk_view.cpp:
(ewk_view_paint):
(ewk_view_paint_contents):
LayoutTests:
Unskipping media-fragments that pass after the assertion failure was fixed.
* platform/efl/Skipped:
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (116655 => 116656)
--- trunk/LayoutTests/ChangeLog 2012-05-10 16:47:45 UTC (rev 116655)
+++ trunk/LayoutTests/ChangeLog 2012-05-10 16:54:02 UTC (rev 116656)
@@ -1,3 +1,14 @@
+2012-05-10 Dominik Röttsches <[email protected]>
+
+ [EFL][DRT] ewk_view_paint_contents may trigger assertion failure
+ https://bugs.webkit.org/show_bug.cgi?id=85058
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Unskipping media-fragments that pass after the assertion failure was fixed.
+
+ * platform/efl/Skipped:
+
2012-05-10 Erik Arvidsson <[email protected]>
Add test that makes sure wrappers are setup using the correct window scope
Modified: trunk/LayoutTests/platform/efl/Skipped (116655 => 116656)
--- trunk/LayoutTests/platform/efl/Skipped 2012-05-10 16:47:45 UTC (rev 116655)
+++ trunk/LayoutTests/platform/efl/Skipped 2012-05-10 16:54:02 UTC (rev 116656)
@@ -1038,16 +1038,6 @@
media/media-controller-playback.html
media/media-element-play-after-eos.html
media/media-extension-with-fragment.html
-media/media-fragments/TC0001-TC0009.html
-media/media-fragments/TC0010-TC0019.html
-media/media-fragments/TC0020-TC0029.html
-media/media-fragments/TC0030-TC0039.html
-media/media-fragments/TC0040-TC0049.html
-media/media-fragments/TC0050-TC0059.html
-media/media-fragments/TC0060-TC0069.html
-media/media-fragments/TC0070-TC0079.html
-media/media-fragments/TC0080-TC0089.html
-media/media-fragments/TC0090-TC0099.html
media/media-initialTime.html
media/media-load-event.html
media/media-startTime.html
Modified: trunk/Source/WebKit/efl/ChangeLog (116655 => 116656)
--- trunk/Source/WebKit/efl/ChangeLog 2012-05-10 16:47:45 UTC (rev 116655)
+++ trunk/Source/WebKit/efl/ChangeLog 2012-05-10 16:54:02 UTC (rev 116656)
@@ -1,3 +1,23 @@
+2012-05-10 Dominik Röttsches <[email protected]>
+
+ [EFL][DRT] ewk_view_paint_contents may trigger assertion failure
+ https://bugs.webkit.org/show_bug.cgi?id=85058
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Fixing assertion failure triggered in media/media-fragment cases.
+ The assertion is hit because of a race between scheduleRelayout() and
+ the EWK's idle tiling painting. This is exposed by test cases
+ that rapidly insert child nodes to the document which lead to
+ scheduleRelayout() calls. Using the general purpose defensive
+ layout function, not causing any extra relayout work if there's
+ nothing to be done, but still avoiding the assertion failure if
+ layout is needed.
+
+ * ewk/ewk_view.cpp:
+ (ewk_view_paint):
+ (ewk_view_paint_contents):
+
2012-05-10 Sheriff Bot <[email protected]>
Unreviewed, rolling out r116633.
Modified: trunk/Source/WebKit/efl/ewk/ewk_view.cpp (116655 => 116656)
--- trunk/Source/WebKit/efl/ewk/ewk_view.cpp 2012-05-10 16:47:45 UTC (rev 116655)
+++ trunk/Source/WebKit/efl/ewk/ewk_view.cpp 2012-05-10 16:54:02 UTC (rev 116656)
@@ -2778,8 +2778,7 @@
WebCore::FrameView* view = priv->mainFrame->view();
EINA_SAFETY_ON_NULL_RETURN_VAL(view, false);
- if (view->needsLayout())
- view->forceLayout();
+ view->updateLayoutAndStyleIfNeededRecursive();
WebCore::GraphicsContext graphicsContext(cr);
WebCore::IntRect rect(*area);
@@ -2806,6 +2805,7 @@
WebCore::GraphicsContext graphicsContext(cr);
WebCore::IntRect rect(*area);
+ view->updateLayoutAndStyleIfNeededRecursive();
cairo_save(cr);
graphicsContext.save();
graphicsContext.clip(rect);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes