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

Changeset 202928 in webkit


Ignore:
Timestamp:
Jul 7, 2016, 1:13:58 PM (10 years ago)
Author:
bshafiei@apple.com
Message:

Merged r202923. rdar://problem/27221109

Location:
branches/safari-602.1.40-branch/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-602.1.40-branch/Source/WebCore/ChangeLog

    r202921 r202928  
     12016-07-07  Babak Shafiei  <bshafiei@apple.com>
     2
     3        Merge r202923.
     4
     5    2016-07-07  Jer Noble  <jer.noble@apple.com>
     6
     7            Crash due to HTMLMediaElement at JavaScriptCore: JSC::JSLockHolder::JSLockHolder
     8            https://bugs.webkit.org/show_bug.cgi?id=159517
     9            <rdar://problem/27221109>
     10
     11            Reviewed by Eric Carlson.
     12
     13            When WebKit on iOS gets a notification that the UIProcess has been backgrounded, it sends an
     14            interruption event to the WebProcess to pause any playing HTMLMediaElements. When the
     15            elements which get this interruption have pending promises created during a previous call to
     16            play(), these promises get rejected.
     17
     18            However, if the HTMLMediaElement's document has already been destroyed, the pending Promises
     19            are in an inconsistent state: their script execution context (the document) has been
     20            destroyed, leading to the crash in JSLockHolder.
     21
     22            When HTMLMediaElement is notified that its ScriptExecutionContext has been destroyed, also
     23            clear the list of pending Promises.
     24
     25            * html/HTMLMediaElement.cpp:
     26            (WebCore::HTMLMediaElement::contextDestroyed):
     27
    1282016-07-07  Babak Shafiei  <bshafiei@apple.com>
    229
  • branches/safari-602.1.40-branch/Source/WebCore/html/HTMLMediaElement.cpp

    r202872 r202928  
    50955095    m_pauseAfterDetachedTaskQueue.close();
    50965096
     5097    m_pendingPlayPromises.clear();
     5098
    50975099    ActiveDOMObject::contextDestroyed();
    50985100}
Note: See TracChangeset for help on using the changeset viewer.