Title: [253809] trunk/Source/WebCore
Revision
253809
Author
rn...@webkit.org
Date
2019-12-19 18:24:59 -0800 (Thu, 19 Dec 2019)

Log Message

Update TrackBase to store m_mediaElement as a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=205460

Patch by Doug Kelly <do...@apple.com> on 2019-12-19
Reviewed by Eric Carlson.

Store the HTMLMediaElement in TrackBase and related classes as a WeakPtr to give some proper idea of pointer lifetime, since while the
HTMLMediaElement is optional, if set, it should be a valid HTMLMediaElement.

No new tests since no functionality changed.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::videoTracks):
(WebCore::SourceBuffer::audioTracks):
(WebCore::SourceBuffer::textTracks):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTrackModeChanged):
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
(WebCore::HTMLMediaElement::ensureAudioTracks):
(WebCore::HTMLMediaElement::ensureTextTracks):
(WebCore::HTMLMediaElement::ensureVideoTracks):
* html/track/AudioTrack.cpp:
(WebCore::AudioTrack::willRemove):
(WebCore::AudioTrack::setMediaElement):
* html/track/AudioTrack.h:
* html/track/AudioTrackList.cpp:
(WebCore::AudioTrackList::AudioTrackList):
* html/track/AudioTrackList.h:
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::willRemove):
(WebCore::InbandTextTrack::setMediaElement):
* html/track/InbandTextTrack.h:
* html/track/TextTrackList.cpp:
(WebCore::TextTrackList::TextTrackList):
* html/track/TextTrackList.h:
* html/track/TrackBase.cpp:
(WebCore::TrackBase::element):
(WebCore::TrackBase::setMediaElement):
* html/track/TrackBase.h:
(WebCore::TrackBase::mediaElement):
* html/track/TrackListBase.cpp:
(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::element const):
* html/track/TrackListBase.h:
(WebCore::TrackListBase::mediaElement const):
* html/track/VideoTrack.cpp:
(WebCore::VideoTrack::willRemove):
(WebCore::VideoTrack::setMediaElement):
* html/track/VideoTrack.h:
* html/track/VideoTrackList.cpp:
(WebCore::VideoTrackList::VideoTrackList):
* html/track/VideoTrackList.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (253808 => 253809)


--- trunk/Source/WebCore/ChangeLog	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/ChangeLog	2019-12-20 02:24:59 UTC (rev 253809)
@@ -1,5 +1,59 @@
 2019-12-19  Doug Kelly  <do...@apple.com>
 
