Changeset 116656 in webkit


Ignore:
Timestamp:
May 10, 2012 9:54:02 AM (12 years ago)
Author:
commit-queue@webkit.org
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 <dominik.rottsches@intel.com> 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:
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r116655 r116656  
     12012-05-10  Dominik Röttsches  <dominik.rottsches@intel.com>
     2
     3        [EFL][DRT] ewk_view_paint_contents may trigger assertion failure
     4        https://bugs.webkit.org/show_bug.cgi?id=85058
     5
     6        Reviewed by Gustavo Noronha Silva.
     7
     8        Unskipping media-fragments that pass after the assertion failure was fixed.
     9
     10        * platform/efl/Skipped:
     11
    1122012-05-10  Erik Arvidsson  <arv@chromium.org>
    213
  • trunk/LayoutTests/platform/efl/Skipped

    r116639 r116656  
    10391039media/media-element-play-after-eos.html
    10401040media/media-extension-with-fragment.html
    1041 media/media-fragments/TC0001-TC0009.html
    1042 media/media-fragments/TC0010-TC0019.html
    1043 media/media-fragments/TC0020-TC0029.html
    1044 media/media-fragments/TC0030-TC0039.html
    1045 media/media-fragments/TC0040-TC0049.html
    1046 media/media-fragments/TC0050-TC0059.html
    1047 media/media-fragments/TC0060-TC0069.html
    1048 media/media-fragments/TC0070-TC0079.html
    1049 media/media-fragments/TC0080-TC0089.html
    1050 media/media-fragments/TC0090-TC0099.html
    10511041media/media-initialTime.html
    10521042media/media-load-event.html
  • trunk/Source/WebKit/efl/ChangeLog

    r116639 r116656  
     12012-05-10  Dominik Röttsches  <dominik.rottsches@intel.com>
     2
     3        [EFL][DRT] ewk_view_paint_contents may trigger assertion failure
     4        https://bugs.webkit.org/show_bug.cgi?id=85058
     5
     6        Reviewed by Gustavo Noronha Silva.
     7
     8        Fixing assertion failure triggered in media/media-fragment cases.
     9        The assertion is hit because of a race between scheduleRelayout() and
     10        the EWK's idle tiling painting. This is exposed by test cases
     11        that rapidly insert child nodes to the document which lead to
     12        scheduleRelayout() calls. Using the general purpose defensive
     13        layout function, not causing any extra relayout work if there's
     14        nothing to be done, but still avoiding the assertion failure if
     15        layout is needed.
     16
     17        * ewk/ewk_view.cpp:
     18        (ewk_view_paint):
     19        (ewk_view_paint_contents):
     20
    1212012-05-10  Sheriff Bot  <webkit.review.bot@gmail.com>
    222
  • trunk/Source/WebKit/efl/ewk/ewk_view.cpp

    r116250 r116656  
    27792779    EINA_SAFETY_ON_NULL_RETURN_VAL(view, false);
    27802780
    2781     if (view->needsLayout())
    2782         view->forceLayout();
     2781    view->updateLayoutAndStyleIfNeededRecursive();
    27832782    WebCore::GraphicsContext graphicsContext(cr);
    27842783    WebCore::IntRect rect(*area);
     
    28072806    WebCore::IntRect rect(*area);
    28082807
     2808    view->updateLayoutAndStyleIfNeededRecursive();
    28092809    cairo_save(cr);
    28102810    graphicsContext.save();
Note: See TracChangeset for help on using the changeset viewer.