Index: third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp |
diff --git a/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp b/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp |
index 0fb775616f3c9a1aca40fff96dfb7336536189d2..4aa8e0263cd23561b5d4e24f87662f067f14a607 100644 |
--- a/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp |
+++ b/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp |
@@ -47,7 +47,7 @@ RemotePlayback* RemotePlayback::create(HTMLMediaElement& element) |
} |
RemotePlayback::RemotePlayback(HTMLMediaElement& element) |
- : DOMWindowProperty(element.document().frame()) |
+ : ActiveScriptWrappable(this) |
, m_state(element.isPlayingRemotely() ? WebRemotePlaybackState::Connected : WebRemotePlaybackState::Disconnected) |
, m_availability(element.hasRemoteRoutes()) |
, m_mediaElement(&element) |
@@ -61,9 +61,7 @@ const AtomicString& RemotePlayback::interfaceName() const |
ExecutionContext* RemotePlayback::getExecutionContext() const |
{ |
- if (!m_frame) |
- return 0; |
- return m_frame->document(); |
+ return &m_mediaElement->document(); |
} |
ScriptPromise RemotePlayback::getAvailability(ScriptState* scriptState) |
@@ -110,6 +108,13 @@ String RemotePlayback::state() const |
return remotePlaybackStateToString(m_state); |
} |
+bool RemotePlayback::hasPendingActivity() const |
+{ |
+ return hasEventListeners() |
+ || !m_availabilityObjects.isEmpty() |
+ || !m_connectPromiseResolvers.isEmpty(); |
+} |
+ |
void RemotePlayback::stateChanged(WebRemotePlaybackState state) |
{ |
// We may get a "disconnected" state change while in the "disconnected" |
@@ -153,10 +158,9 @@ void RemotePlayback::connectCancelled() |
DEFINE_TRACE(RemotePlayback) |
{ |
visitor->trace(m_availabilityObjects); |
- visitor->trace(m_mediaElement); |
visitor->trace(m_connectPromiseResolvers); |
+ visitor->trace(m_mediaElement); |
EventTargetWithInlineData::trace(visitor); |
- DOMWindowProperty::trace(visitor); |
} |
} // namespace blink |