⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 277193 in webkit


Ignore:
Timestamp:
May 7, 2021, 11:48:46 AM (5 years ago)
Author:
Russell Epstein
Message:

Cherry-pick r276739. rdar://problem/77581103

Don't create custom scrollbars for fullscreen placeholders.
​https://bugs.webkit.org/show_bug.cgi?id=225141
Source/WebCore:

<rdar://64800098>

Reviewed by Darin Adler.

We can end up calling RenderScrollbar::createCustomScrollbar with
element = nullptr from RenderLayer::createScrollbar,
when the renderer is a RenderFullscreenPlaceholder.

We don't need to bother with scrollbars for the placeholder, so check to
make sure we have a valid element before creating custom scollbars.

Test: fullscreen/full-screen-crash-custom-scrollbars.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::createScrollbar):

LayoutTests:

Reviewed by Darin Adler.

  • fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
  • fullscreen/full-screen-crash-custom-scrollbars.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@276739 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Location:
branches/safari-611-branch
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-611-branch/LayoutTests/ChangeLog

    r277192 r277193  
     12021-05-07  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r276739. rdar://problem/77581103
     4
     5    Don't create custom scrollbars for fullscreen placeholders.
     6    https://bugs.webkit.org/show_bug.cgi?id=225141
     7    Source/WebCore:
     8   
     9    <rdar://64800098>
     10   
     11    Reviewed by Darin Adler.
     12   
     13    We can end up calling RenderScrollbar::createCustomScrollbar with
     14    `element = nullptr` from RenderLayer::createScrollbar,
     15    when the renderer is a RenderFullscreenPlaceholder.
     16   
     17    We don't need to bother with scrollbars for the placeholder, so check to
     18    make sure we have a valid element before creating custom scollbars.
     19   
     20    Test: fullscreen/full-screen-crash-custom-scrollbars.html
     21   
     22    * rendering/RenderLayer.cpp:
     23    (WebCore::RenderLayer::createScrollbar):
     24   
     25    LayoutTests:
     26   
     27    Reviewed by Darin Adler.
     28   
     29    * fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
     30    * fullscreen/full-screen-crash-custom-scrollbars.html: Added.
     31   
     32    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276739 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     33
     34    2021-04-28  Cameron McCormack  <heycam@apple.com>
     35
     36            Don't create custom scrollbars for fullscreen placeholders.
     37            https://bugs.webkit.org/show_bug.cgi?id=225141
     38
     39            Reviewed by Darin Adler.
     40
     41            * fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
     42            * fullscreen/full-screen-crash-custom-scrollbars.html: Added.
     43
    1442021-05-07  Russell Epstein  <repstein@apple.com>
    245
  • branches/safari-611-branch/Source/WebCore/ChangeLog

    r277192 r277193  
     12021-05-07  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r276739. rdar://problem/77581103
     4
     5    Don't create custom scrollbars for fullscreen placeholders.
     6    https://bugs.webkit.org/show_bug.cgi?id=225141
     7    Source/WebCore:
     8   
     9    <rdar://64800098>
     10   
     11    Reviewed by Darin Adler.
     12   
     13    We can end up calling RenderScrollbar::createCustomScrollbar with
     14    `element = nullptr` from RenderLayer::createScrollbar,
     15    when the renderer is a RenderFullscreenPlaceholder.
     16   
     17    We don't need to bother with scrollbars for the placeholder, so check to
     18    make sure we have a valid element before creating custom scollbars.
     19   
     20    Test: fullscreen/full-screen-crash-custom-scrollbars.html
     21   
     22    * rendering/RenderLayer.cpp:
     23    (WebCore::RenderLayer::createScrollbar):
     24   
     25    LayoutTests:
     26   
     27    Reviewed by Darin Adler.
     28   
     29    * fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
     30    * fullscreen/full-screen-crash-custom-scrollbars.html: Added.
     31   
     32    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276739 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     33
     34    2021-04-28  Cameron McCormack  <heycam@apple.com>
     35
     36            Don't create custom scrollbars for fullscreen placeholders.
     37            https://bugs.webkit.org/show_bug.cgi?id=225141
     38            <rdar://64800098>
     39
     40            Reviewed by Darin Adler.
     41
     42            We can end up calling RenderScrollbar::createCustomScrollbar with
     43            `element = nullptr` from RenderLayerScrollableArea::createScrollbar,
     44            when the renderer is a RenderFullscreenPlaceholder.
     45
     46            We don't need to bother with scrollbars for the placeholder, so check to
     47            make sure we have a valid element before creating custom scollbars.
     48
     49            Test: fullscreen/full-screen-crash-custom-scrollbars.html
     50
     51            * rendering/RenderLayerScrollableArea.cpp:
     52            (WebCore::RenderLayerScrollableArea::createScrollbar):
     53
    1542021-05-07  Russell Epstein  <repstein@apple.com>
    255
  • branches/safari-611-branch/Source/WebCore/rendering/RenderLayer.cpp

    r270850 r277193  
    35103510    auto& actualRenderer = *rendererForScrollbar(renderer());
    35113511    bool hasCustomScrollbarStyle = is<RenderBox>(actualRenderer) && downcast<RenderBox>(actualRenderer).style().hasPseudoStyle(PseudoId::Scrollbar);
    3512     if (hasCustomScrollbarStyle)
    3513         widget = RenderScrollbar::createCustomScrollbar(*this, orientation, downcast<RenderBox>(actualRenderer).element());
     3512    auto element = downcast<RenderBox>(actualRenderer).element();
     3513    if (hasCustomScrollbarStyle && element)
     3514        widget = RenderScrollbar::createCustomScrollbar(*this, orientation, element);
    35143515    else {
    35153516        widget = Scrollbar::createNativeScrollbar(*this, orientation, ScrollbarControlSize::Regular);
Note: See TracChangeset for help on using the changeset viewer.