+        Update TrackBase to store m_mediaElement as a WeakPtr
+        https://bugs.webkit.org/show_bug.cgi?id=205460
+
+        Reviewed by Eric Carlson.
+
+        Store the HTMLMediaElement in TrackBase and related classes as a WeakPtr to give some proper idea of pointer lifetime, since while the
+        HTMLMediaElement is optional, if set, it should be a valid HTMLMediaElement.
+
+        No new tests since no functionality changed.
+
+        * Modules/mediasource/SourceBuffer.cpp:
+        (WebCore::SourceBuffer::videoTracks):
+        (WebCore::SourceBuffer::audioTracks):
+        (WebCore::SourceBuffer::textTracks):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::textTrackModeChanged):
+        (WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
+        (WebCore::HTMLMediaElement::ensureAudioTracks):
+        (WebCore::HTMLMediaElement::ensureTextTracks):
+        (WebCore::HTMLMediaElement::ensureVideoTracks):
+        * html/track/AudioTrack.cpp:
+        (WebCore::AudioTrack::willRemove):
+        (WebCore::AudioTrack::setMediaElement):
+        * html/track/AudioTrack.h:
+        * html/track/AudioTrackList.cpp:
+        (WebCore::AudioTrackList::AudioTrackList):
+        * html/track/AudioTrackList.h:
+        * html/track/InbandTextTrack.cpp:
+        (WebCore::InbandTextTrack::willRemove):
+        (WebCore::InbandTextTrack::setMediaElement):
+        * html/track/InbandTextTrack.h:
+        * html/track/TextTrackList.cpp:
+        (WebCore::TextTrackList::TextTrackList):
+        * html/track/TextTrackList.h:
+        * html/track/TrackBase.cpp:
+        (WebCore::TrackBase::element):
+        (WebCore::TrackBase::setMediaElement):
+        * html/track/TrackBase.h:
+        (WebCore::TrackBase::mediaElement):
+        * html/track/TrackListBase.cpp:
+        (WebCore::TrackListBase::TrackListBase):
+        (WebCore::TrackListBase::element const):
+        * html/track/TrackListBase.h:
+        (WebCore::TrackListBase::mediaElement const):
+        * html/track/VideoTrack.cpp:
+        (WebCore::VideoTrack::willRemove):
+        (WebCore::VideoTrack::setMediaElement):
+        * html/track/VideoTrack.h:
+        * html/track/VideoTrackList.cpp:
+        (WebCore::VideoTrackList::VideoTrackList):
+        * html/track/VideoTrackList.h:
+
+2019-12-19  Doug Kelly  <do...@apple.com>
+
         Invalid assert with tracks not associated to media element
         https://bugs.webkit.org/show_bug.cgi?id=205360
 

Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp (253808 => 253809)


--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -58,6 +58,7 @@
 #include <limits>
 #include <wtf/CheckedArithmetic.h>
 #include <wtf/IsoMallocInlines.h>
+#include <wtf/WeakPtr.h>
 
 namespace WebCore {
 
@@ -1037,7 +1038,7 @@
 VideoTrackList& SourceBuffer::videoTracks()
 {
     if (!m_videoTracks)
-        m_videoTracks = VideoTrackList::create(m_source->mediaElement(), scriptExecutionContext());
+        m_videoTracks = VideoTrackList::create(makeWeakPtr(m_source->mediaElement()), scriptExecutionContext());
     return *m_videoTracks;
 }
 
@@ -1044,7 +1045,7 @@
 AudioTrackList& SourceBuffer::audioTracks()
 {
     if (!m_audioTracks)
-        m_audioTracks = AudioTrackList::create(m_source->mediaElement(), scriptExecutionContext());
+        m_audioTracks = AudioTrackList::create(makeWeakPtr(m_source->mediaElement()), scriptExecutionContext());
     return *m_audioTracks;
 }
 
@@ -1051,7 +1052,7 @@
 TextTrackList& SourceBuffer::textTracks()
 {
     if (!m_textTracks)
-        m_textTracks = TextTrackList::create(m_source->mediaElement(), scriptExecutionContext());
+        m_textTracks = TextTrackList::create(makeWeakPtr(m_source->mediaElement()), scriptExecutionContext());
     return *m_textTracks;
 }
 

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -1979,7 +1979,7 @@
 
     // If this is the first added track, create the list of text tracks.
     if (!m_textTracks)
-        m_textTracks = TextTrackList::create(this, ActiveDOMObject::scriptExecutionContext());
+        m_textTracks = TextTrackList::create(makeWeakPtr(this), ActiveDOMObject::scriptExecutionContext());
 
     // Mark this track as "configured" so configureTextTracks won't change the mode again.
     track.setHasBeenConfigured(true);
@@ -4047,7 +4047,7 @@
     // 4.8.10.12.2 Sourcing in-band text tracks
     // 1. Associate the relevant data with a new text track and its corresponding new TextTrack object.
     auto textTrack = InbandTextTrack::create(*ActiveDOMObject::scriptExecutionContext(), *this, track);
-    textTrack->setMediaElement(this);
+    textTrack->setMediaElement(makeWeakPtr(this));
 
     // 2. Set the new text track's kind, label, and language based on the semantics of the relevant data,
     // as defined by the relevant specification. If there is no label in that data, then the label must
@@ -4204,7 +4204,7 @@
 AudioTrackList& HTMLMediaElement::ensureAudioTracks()
 {
     if (!m_audioTracks)
-        m_audioTracks = AudioTrackList::create(this, ActiveDOMObject::scriptExecutionContext());
+        m_audioTracks = AudioTrackList::create(makeWeakPtr(this), ActiveDOMObject::scriptExecutionContext());
 
     return *m_audioTracks;
 }
@@ -4212,7 +4212,7 @@
 TextTrackList& HTMLMediaElement::ensureTextTracks()
 {
     if (!m_textTracks)
-        m_textTracks = TextTrackList::create(this, ActiveDOMObject::scriptExecutionContext());
+        m_textTracks = TextTrackList::create(makeWeakPtr(this), ActiveDOMObject::scriptExecutionContext());
 
     return *m_textTracks;
 }
@@ -4220,7 +4220,7 @@
 VideoTrackList& HTMLMediaElement::ensureVideoTracks()
 {
     if (!m_videoTracks)
-        m_videoTracks = VideoTrackList::create(this, ActiveDOMObject::scriptExecutionContext());
+        m_videoTracks = VideoTrackList::create(makeWeakPtr(this), ActiveDOMObject::scriptExecutionContext());
 
     return *m_videoTracks;
 }

Modified: trunk/Source/WebCore/html/track/AudioTrack.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/track/AudioTrack.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/AudioTrack.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -160,7 +160,7 @@
 
 void AudioTrack::willRemove()
 {
-    auto element = makeRefPtr(mediaElement());
+    auto element = makeRefPtr(mediaElement().get());
     if (!element)
         return;
     element->removeAudioTrack(*this);
@@ -196,7 +196,7 @@
     }
 }
 
-void AudioTrack::setMediaElement(HTMLMediaElement* element)
+void AudioTrack::setMediaElement(WeakPtr<HTMLMediaElement> element)
 {
     TrackBase::setMediaElement(element);
 #if !RELEASE_LOG_DISABLED

Modified: trunk/Source/WebCore/html/track/AudioTrack.h (253808 => 253809)


--- trunk/Source/WebCore/html/track/AudioTrack.h	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/AudioTrack.h	2019-12-20 02:24:59 UTC (rev 253809)
@@ -65,7 +65,7 @@
     size_t inbandTrackIndex() const;
 
     void setPrivate(AudioTrackPrivate&);
-    void setMediaElement(HTMLMediaElement*) override;
+    void setMediaElement(WeakPtr<HTMLMediaElement>) override;
 
 private:
     AudioTrack(AudioTrackClient&, AudioTrackPrivate&);

Modified: trunk/Source/WebCore/html/track/AudioTrackList.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/track/AudioTrackList.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/AudioTrackList.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -30,10 +30,11 @@
 #include "AudioTrackList.h"
 
 #include "AudioTrack.h"
+#include "HTMLMediaElement.h"
 
 namespace WebCore {
 
-AudioTrackList::AudioTrackList(HTMLMediaElement* element, ScriptExecutionContext* context)
+AudioTrackList::AudioTrackList(WeakPtr<HTMLMediaElement> element, ScriptExecutionContext* context)
     : TrackListBase(element, context)
 {
 }

Modified: trunk/Source/WebCore/html/track/AudioTrackList.h (253808 => 253809)


--- trunk/Source/WebCore/html/track/AudioTrackList.h	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/AudioTrackList.h	2019-12-20 02:24:59 UTC (rev 253809)
@@ -35,7 +35,7 @@
 
 class AudioTrackList final : public TrackListBase {
 public:
-    static Ref<AudioTrackList> create(HTMLMediaElement* owner, ScriptExecutionContext* context)
+    static Ref<AudioTrackList> create(WeakPtr<HTMLMediaElement> owner, ScriptExecutionContext* context)
     {
         return adoptRef(*new AudioTrackList(owner, context));
     }
@@ -51,7 +51,7 @@
     EventTargetInterface eventTargetInterface() const override;
 
 private:
-    AudioTrackList(HTMLMediaElement*, ScriptExecutionContext*);
+    AudioTrackList(WeakPtr<HTMLMediaElement>, ScriptExecutionContext*);
 };
 static_assert(sizeof(AudioTrackList) == sizeof(TrackListBase), "");
 

Modified: trunk/Source/WebCore/html/track/InbandTextTrack.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/track/InbandTextTrack.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/InbandTextTrack.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -159,7 +159,7 @@
 
 void InbandTextTrack::willRemove()
 {
-    auto element = makeRefPtr(mediaElement());
+    auto element = makeRefPtr(mediaElement().get());
     if (!element)
         return;
     element->removeTextTrack(*this);
@@ -197,7 +197,7 @@
     return m_private->startTimeVariance();
 }
 
-void InbandTextTrack::setMediaElement(HTMLMediaElement* element)
+void InbandTextTrack::setMediaElement(WeakPtr<HTMLMediaElement> element)
 {
     TrackBase::setMediaElement(element);
 #if !RELEASE_LOG_DISABLED

Modified: trunk/Source/WebCore/html/track/InbandTextTrack.h (253808 => 253809)


--- trunk/Source/WebCore/html/track/InbandTextTrack.h	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/InbandTextTrack.h	2019-12-20 02:24:59 UTC (rev 253809)
@@ -49,7 +49,7 @@
     AtomString inBandMetadataTrackDispatchType() const override;
 
     void setPrivate(InbandTextTrackPrivate&);
-    void setMediaElement(HTMLMediaElement*) override;
+    void setMediaElement(WeakPtr<HTMLMediaElement>) override;
 
 protected:
     InbandTextTrack(ScriptExecutionContext&, TextTrackClient&, InbandTextTrackPrivate&);

Modified: trunk/Source/WebCore/html/track/TextTrackList.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/track/TextTrackList.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/TextTrackList.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -39,7 +39,7 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(TextTrackList);
 
-TextTrackList::TextTrackList(HTMLMediaElement* element, ScriptExecutionContext* context)
+TextTrackList::TextTrackList(WeakPtr<HTMLMediaElement> element, ScriptExecutionContext* context)
     : TrackListBase(element, context)
 {
 }

Modified: trunk/Source/WebCore/html/track/TextTrackList.h (253808 => 253809)


--- trunk/Source/WebCore/html/track/TextTrackList.h	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/TextTrackList.h	2019-12-20 02:24:59 UTC (rev 253809)
@@ -36,7 +36,7 @@
 class TextTrackList final : public TrackListBase {
     WTF_MAKE_ISO_ALLOCATED(TextTrackList);
 public:
-    static Ref<TextTrackList> create(HTMLMediaElement* element, ScriptExecutionContext* context)
+    static Ref<TextTrackList> create(WeakPtr<HTMLMediaElement> element, ScriptExecutionContext* context)
     {
         return adoptRef(*new TextTrackList(element, context));
     }
@@ -60,7 +60,7 @@
     EventTargetInterface eventTargetInterface() const override;
 
 private:
-    TextTrackList(HTMLMediaElement*, ScriptExecutionContext*);
+    TextTrackList(WeakPtr<HTMLMediaElement>, ScriptExecutionContext*);
 
     void invalidateTrackIndexesAfterTrack(TextTrack&);
 

Modified: trunk/Source/WebCore/html/track/TrackBase.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/track/TrackBase.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/TrackBase.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -75,10 +75,10 @@
 
 Element* TrackBase::element()
 {
-    return m_mediaElement;
+    return m_mediaElement.get();
 }
 
-void TrackBase::setMediaElement(HTMLMediaElement* element)
+void TrackBase::setMediaElement(WeakPtr<HTMLMediaElement> element)
 {
     m_mediaElement = element;
 

Modified: trunk/Source/WebCore/html/track/TrackBase.h (253808 => 253809)


--- trunk/Source/WebCore/html/track/TrackBase.h	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/TrackBase.h	2019-12-20 02:24:59 UTC (rev 253809)
@@ -28,6 +28,7 @@
 #if ENABLE(VIDEO_TRACK)
 
 #include <wtf/LoggerHelper.h>
+#include <wtf/WeakPtr.h>
 #include <wtf/text/AtomString.h>
 
 namespace WebCore {
@@ -48,8 +49,8 @@
     enum Type { BaseTrack, TextTrack, AudioTrack, VideoTrack };
     Type type() const { return m_type; }
 
-    virtual void setMediaElement(HTMLMediaElement*);
-    HTMLMediaElement* mediaElement() { return m_mediaElement; }
+    virtual void setMediaElement(WeakPtr<HTMLMediaElement>);
+    WeakPtr<HTMLMediaElement> mediaElement() { return m_mediaElement; }
     virtual Element* element();
 
     virtual AtomString id() const { return m_id; }
@@ -82,7 +83,7 @@
 protected:
     TrackBase(Type, const AtomString& id, const AtomString& label, const AtomString& language);
 
-    HTMLMediaElement* m_mediaElement { nullptr };
+    WeakPtr<HTMLMediaElement> m_mediaElement { nullptr };
 
 #if ENABLE(MEDIA_SOURCE)
     SourceBuffer* m_sourceBuffer { nullptr };

Modified: trunk/Source/WebCore/html/track/TrackListBase.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/track/TrackListBase.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/TrackListBase.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -39,7 +39,7 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(TrackListBase);
 
-TrackListBase::TrackListBase(HTMLMediaElement* element, ScriptExecutionContext* context)
+TrackListBase::TrackListBase(WeakPtr<HTMLMediaElement> element, ScriptExecutionContext* context)
     : ContextDestructionObserver(context)
     , m_element(element)
     , m_asyncEventQueue(MainThreadGenericEventQueue::create(*this))
@@ -63,7 +63,7 @@
 
 Element* TrackListBase::element() const
 {
-    return m_element;
+    return m_element.get();
 }
 
 unsigned TrackListBase::length() const

Modified: trunk/Source/WebCore/html/track/TrackListBase.h (253808 => 253809)


--- trunk/Source/WebCore/html/track/TrackListBase.h	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/TrackListBase.h	2019-12-20 02:24:59 UTC (rev 253809)
@@ -32,6 +32,7 @@
 #include "GenericEventQueue.h"
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
+#include <wtf/WeakPtr.h>
 
 namespace WebCore {
 
@@ -56,7 +57,7 @@
 
     virtual void clearElement();
     Element* element() const;
-    HTMLMediaElement* mediaElement() const { return m_element; }
+    WeakPtr<HTMLMediaElement> mediaElement() const { return m_element; }
 
     // Needs to be public so tracks can call it
     void scheduleChangeEvent();
@@ -65,7 +66,7 @@
     bool isAnyTrackEnabled() const;
 
 protected:
-    TrackListBase(HTMLMediaElement*, ScriptExecutionContext*);
+    TrackListBase(WeakPtr<HTMLMediaElement>, ScriptExecutionContext*);
 
     void scheduleAddTrackEvent(Ref<TrackBase>&&);
     void scheduleRemoveTrackEvent(Ref<TrackBase>&&);
@@ -79,7 +80,7 @@
     void refEventTarget() final { ref(); }
     void derefEventTarget() final { deref(); }
 
-    HTMLMediaElement* m_element;
+    WeakPtr<HTMLMediaElement> m_element;
 
     UniqueRef<MainThreadGenericEventQueue> m_asyncEventQueue;
 };

Modified: trunk/Source/WebCore/html/track/VideoTrack.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/track/VideoTrack.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/VideoTrack.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -163,7 +163,7 @@
 
 void VideoTrack::willRemove()
 {
-    auto element = makeRefPtr(mediaElement());
+    auto element = makeRefPtr(mediaElement().get());
     if (!element)
         return;
     element->removeVideoTrack(*this);
@@ -244,7 +244,7 @@
     ASSERT_NOT_REACHED();
 }
 
-void VideoTrack::setMediaElement(HTMLMediaElement* element)
+void VideoTrack::setMediaElement(WeakPtr<HTMLMediaElement> element)
 {
     TrackBase::setMediaElement(element);
 #if !RELEASE_LOG_DISABLED

Modified: trunk/Source/WebCore/html/track/VideoTrack.h (253808 => 253809)


--- trunk/Source/WebCore/html/track/VideoTrack.h	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/VideoTrack.h	2019-12-20 02:24:59 UTC (rev 253809)
@@ -73,7 +73,7 @@
     const MediaDescription& description() const;
 
     void setPrivate(VideoTrackPrivate&);
-    void setMediaElement(HTMLMediaElement*) override;
+    void setMediaElement(WeakPtr<HTMLMediaElement>) override;
 
 private:
     VideoTrack(VideoTrackClient&, VideoTrackPrivate&);

Modified: trunk/Source/WebCore/html/track/VideoTrackList.cpp (253808 => 253809)


--- trunk/Source/WebCore/html/track/VideoTrackList.cpp	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/VideoTrackList.cpp	2019-12-20 02:24:59 UTC (rev 253809)
@@ -29,11 +29,12 @@
 
 #include "VideoTrackList.h"
 
+#include "HTMLMediaElement.h"
 #include "VideoTrack.h"
 
 namespace WebCore {
 
-VideoTrackList::VideoTrackList(HTMLMediaElement* element, ScriptExecutionContext* context)
+VideoTrackList::VideoTrackList(WeakPtr<HTMLMediaElement> element, ScriptExecutionContext* context)
     : TrackListBase(element, context)
 {
 }

Modified: trunk/Source/WebCore/html/track/VideoTrackList.h (253808 => 253809)


--- trunk/Source/WebCore/html/track/VideoTrackList.h	2019-12-20 02:11:18 UTC (rev 253808)
+++ trunk/Source/WebCore/html/track/VideoTrackList.h	2019-12-20 02:24:59 UTC (rev 253809)
@@ -35,7 +35,7 @@
 
 class VideoTrackList final : public TrackListBase {
 public:
-    static Ref<VideoTrackList> create(HTMLMediaElement* owner, ScriptExecutionContext* context)
+    static Ref<VideoTrackList> create(WeakPtr<HTMLMediaElement> owner, ScriptExecutionContext* context)
     {
         return adoptRef(*new VideoTrackList(owner, context));
     }
@@ -52,7 +52,7 @@
     EventTargetInterface eventTargetInterface() const override;
 
 private:
-    VideoTrackList(HTMLMediaElement*, ScriptExecutionContext*);
+    VideoTrackList(WeakPtr<HTMLMediaElement>, ScriptExecutionContext*);
 };
 static_assert(sizeof(VideoTrackList) == sizeof(TrackListBase), "");
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to