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

Unified Diff: chrome/browser/media/router/mojo/media_route_controller.h

Issue 2728543009: [Media Router] Custom Controls 2 - add MediaRouter::GetRouteController() (Closed)
Patch Set: More tests Created 3 years, 9 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: chrome/browser/media/router/mojo/media_route_controller.h
diff --git a/chrome/browser/media/router/mojo/media_route_controller.h b/chrome/browser/media/router/mojo/media_route_controller.h
index 81812e9918c592b7fd6cb81bf106366b92ac9d04..2a6a1903287f903eb300f338455f8a18a201c323 100644
--- a/chrome/browser/media/router/mojo/media_route_controller.h
+++ b/chrome/browser/media/router/mojo/media_route_controller.h
@@ -15,6 +15,8 @@
namespace media_router {
+class MediaRouter;
+
// A controller for a MediaRoute. Forwards commands for controlling the route to
// an out-of-process controller. Notifies its observers whenever there is a
// change in the route's MediaStatus.
@@ -67,8 +69,10 @@ class MediaRouteController : public mojom::MediaStatusObserver,
// Constructs a MediaRouteController that forwards media commands to
// |media_controller|. |media_controller| must be bound to a message pipe.
+ // |media_router| will be notified when the MediaRouteController is destroyed.
MediaRouteController(const MediaRoute::Id& route_id,
- mojom::MediaControllerPtr media_controller);
+ mojom::MediaControllerPtr media_controller,
+ MediaRouter* media_router);
// Media controller methods for forwarding commands to a
// mojom::MediaControllerPtr held in |media_controller_|.
@@ -87,6 +91,10 @@ class MediaRouteController : public mojom::MediaStatusObserver,
// |this| gets destroyed when all the references are disposed.
void Invalidate();
+ // Returns a mojo pointer bound to |this| by |binding_|. If |binding_| is
+ // already set, then the previous binding gets invalidated.
+ mojom::MediaStatusObserverPtr BindObserverPtr();
+
MediaRoute::Id route_id() const { return route_id_; }
private:
@@ -103,6 +111,12 @@ class MediaRouteController : public mojom::MediaStatusObserver,
// Handle to the mojom::MediaController that receives media commands.
mojom::MediaControllerPtr media_controller_;
+ // |media_router_| will be notified when |this| is destroyed.
+ MediaRouter* media_router_;
imcheng 2017/03/28 01:18:38 MediaRouter* const
takumif 2017/03/29 02:34:49 Done.
+
+ // The binding to observe the out-of-process provider of status updates.
+ mojo::Binding<mojom::MediaStatusObserver> binding_;
+
// Observers that |this| notifies of status updates. The observers share the
// ownership of |this| through scoped_refptr.
base::ObserverList<Observer> observers_;

Powered by Google App Engine
This is Rietveld 408576698