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

Unified Diff: chrome/browser/ui/webui/media_router/media_router_ui.h

Issue 1415103006: Non-Local Join for Media Router and Presentation API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Backwards Compatibility Created 4 years, 12 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/ui/webui/media_router/media_router_ui.h
diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.h b/chrome/browser/ui/webui/media_router/media_router_ui.h
index 09040ca0f6245c83f5eb749ecc7ec7140473b4b8..056ba013d09751cc040afc457c74d6f3aaf12758 100644
--- a/chrome/browser/ui/webui/media_router/media_router_ui.h
+++ b/chrome/browser/ui/webui/media_router/media_router_ui.h
@@ -103,6 +103,10 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
// completes.
bool CreateRoute(const MediaSink::Id& sink_id, MediaCastMode cast_mode);
+ // Calls MediaRouter to join the given route.
+ bool ConnectRemoteRoute(const MediaSink::Id& sink_id,
+ const MediaRoute::Id& route_id);
+
// Calls MediaRouter to close the given route.
void CloseRoute(const MediaRoute::Id& route_id);
@@ -120,6 +124,9 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
}
const std::vector<MediaSinkWithCastModes>& sinks() const { return sinks_; }
const std::vector<MediaRoute>& routes() const { return routes_; }
+ const std::vector<MediaRoute::Id>& joinable_route_ids() const {
+ return joinable_route_ids_;
+ }
const std::set<MediaCastMode>& cast_modes() const { return cast_modes_; }
const content::WebContents* initiator() const { return initiator_; }
@@ -135,6 +142,8 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, SortedSinks);
FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
UIMediaRoutesObserverFiltersNonDisplayRoutes);
+ FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
+ UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes);
FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, GetExtensionNameExtensionPresent);
FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
GetExtensionNameEmptyWhenNotInstalled);
@@ -142,16 +151,22 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
GetExtensionNameEmptyWhenNotExtensionURL);
class UIIssuesObserver;
+
class UIMediaRoutesObserver : public MediaRoutesObserver {
public:
using RoutesUpdatedCallback =
- base::Callback<void(const std::vector<MediaRoute>&)>;
+ base::Callback<void(const std::vector<MediaRoute>&,
+ const std::vector<MediaRoute::Id>&)>;
UIMediaRoutesObserver(MediaRouter* router,
const RoutesUpdatedCallback& callback);
+ UIMediaRoutesObserver(MediaRouter* router, const MediaSource::Id& source_id,
+ const RoutesUpdatedCallback& callback);
stevenjb 2016/01/05 20:10:23 We avoid multiple constructors in Chrome. Either u
matt.boetger 2016/01/06 22:49:07 Done.
~UIMediaRoutesObserver() override;
// MediaRoutesObserver
- void OnRoutesUpdated(const std::vector<MediaRoute>& routes) override;
+ void OnRoutesUpdated(
+ const std::vector<MediaRoute>& routes,
+ const std::vector<MediaRoute::Id>& joinable_route_ids) override;
private:
// Callback to the owning MediaRouterUI instance.
@@ -173,7 +188,8 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
void SetIssue(const Issue* issue);
// Called by |routes_observer_| when the set of active routes has changed.
- void OnRoutesUpdated(const std::vector<MediaRoute>& routes);
+ void OnRoutesUpdated(const std::vector<MediaRoute>& routes,
+ const std::vector<MediaRoute::Id>& joinable_route_ids);
// Callback passed to MediaRouter to receive response to route creation
// requests.
@@ -194,6 +210,15 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
const PresentationRequest& presentation_request) override;
void OnDefaultPresentationRemoved() override;
+ // Creates a brand new route or, if a |route_id| is supplied, connects to a
+ // non-local route. This is used for connecting to a non-local route.
stevenjb 2016/01/05 20:10:23 s/ / /
matt.boetger 2016/01/06 22:49:07 Done.
+ // Returns true if a route request is successfully submitted.
+ // |OnRouteResponseReceived()| will be invoked when the route request
+ // completed.
stevenjb 2016/01/05 20:10:23 'completes' or 'is completed'
matt.boetger 2016/01/06 22:49:07 Done.
+ bool CreateOrConnectRoute(const MediaSink::Id& sink_id,
+ MediaCastMode cast_mode,
+ const MediaRoute::Id& route_id);
+
// Updates the set of supported cast modes and sends the updated set to
// |handler_|.
void UpdateCastModes();
@@ -229,6 +254,7 @@ class MediaRouterUI : public ConstrainedWebDialogUI,
std::vector<MediaSinkWithCastModes> sinks_;
std::vector<MediaRoute> routes_;
+ std::vector<MediaRoute::Id> joinable_route_ids_;
CastModeSet cast_modes_;
scoped_ptr<QueryResultManager> query_result_manager_;

Powered by Google App Engine
This is Rietveld 408576698