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

Changeset 276739 in webkit


Ignore:
Timestamp:
Apr 28, 2021, 4:00:57 PM (5 years ago)
Author:
Cameron McCormack
Message:

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 RenderLayerScrollableArea::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/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::createScrollbar):

LayoutTests:

Reviewed by Darin Adler.

  • fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
  • fullscreen/full-screen-crash-custom-scrollbars.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r276736 r276739  
     12021-04-28  Cameron McCormack  <heycam@apple.com>
     2
     3        Don't create custom scrollbars for fullscreen placeholders.
     4        https://bugs.webkit.org/show_bug.cgi?id=225141
     5
     6        Reviewed by Darin Adler.
     7
     8        * fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
     9        * fullscreen/full-screen-crash-custom-scrollbars.html: Added.
     10
    1112021-04-28  Chris Dumez  <cdumez@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r276737 r276739  
     12021-04-28  Cameron McCormack  <heycam@apple.com>
     2
     3        Don't create custom scrollbars for fullscreen placeholders.
     4        https://bugs.webkit.org/show_bug.cgi?id=225141
     5        <rdar://64800098>
     6
     7        Reviewed by Darin Adler.
     8
     9        We can end up calling RenderScrollbar::createCustomScrollbar with
     10        `element = nullptr` from RenderLayerScrollableArea::createScrollbar,
     11        when the renderer is a RenderFullscreenPlaceholder.
     12
     13        We don't need to bother with scrollbars for the placeholder, so check to
     14        make sure we have a valid element before creating custom scollbars.
     15
     16        Test: fullscreen/full-screen-crash-custom-scrollbars.html
     17
     18        * rendering/RenderLayerScrollableArea.cpp:
     19        (WebCore::RenderLayerScrollableArea::createScrollbar):
     20
    1212021-04-28  Chris Dumez  <cdumez@apple.com>
    222
  • trunk/Source/WebCore/rendering/RenderLayerScrollableArea.cpp

    r276182 r276739  
    819819    auto& actualRenderer = *rendererForScrollbar(renderer);
    820820    bool hasCustomScrollbarStyle = is<RenderBox>(actualRenderer) && downcast<RenderBox>(actualRenderer).style().hasPseudoStyle(PseudoId::Scrollbar);
    821     if (hasCustomScrollbarStyle)
    822         widget = RenderScrollbar::createCustomScrollbar(*this, orientation, downcast<RenderBox>(actualRenderer).element());
     821    auto element = downcast<RenderBox>(actualRenderer).element();
     822    if (hasCustomScrollbarStyle && element)
     823        widget = RenderScrollbar::createCustomScrollbar(*this, orientation, element);
    823824    else {
    824825        widget = Scrollbar::createNativeScrollbar(*this, orientation, ScrollbarControlSize::Regular);
Note: See TracChangeset for help on using the changeset viewer.