Index: third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.h |
diff --git a/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.h b/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.h |
index c6b28503b26f27c0a27e1ce0e5a648d23d8edddd..7d002cb35ff8b47cf7df295de623df35c2acd79d 100644 |
--- a/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.h |
+++ b/third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.h |
@@ -15,6 +15,9 @@ |
#include "platform/wtf/Compiler.h" |
#include "platform/wtf/text/AtomicString.h" |
#include "platform/wtf/text/WTFString.h" |
+#include "public/platform/WebURL.h" |
+#include "public/platform/WebVector.h" |
+#include "public/platform/modules/presentation/WebPresentationAvailabilityObserver.h" |
#include "public/platform/modules/remoteplayback/WebRemotePlaybackAvailability.h" |
#include "public/platform/modules/remoteplayback/WebRemotePlaybackClient.h" |
#include "public/platform/modules/remoteplayback/WebRemotePlaybackState.h" |
@@ -30,7 +33,8 @@ class ScriptState; |
class MODULES_EXPORT RemotePlayback final |
: public EventTargetWithInlineData, |
public ActiveScriptWrappable<RemotePlayback>, |
- NON_EXPORTED_BASE(public WebRemotePlaybackClient) { |
+ NON_EXPORTED_BASE(public WebRemotePlaybackClient), |
+ public WebPresentationAvailabilityObserver { |
DEFINE_WRAPPERTYPEINFO(); |
USING_GARBAGE_COLLECTED_MIXIN(RemotePlayback); |
@@ -73,11 +77,16 @@ class MODULES_EXPORT RemotePlayback final |
WebRemotePlaybackState GetState() const { return state_; } |
+ // WebPresentationAvailabilityObserver implementation. |
+ void AvailabilityChanged(bool) override; |
+ const WebVector<WebURL>& Urls() const override; |
mark a. foltz
2017/05/31 21:16:41
Can this method have a more specific name?
|
+ |
// WebRemotePlaybackClient implementation. |
void StateChanged(WebRemotePlaybackState) override; |
void AvailabilityChanged(WebRemotePlaybackAvailability) override; |
void PromptCancelled() override; |
bool RemotePlaybackAvailable() const override; |
+ void SourceChanged(const WebURL&) override; |
// ScriptWrappable implementation. |
bool HasPendingActivity() const final; |
@@ -100,12 +109,23 @@ class MODULES_EXPORT RemotePlayback final |
// Need a void() method to post it as a task. |
void NotifyInitialAvailability(int callback_id); |
+ // Starts or stops listening if there're both |
+ // registered availability callbacks and a valid source set. |
+ void UpdateListeningState(); |
+ |
+ // Fills |availability_urls_| with the info about the given source. |
+ // TODO(avayvod): support extra info fetched by the video stack and multiple |
+ // sources. |
+ void UpdateAvailabilityUrls(const WebURL& source); |
+ |
WebRemotePlaybackState state_; |
WebRemotePlaybackAvailability availability_; |
HeapHashMap<int, TraceWrapperMember<AvailabilityCallbackWrapper>> |
availability_callbacks_; |
Member<HTMLMediaElement> media_element_; |
Member<ScriptPromiseResolver> prompt_promise_resolver_; |
+ WebVector<WebURL> availability_urls_; |
mark a. foltz
2017/05/31 21:16:41
Only one element here seems to be used at any one
|
+ bool is_listening_; |
}; |
} // namespace blink |