Title: [294664] trunk/Source/WebCore/html
Revision
294664
Author
[email protected]
Date
2022-05-23 12:21:57 -0700 (Mon, 23 May 2022)

Log Message

MediaController should be an ContextDestructionObserver
https://bugs.webkit.org/show_bug.cgi?id=240749
<rdar://93525670>

Reviewed by Youenn Fablet.

* html/MediaController.cpp:
(WebCore::MediaController::MediaController):
* html/MediaController.h:

Canonical link: https://commits.webkit.org/250882@main

Modified Paths

Diff

Modified: trunk/Source/WebCore/html/MediaController.cpp (294663 => 294664)


--- trunk/Source/WebCore/html/MediaController.cpp	2022-05-23 19:11:53 UTC (rev 294663)
+++ trunk/Source/WebCore/html/MediaController.cpp	2022-05-23 19:21:57 UTC (rev 294664)
@@ -47,7 +47,8 @@
 }
 
 MediaController::MediaController(ScriptExecutionContext& context)
-    : m_paused(false)
+    : ContextDestructionObserver(&context)
+    , m_paused(false)
     , m_defaultPlaybackRate(1)
     , m_volume(1)
     , m_position(MediaPlayer::invalidTime())
@@ -58,7 +59,6 @@
     , m_clearPositionTimer(*this, &MediaController::clearPositionTimerFired)
     , m_closedCaptionsVisible(false)
     , m_clock(PAL::Clock::create())
-    , m_scriptExecutionContext(context)
     , m_timeupdateTimer(*this, &MediaController::scheduleTimeupdateEvent)
 {
 }

Modified: trunk/Source/WebCore/html/MediaController.h (294663 => 294664)


--- trunk/Source/WebCore/html/MediaController.h	2022-05-23 19:11:53 UTC (rev 294663)
+++ trunk/Source/WebCore/html/MediaController.h	2022-05-23 19:21:57 UTC (rev 294664)
@@ -27,6 +27,7 @@
 
 #if ENABLE(VIDEO)
 
+#include "ContextDestructionObserver.h"
 #include "Event.h"
 #include "EventTarget.h"
 #include "MediaControllerInterface.h"
@@ -41,7 +42,11 @@
 
 class HTMLMediaElement;
 
-class MediaController final : public RefCounted<MediaController>, public MediaControllerInterface, public EventTargetWithInlineData {
+class MediaController final
+    : public RefCounted<MediaController>
+    , public MediaControllerInterface
+    , public ContextDestructionObserver
+    , public EventTargetWithInlineData {
     WTF_MAKE_ISO_ALLOCATED(MediaController);
 public:
     static Ref<MediaController> create(ScriptExecutionContext&);
@@ -95,7 +100,7 @@
     void refEventTarget() final { ref(); }
     void derefEventTarget() final { deref(); }
     EventTargetInterface eventTargetInterface() const final { return MediaControllerEventTargetInterfaceType; }
-    ScriptExecutionContext* scriptExecutionContext() const final { return &m_scriptExecutionContext; };
+    ScriptExecutionContext* scriptExecutionContext() const final { return ContextDestructionObserver::scriptExecutionContext(); };
 
     void addMediaElement(HTMLMediaElement&);
     void removeMediaElement(HTMLMediaElement&);
@@ -147,7 +152,6 @@
     String m_mediaGroup;
     bool m_closedCaptionsVisible;
     std::unique_ptr<PAL::Clock> m_clock;
-    ScriptExecutionContext& m_scriptExecutionContext;
     Timer m_timeupdateTimer;
     MonotonicTime m_previousTimeupdateTime;
     bool m_resetCurrentTimeInNextPlay { false };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to