Index: content/renderer/presentation/presentation_dispatcher.h |
diff --git a/content/renderer/presentation/presentation_dispatcher.h b/content/renderer/presentation/presentation_dispatcher.h |
index caf1840f2e0b5eab0ae6dfb0b6cbbe6b6e50d779..d0c0c2f4fd790db412d0c545671974acd2957060 100644 |
--- a/content/renderer/presentation/presentation_dispatcher.h |
+++ b/content/renderer/presentation/presentation_dispatcher.h |
@@ -6,11 +6,17 @@ |
#define CONTENT_RENDERER_PRESENTATION_PRESENTATION_DISPATCHER_H_ |
#include "base/compiler_specific.h" |
+#include "base/memory/scoped_vector.h" |
#include "content/common/content_export.h" |
#include "content/common/presentation/presentation_service.mojom.h" |
#include "content/public/renderer/render_frame_observer.h" |
+#include "content/renderer/presentation/presentation_session_dispatcher.h" |
#include "third_party/WebKit/public/platform/modules/presentation/WebPresentationClient.h" |
+namespace blink { |
+class WebString; |
+} // namespace blink |
+ |
namespace content { |
// PresentationDispatcher is a delegate for Presentation API messages used by |
@@ -27,14 +33,34 @@ class CONTENT_EXPORT PresentationDispatcher |
virtual void setController( |
blink::WebPresentationController* controller); |
virtual void updateAvailableChangeWatched(bool watched); |
+ virtual void startSession( |
+ const blink::WebString& presentationUrl, |
+ const blink::WebString& presentationId, |
+ blink::WebPresentationSessionClientCallbacks* callback); |
+ virtual void joinSession( |
+ const blink::WebString& presentationUrl, |
+ const blink::WebString& presentationId, |
+ blink::WebPresentationSessionClientCallbacks* callback); |
void OnScreenAvailabilityChanged(bool available); |
+ void OnSessionCreated( |
+ blink::WebPresentationSessionClientCallbacks* callback, |
+ presentation::PresentationSessionInfoPtr session_info, |
+ presentation::PresentationErrorPtr error); |
void ConnectToPresentationServiceIfNeeded(); |
// Used as a weak reference. Can be null since lifetime is bound to the frame. |
blink::WebPresentationController* controller_; |
presentation::PresentationServicePtr presentation_service_; |
+ |
+ // Wrappers around the PresentationSessionPtr corresponding to each Javascript |
+ // PresentationSession object passed back to the frame. |
+ // TODO(avayvod): Switch to base::IDMap when the lookup by presentation id is |
+ // needed. |
+ using PresentationSessionDispatchers = |
+ ScopedVector<PresentationSessionDispatcher>; |
+ PresentationSessionDispatchers presentation_session_dispatchers_; |
}; |
} // namespace content |