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

Unified Diff: chrome/browser/ui/ash/cast_config_client_media_router.cc

Issue 2525563003: mash: Change CastConfigDelegate to a mojoified CastConfigClient. (Closed)
Patch Set: Now for the external apitests as well. Created 4 years 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/ash/cast_config_client_media_router.cc
diff --git a/chrome/browser/ui/ash/cast_config_delegate_media_router.cc b/chrome/browser/ui/ash/cast_config_client_media_router.cc
similarity index 71%
rename from chrome/browser/ui/ash/cast_config_delegate_media_router.cc
rename to chrome/browser/ui/ash/cast_config_client_media_router.cc
index 465c01844d4d3137024d156a216cceded7302ff8..550f60fc9bf1b46b0c5da8defb3095ae38b19909 100644
--- a/chrome/browser/ui/ash/cast_config_delegate_media_router.cc
+++ b/chrome/browser/ui/ash/cast_config_client_media_router.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/ash/cast_config_delegate_media_router.h"
+#include "chrome/browser/ui/ash/cast_config_client_media_router.h"
#include <string>
#include <vector>
@@ -58,10 +58,10 @@ class CastDeviceCache : public media_router::MediaRoutesObserver,
using MediaRoutes = std::vector<media_router::MediaRoute>;
using MediaRouteIds = std::vector<media_router::MediaRoute::Id>;
- explicit CastDeviceCache(ash::CastConfigDelegate* cast_config_delegate);
+ explicit CastDeviceCache(ash::mojom::CastConfigClient* cast_config_client);
~CastDeviceCache() override;
- // This may call cast_config_delegate->RequestDeviceRefresh() before
+ // This may call cast_config_client->RequestDeviceRefresh() before
// returning.
void Init();
@@ -80,17 +80,18 @@ class CastDeviceCache : public media_router::MediaRoutesObserver,
MediaRoutes routes_;
// Not owned.
- ash::CastConfigDelegate* cast_config_delegate_;
+ ash::mojom::CastConfigClient* cast_config_client_;
DISALLOW_COPY_AND_ASSIGN(CastDeviceCache);
};
-CastDeviceCache::CastDeviceCache(ash::CastConfigDelegate* cast_config_delegate)
+CastDeviceCache::CastDeviceCache(
+ ash::mojom::CastConfigClient* cast_config_client)
: MediaRoutesObserver(GetMediaRouter()),
MediaSinksObserver(GetMediaRouter(),
media_router::MediaSourceForDesktop(),
GURL(chrome::kChromeUIMediaRouterURL)),
- cast_config_delegate_(cast_config_delegate) {}
+ cast_config_client_(cast_config_client) {}
CastDeviceCache::~CastDeviceCache() {}
@@ -116,34 +117,34 @@ void CastDeviceCache::OnSinksReceived(const MediaSinks& sinks) {
sinks_.push_back(sink);
}
- cast_config_delegate_->RequestDeviceRefresh();
+ cast_config_client_->RequestDeviceRefresh();
}
void CastDeviceCache::OnRoutesUpdated(
const MediaRoutes& routes,
const MediaRouteIds& unused_joinable_route_ids) {
routes_ = routes;
- cast_config_delegate_->RequestDeviceRefresh();
+ cast_config_client_->RequestDeviceRefresh();
}
////////////////////////////////////////////////////////////////////////////////
-// CastConfigDelegateMediaRouter:
+// CastConfigClientMediaRouter:
-void CastConfigDelegateMediaRouter::SetMediaRouterForTest(
+void CastConfigClientMediaRouter::SetMediaRouterForTest(
media_router::MediaRouter* media_router) {
media_router_for_test_ = media_router;
}
-CastConfigDelegateMediaRouter::CastConfigDelegateMediaRouter() {
+CastConfigClientMediaRouter::CastConfigClientMediaRouter() {
// TODO(jdufault): This should use a callback interface once there is an
// equivalent. See crbug.com/666005.
registrar_.Add(this, chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
content::NotificationService::AllSources());
}
-CastConfigDelegateMediaRouter::~CastConfigDelegateMediaRouter() {}
+CastConfigClientMediaRouter::~CastConfigClientMediaRouter() {}
-CastDeviceCache* CastConfigDelegateMediaRouter::devices() {
+CastDeviceCache* CastConfigClientMediaRouter::devices() {
// The CastDeviceCache instance is lazily allocated because the MediaRouter
// component is not ready when the constructor is invoked.
if (!devices_ && GetMediaRouter()) {
@@ -154,7 +155,7 @@ CastDeviceCache* CastConfigDelegateMediaRouter::devices() {
return devices_.get();
}
-void CastConfigDelegateMediaRouter::RequestDeviceRefresh() {
+void CastConfigClientMediaRouter::RequestDeviceRefresh() {
// The media router component isn't ready yet.
if (!devices())
return;
@@ -163,66 +164,68 @@ void CastConfigDelegateMediaRouter::RequestDeviceRefresh() {
// source/sink/route setup. We first map the existing sinks, and then we
// update those sinks with activity information.
- SinksAndRoutes items;
+ std::vector<ash::mojom::SinkAndRoutePtr> items;
for (const media_router::MediaSink& sink : devices()->sinks()) {
- SinkAndRoute sr;
- sr.sink.id = sink.id();
- sr.sink.name = base::UTF8ToUTF16(sink.name());
- sr.sink.domain = base::UTF8ToUTF16(sink.domain());
- items.push_back(sr);
+ ash::mojom::SinkAndRoutePtr sr = ash::mojom::SinkAndRoute::New();
+ sr->route = ash::mojom::CastRoute::New();
+ sr->sink = ash::mojom::CastSink::New();
+ sr->sink->id = sink.id();
+ sr->sink->name = sink.name();
+ sr->sink->domain = sink.domain();
+ items.push_back(std::move(sr));
}
for (const media_router::MediaRoute& route : devices()->routes()) {
if (!route.for_display())
continue;
- for (SinkAndRoute& item : items) {
- if (item.sink.id == route.media_sink_id()) {
- item.route.id = route.media_route_id();
- item.route.title =
- base::UTF8ToUTF16(StripEndingTab(route.description()));
- item.route.is_local_source = route.is_local();
+ for (ash::mojom::SinkAndRoutePtr& item : items) {
+ if (item->sink->id == route.media_sink_id()) {
+ item->route->id = route.media_route_id();
+ item->route->title = StripEndingTab(route.description());
+ item->route->is_local_source = route.is_local();
// Default to a tab/app capture. This will display the media router
// description. This means we will properly support DIAL casts.
- item.route.content_source = Route::ContentSource::TAB;
+ item->route->content_source = ash::mojom::ContentSource::TAB;
if (media_router::IsDesktopMirroringMediaSource(route.media_source()))
- item.route.content_source = Route::ContentSource::DESKTOP;
+ item->route->content_source = ash::mojom::ContentSource::DESKTOP;
break;
}
}
}
- for (ash::CastConfigDelegate::Observer& observer : observer_list_)
- observer.OnDevicesUpdated(items);
+ observers_.ForAllPtrs([&items](ash::mojom::CastConfigObserver* observer) {
+ std::vector<ash::mojom::SinkAndRoutePtr> copy;
+ for (auto& item : items)
+ copy.push_back(item->Clone());
+ observer->OnDevicesUpdated(std::move(copy));
+ });
}
-void CastConfigDelegateMediaRouter::CastToSink(const Sink& sink) {
+void CastConfigClientMediaRouter::CastToSink(ash::mojom::CastSinkPtr sink) {
// TODO(imcheng): Pass in tab casting timeout.
GetMediaRouter()->CreateRoute(
- media_router::MediaSourceForDesktop().id(), sink.id,
+ media_router::MediaSourceForDesktop().id(), sink->id,
GURL("http://cros-cast-origin/"), nullptr,
std::vector<media_router::MediaRouteResponseCallback>(),
base::TimeDelta(), false);
}
-void CastConfigDelegateMediaRouter::StopCasting(const Route& route) {
- GetMediaRouter()->TerminateRoute(route.id);
+void CastConfigClientMediaRouter::StopCasting(ash::mojom::CastRoutePtr route) {
+ GetMediaRouter()->TerminateRoute(route->id);
}
-void CastConfigDelegateMediaRouter::AddObserver(
- ash::CastConfigDelegate::Observer* observer) {
- observer_list_.AddObserver(observer);
+void CastConfigClientMediaRouter::AddObserver(
+ ash::mojom::CastConfigObserverAssociatedPtrInfo observer) {
+ ash::mojom::CastConfigObserverAssociatedPtr observer_ptr;
+ observer_ptr.Bind(std::move(observer));
+ observers_.AddPtr(std::move(observer_ptr));
}
-void CastConfigDelegateMediaRouter::RemoveObserver(
- ash::CastConfigDelegate::Observer* observer) {
- observer_list_.RemoveObserver(observer);
-}
-
-void CastConfigDelegateMediaRouter::Observe(
+void CastConfigClientMediaRouter::Observe(
int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {

Powered by Google App Engine
This is Rietveld 408576698