Changeset 211613 in webkit


Ignore:
Timestamp:
Feb 2, 2017 5:01:32 PM (7 years ago)
Author:
Wenson Hsieh
Message:

CrashTracer: [USER] com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::URL::host const + 9
https://bugs.webkit.org/show_bug.cgi?id=167766
<rdar://problem/30132707>

Reviewed by Chris Dumez.

The mainframe's document pointer may be null when tearing down a page upon navigation to a page that is in the
page cache. If this triggers a GC sweep, we will attempt to reload touch bar media controls, which (as a part of
the media controller heuristic) checks the mainframe's document URL to see if quirks should be enabled. This
assumes that the mainframe's document exists, which is not a safe assumption if page navigation is occurring. As
such, we need a null check for the mainframe's document in needsPlaybackControlsManagerQuirk().

No test, as we were unable to reproduce this crash.

  • html/HTMLMediaElement.cpp:

(WebCore::needsPlaybackControlsManagerQuirk):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r211612 r211613  
     12017-02-02  Wenson Hsieh  <wenson_hsieh@apple.com>
     2
     3        CrashTracer: [USER] com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::URL::host const + 9
     4        https://bugs.webkit.org/show_bug.cgi?id=167766
     5        <rdar://problem/30132707>
     6
     7        Reviewed by Chris Dumez.
     8
     9        The mainframe's document pointer may be null when tearing down a page upon navigation to a page that is in the
     10        page cache. If this triggers a GC sweep, we will attempt to reload touch bar media controls, which (as a part of
     11        the media controller heuristic) checks the mainframe's document URL to see if quirks should be enabled. This
     12        assumes that the mainframe's document exists, which is not a safe assumption if page navigation is occurring. As
     13        such, we need a null check for the mainframe's document in needsPlaybackControlsManagerQuirk().
     14
     15        No test, as we were unable to reproduce this crash.
     16
     17        * html/HTMLMediaElement.cpp:
     18        (WebCore::needsPlaybackControlsManagerQuirk):
     19
    1202017-02-02  Chris Dumez  <cdumez@apple.com>
    221
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r211591 r211613  
    584584        return false;
    585585
    586     String host = page.mainFrame().document()->url().host();
     586    auto* document = page.mainFrame().document();
     587    if (!document)
     588        return false;
     589
     590    String host = document->url().host();
    587591    return equalLettersIgnoringASCIICase(host, "netflix.com") || host.endsWithIgnoringASCIICase(".netflix.com");
    588592}
Note: See TracChangeset for help on using the changeset viewer.