Changeset 244595 in webkit


Ignore:
Timestamp:
Apr 24, 2019 10:19:18 AM (5 years ago)
Author:
commit-queue@webkit.org
Message:

With async scrolling enabled, this MathML test asserts
https://bugs.webkit.org/show_bug.cgi?id=196123

Source/WebCore:

This patch ensures that updateScrollInfoAfterLayout() is called during MathML layout. This
fixes assertions when async scrolling is enabled and MathML elements have non-visible overflow.

Patch by Frederic Wang <fwang@igalia.com> on 2019-04-24
Reviewed by Rob Buis.

Test: mathml/mathml-overflow-crash.html

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::layoutBlock):
(WebCore::RenderMathMLBlock::layoutInvalidMarkup):

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::layoutBlock):

  • rendering/mathml/RenderMathMLMath.cpp:

(WebCore::RenderMathMLMath::layoutBlock):

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::layoutBlock):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::layoutBlock):

  • rendering/mathml/RenderMathMLPadded.cpp:

(WebCore::RenderMathMLPadded::layoutBlock):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::layoutBlock):

  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::layoutBlock):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::layoutBlock):

  • rendering/mathml/RenderMathMLSpace.cpp:

(WebCore::RenderMathMLSpace::layoutBlock):

  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::RenderMathMLToken::layoutBlock):

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::layoutBlock):

LayoutTests:

Patch by Frederic Wang <fwang@igalia.com> on 2019-04-24
Reviewed by Rob Buis.

Add a test for each MathML layoutBlock functions/classes.

  • mathml/mathml-overflow-crash-expected.txt: Added.
  • mathml/mathml-overflow-crash.html: Added.
Location:
trunk
Files:
2 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r244593 r244595  
     12019-04-24  Frederic Wang  <fwang@igalia.com>
     2
     3        With async scrolling enabled, this MathML test asserts
     4        https://bugs.webkit.org/show_bug.cgi?id=196123
     5
     6        Reviewed by Rob Buis.
     7
     8        Add a test for each MathML layoutBlock functions/classes.
     9
     10        * mathml/mathml-overflow-crash-expected.txt: Added.
     11        * mathml/mathml-overflow-crash.html: Added.
     12
    1132019-04-24  Cathie Chen  <cathiechen@igalia.com>
    214
  • trunk/Source/WebCore/ChangeLog

    r244591 r244595  
     12019-04-24  Frederic Wang  <fwang@igalia.com>
     2
     3        With async scrolling enabled, this MathML test asserts
     4        https://bugs.webkit.org/show_bug.cgi?id=196123
     5
     6        This patch ensures that updateScrollInfoAfterLayout() is called during MathML layout. This
     7        fixes assertions when async scrolling is enabled and MathML elements have non-visible overflow.
     8
     9        Reviewed by Rob Buis.
     10
     11        Test: mathml/mathml-overflow-crash.html
     12
     13        * rendering/mathml/RenderMathMLBlock.cpp:
     14        (WebCore::RenderMathMLBlock::layoutBlock):
     15        (WebCore::RenderMathMLBlock::layoutInvalidMarkup):
     16        * rendering/mathml/RenderMathMLFraction.cpp:
     17        (WebCore::RenderMathMLFraction::layoutBlock):
     18        * rendering/mathml/RenderMathMLMath.cpp:
     19        (WebCore::RenderMathMLMath::layoutBlock):
     20        * rendering/mathml/RenderMathMLMenclose.cpp:
     21        (WebCore::RenderMathMLMenclose::layoutBlock):
     22        * rendering/mathml/RenderMathMLOperator.cpp:
     23        (WebCore::RenderMathMLOperator::layoutBlock):
     24        * rendering/mathml/RenderMathMLPadded.cpp:
     25        (WebCore::RenderMathMLPadded::layoutBlock):
     26        * rendering/mathml/RenderMathMLRoot.cpp:
     27        (WebCore::RenderMathMLRoot::layoutBlock):
     28        * rendering/mathml/RenderMathMLRow.cpp:
     29        (WebCore::RenderMathMLRow::layoutBlock):
     30        * rendering/mathml/RenderMathMLScripts.cpp:
     31        (WebCore::RenderMathMLScripts::layoutBlock):
     32        * rendering/mathml/RenderMathMLSpace.cpp:
     33        (WebCore::RenderMathMLSpace::layoutBlock):
     34        * rendering/mathml/RenderMathMLToken.cpp:
     35        (WebCore::RenderMathMLToken::layoutBlock):
     36        * rendering/mathml/RenderMathMLUnderOver.cpp:
     37        (WebCore::RenderMathMLUnderOver::layoutBlock):
     38
    1392019-04-24  Greg V  <greg@unrelenting.technology>
    240
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp

    r239461 r244595  
    253253    repainter.repaintAfterLayout();
    254254
     255    updateScrollInfoAfterLayout();
     256
    255257    clearNeedsLayout();
    256258}
     
    266268    setLogicalHeight(0);
    267269    layoutPositionedObjects(relayoutChildren);
     270    updateScrollInfoAfterLayout();
    268271    clearNeedsLayout();
    269272}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp

    r239427 r244595  
    249249    layoutPositionedObjects(relayoutChildren);
    250250
     251    updateScrollInfoAfterLayout();
     252
    251253    clearNeedsLayout();
    252254}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLMath.cpp

    r238463 r244595  
    8888    layoutPositionedObjects(relayoutChildren);
    8989
     90    updateScrollInfoAfterLayout();
     91
    9092    clearNeedsLayout();
    9193}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp

    r234619 r244595  
    191191    layoutPositionedObjects(relayoutChildren);
    192192
     193    updateScrollInfoAfterLayout();
     194
    193195    clearNeedsLayout();
    194196}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp

    r239427 r244595  
    244244    }
    245245
     246    updateScrollInfoAfterLayout();
     247
    246248    clearNeedsLayout();
    247249}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLPadded.cpp

    r239427 r244595  
    112112    layoutPositionedObjects(relayoutChildren);
    113113
     114    updateScrollInfoAfterLayout();
     115
    114116    clearNeedsLayout();
    115117}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp

    r238463 r244595  
    262262    layoutPositionedObjects(relayoutChildren);
    263263
     264    updateScrollInfoAfterLayout();
     265
    264266    clearNeedsLayout();
    265267}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp

    r239427 r244595  
    179179    layoutPositionedObjects(relayoutChildren);
    180180
     181    updateScrollInfoAfterLayout();
     182
    181183    clearNeedsLayout();
    182184}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp

    r240666 r244595  
    462462    layoutPositionedObjects(relayoutChildren);
    463463
     464    updateScrollInfoAfterLayout();
     465
    464466    clearNeedsLayout();
    465467}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp

    r239427 r244595  
    8282    setLogicalHeight(height + depth);
    8383
     84    updateScrollInfoAfterLayout();
     85
    8486    clearNeedsLayout();
    8587}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp

    r239427 r244595  
    587587    setLogicalHeight(mathVariantGlyph.font->boundsForGlyph(mathVariantGlyph.glyph).height());
    588588
     589    updateScrollInfoAfterLayout();
     590
    589591    clearNeedsLayout();
    590592}
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp

    r240666 r244595  
    354354    layoutPositionedObjects(relayoutChildren);
    355355
     356    updateScrollInfoAfterLayout();
     357
    356358    clearNeedsLayout();
    357359}
Note: See TracChangeset for help on using the changeset viewer.