Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(534)

Unified Diff: content/public/browser/presentation_service_delegate.h

Issue 2477573002: [Presentation API] (3rd) (1-UA) Split PresentationServiceDelegateImpl(PSDImpl) (Closed)
Patch Set: fix windows compile error Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/browser/presentation_service_delegate.h
diff --git a/content/public/browser/presentation_service_delegate.h b/content/public/browser/presentation_service_delegate.h
index 2ea8b0fd2695d5c3a18394e12e3e883dc975ff46..55e2f4c155713c88dd1599c0e1cc6f89374d9f3b 100644
--- a/content/public/browser/presentation_service_delegate.h
+++ b/content/public/browser/presentation_service_delegate.h
@@ -5,6 +5,7 @@
#ifndef CONTENT_PUBLIC_BROWSER_PRESENTATION_SERVICE_DELEGATE_H_
#define CONTENT_PUBLIC_BROWSER_PRESENTATION_SERVICE_DELEGATE_H_
+#include <map>
#include <memory>
#include <string>
#include <vector>
@@ -13,6 +14,7 @@
#include "content/common/content_export.h"
#include "content/public/common/presentation_connection_message.h"
#include "content/public/common/presentation_session.h"
+#include "third_party/WebKit/public/platform/modules/presentation/presentation.mojom.h"
class GURL;
@@ -49,8 +51,17 @@ struct PresentationConnectionStateChangeInfo {
using PresentationConnectionStateChangedCallback =
base::Callback<void(const PresentationConnectionStateChangeInfo&)>;
-// An interface implemented by embedders to handle presentation API calls
-// forwarded from PresentationServiceImpl.
+using PresentationConnectionPtr = blink::mojom::PresentationConnectionPtr;
+using PresentationConnectionRequest =
+ blink::mojom::PresentationConnectionRequest;
+
+using ReceiverConnectionAvailableCallback =
+ base::Callback<void(const content::PresentationSessionInfo&,
+ PresentationConnectionPtr,
+ PresentationConnectionRequest)>;
+
+// Base class for ControllerPresentationServiceDelegate and
+// ReceiverPresentationServiceDelegate.
class CONTENT_EXPORT PresentationServiceDelegate {
public:
// Observer interface to listen for changes to PresentationServiceDelegate.
@@ -63,8 +74,6 @@ class CONTENT_EXPORT PresentationServiceDelegate {
virtual ~Observer() {}
};
- using SendMessageCallback = base::Callback<void(bool)>;
-
virtual ~PresentationServiceDelegate() {}
// Registers an observer associated with frame with |render_process_id|
@@ -81,6 +90,20 @@ class CONTENT_EXPORT PresentationServiceDelegate {
// The observer will no longer receive updates.
virtual void RemoveObserver(int render_process_id, int render_frame_id) = 0;
+ // Resets the presentation state for the frame given by |render_process_id|
+ // and |render_frame_id|.
+ // This unregisters all screen availability associated with the given frame,
+ // and clears the default presentation URL for the frame.
+ virtual void Reset(int render_process_id, int render_frame_id) = 0;
+};
+
+// An interface implemented by embedders to handle Presentation API calls
+// forwarded from PresentationServiceImpl.
+class CONTENT_EXPORT ControllerPresentationServiceDelegate
+ : public PresentationServiceDelegate {
+ public:
+ using SendMessageCallback = base::Callback<void(bool)>;
+
// Registers |listener| to continuously listen for
// availability updates for a presentation URL, originated from the frame
// given by |render_process_id| and |render_frame_id|.
@@ -101,14 +124,6 @@ class CONTENT_EXPORT PresentationServiceDelegate {
int render_frame_id,
PresentationScreenAvailabilityListener* listener) = 0;
- // Resets the presentation state for the frame given by |render_process_id|
- // and |render_frame_id|.
- // This unregisters all listeners associated with the given frame, and clears
- // the default presentation URL and ID set for the frame.
- virtual void Reset(
- int render_process_id,
- int render_frame_id) = 0;
-
// Sets the default presentation URLs for frame given by |render_process_id|
// and |render_frame_id|. When the default presentation is started on this
// frame, |callback| will be invoked with the corresponding
@@ -203,6 +218,34 @@ class CONTENT_EXPORT PresentationServiceDelegate {
int render_frame_id,
const PresentationSessionInfo& connection,
const PresentationConnectionStateChangedCallback& state_changed_cb) = 0;
+
+ // Connect |controller_connection| owned by the controlling frame to the
+ // offscreen presentation represented by |session|.
+ // |render_process_id|, |render_frame_id|: ID of originating frame.
+ // |controller_connection|: Pointer to controller's presentation connection,
+ // ownership passed from controlling frame to the offscreen presentation.
+ // |receiver_connection_request|: Mojo InterfaceRequest to be bind to receiver
+ // page's presentation connection.
+ virtual void ConnectToOffscreenPresentation(
+ int render_process_id,
+ int render_frame_id,
+ const PresentationSessionInfo& session,
+ PresentationConnectionPtr controller_connection_ptr,
+ PresentationConnectionRequest receiver_connection_request) = 0;
+};
+
+// An interface implemented by embedders to handle
+// PresentationService calls from a presentation receiver.
+class CONTENT_EXPORT ReceiverPresentationServiceDelegate
+ : public PresentationServiceDelegate {
+ public:
+ // Registers a callback from the embedder when an offscreeen presentation has
+ // been successfully started.
+ // |receiver_available_callback|: Invoked when successfully starting a
+ // offscreen presentation session.
+ virtual void RegisterReceiverConnectionAvailableCallback(
+ const content::ReceiverConnectionAvailableCallback&
+ receiver_available_callback) = 0;
};
} // namespace content
« no previous file with comments | « content/public/browser/content_browser_client.cc ('k') | content/renderer/presentation/presentation_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698