summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorimcheng <imcheng@chromium.org>2016-02-03 11:19:57 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-03 19:21:02 +0000
commite26172f3ced3c282ec627e51eb443a2faaea5c1a (patch)
tree4445455ad6ee6e5d56873d6ecf5518361e9010f4
parent72dde791abf92008ec55b031af79d0160f5c6029 (diff)
downloadchromium_src-e26172f3ced3c282ec627e51eb443a2faaea5c1a.zip
chromium_src-e26172f3ced3c282ec627e51eb443a2faaea5c1a.tar.gz
chromium_src-e26172f3ced3c282ec627e51eb443a2faaea5c1a.tar.bz2
[Media Router] Remove LocalMediaRoutesObserver and related APIs.
Future clients should use MediaRoutesObserver API as shown in crrev.com/1661623002. BUG=583534 Review URL: https://codereview.chromium.org/1660233002 Cr-Commit-Position: refs/heads/master@{#373297}
-rw-r--r--chrome/browser/media/android/router/media_router_android.cc15
-rw-r--r--chrome/browser/media/android/router/media_router_android.h5
-rw-r--r--chrome/browser/media/router/media_router.gypi2
-rw-r--r--chrome/browser/media/router/media_router.h15
-rw-r--r--chrome/browser/media/router/media_router_mojo_impl.cc76
-rw-r--r--chrome/browser/media/router/media_router_mojo_impl.h35
-rw-r--r--chrome/browser/media/router/media_router_mojo_impl_unittest.cc78
-rw-r--r--chrome/browser/media/router/mock_media_router.h8
8 files changed, 10 insertions, 224 deletions
diff --git a/chrome/browser/media/android/router/media_router_android.cc b/chrome/browser/media/android/router/media_router_android.cc
index 8a753b9..8a83859 100644
--- a/chrome/browser/media/android/router/media_router_android.cc
+++ b/chrome/browser/media/android/router/media_router_android.cc
@@ -229,11 +229,6 @@ void MediaRouterAndroid::DetachRoute(const MediaRoute::Id& route_id) {
env, java_media_router_.obj(), jroute_id.obj());
}
-bool MediaRouterAndroid::HasLocalDisplayRoute() const {
- NOTIMPLEMENTED();
- return false;
-}
-
bool MediaRouterAndroid::RegisterMediaSinksObserver(
MediaSinksObserver* observer) {
const std::string& source_id = observer->source().id();
@@ -325,16 +320,6 @@ void MediaRouterAndroid::UnregisterPresentationSessionMessagesObserver(
messages_observers_.erase(route_id);
}
-void MediaRouterAndroid::RegisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) {
- NOTIMPLEMENTED();
-}
-
-void MediaRouterAndroid::UnregisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) {
- NOTIMPLEMENTED();
-}
-
void MediaRouterAndroid::OnSinksReceived(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
diff --git a/chrome/browser/media/android/router/media_router_android.h b/chrome/browser/media/android/router/media_router_android.h
index 7e80735..e25e134 100644
--- a/chrome/browser/media/android/router/media_router_android.h
+++ b/chrome/browser/media/android/router/media_router_android.h
@@ -61,7 +61,6 @@ class MediaRouterAndroid : public MediaRouterBase {
const SendRouteMessageCallback& callback) override;
void AddIssue(const Issue& issue) override;
void ClearIssue(const Issue::Id& issue_id) override;
- bool HasLocalDisplayRoute() const override;
// The methods called by the Java counterpart.
@@ -122,10 +121,6 @@ class MediaRouterAndroid : public MediaRouterBase {
PresentationSessionMessagesObserver* observer) override;
void UnregisterPresentationSessionMessagesObserver(
PresentationSessionMessagesObserver* observer) override;
- void RegisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) override;
- void UnregisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) override;
base::android::ScopedJavaGlobalRef<jobject> java_media_router_;
diff --git a/chrome/browser/media/router/media_router.gypi b/chrome/browser/media/router/media_router.gypi
index c7b0fee..c66b9f6 100644
--- a/chrome/browser/media/router/media_router.gypi
+++ b/chrome/browser/media/router/media_router.gypi
@@ -14,8 +14,6 @@
'issue_manager.h',
'issues_observer.h',
'issues_observer.cc',
- 'local_media_routes_observer.cc',
- 'local_media_routes_observer.h',
'media_route.cc',
'media_route.h',
'media_router.h',
diff --git a/chrome/browser/media/router/media_router.h b/chrome/browser/media/router/media_router.h
index a7ee14d..12ae329 100644
--- a/chrome/browser/media/router/media_router.h
+++ b/chrome/browser/media/router/media_router.h
@@ -28,7 +28,6 @@ class WebContents;
namespace media_router {
class IssuesObserver;
-class LocalMediaRoutesObserver;
class MediaRoutesObserver;
class MediaSinksObserver;
class PresentationConnectionStateObserver;
@@ -145,10 +144,6 @@ class MediaRouter : public KeyedService {
// Clears the issue with the id |issue_id|.
virtual void ClearIssue(const Issue::Id& issue_id) = 0;
- // Returns whether or not there is currently an active local displayable
- // route.
- virtual bool HasLocalDisplayRoute() const = 0;
-
// Adds |callback| to listen for state changes for presentation connected to
// |route_id|. The returned Subscription object is owned by the caller.
// |callback| will be invoked whenever there are state changes, until the
@@ -160,7 +155,6 @@ class MediaRouter : public KeyedService {
private:
friend class IssuesObserver;
- friend class LocalMediaRoutesObserver;
friend class MediaSinksObserver;
friend class MediaRoutesObserver;
friend class PresentationConnectionStateObserver;
@@ -219,15 +213,6 @@ class MediaRouter : public KeyedService {
// |observer| will stop receiving further updates.
virtual void UnregisterPresentationSessionMessagesObserver(
PresentationSessionMessagesObserver* observer) = 0;
-
- // Adds the LocalMediaRoutesObserver |observer| to listen for newly created
- // MediaRoutes.
- virtual void RegisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) = 0;
-
- // Removes the LocalMediaRoutesObserver |observer|.
- virtual void UnregisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) = 0;
};
} // namespace media_router
diff --git a/chrome/browser/media/router/media_router_mojo_impl.cc b/chrome/browser/media/router/media_router_mojo_impl.cc
index f4dd491..3a6ee71 100644
--- a/chrome/browser/media/router/media_router_mojo_impl.cc
+++ b/chrome/browser/media/router/media_router_mojo_impl.cc
@@ -15,7 +15,6 @@
#include "base/stl_util.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/media/router/issues_observer.h"
-#include "chrome/browser/media/router/local_media_routes_observer.h"
#include "chrome/browser/media/router/media_router_factory.h"
#include "chrome/browser/media/router/media_router_metrics.h"
#include "chrome/browser/media/router/media_router_type_converters.h"
@@ -66,17 +65,6 @@ ConvertToPresentationSessionMessage(interfaces::RouteMessagePtr input) {
} // namespace
-MediaRouterMojoImpl::MediaRouterMediaRoutesObserver::
-MediaRouterMediaRoutesObserver(MediaRouterMojoImpl* router)
- : MediaRoutesObserver(router),
- router_(router) {
- DCHECK(router);
-}
-
-MediaRouterMojoImpl::MediaRouterMediaRoutesObserver::
-~MediaRouterMediaRoutesObserver() {
-}
-
MediaRouterMojoImpl::MediaRoutesQuery::MediaRoutesQuery() = default;
MediaRouterMojoImpl::MediaRoutesQuery::~MediaRoutesQuery() = default;
@@ -85,26 +73,10 @@ MediaRouterMojoImpl::MediaSinksQuery::MediaSinksQuery() = default;
MediaRouterMojoImpl::MediaSinksQuery::~MediaSinksQuery() = default;
-void MediaRouterMojoImpl::MediaRouterMediaRoutesObserver::OnRoutesUpdated(
- const std::vector<media_router::MediaRoute>& routes,
- const std::vector<media_router::MediaRoute::Id>& joinable_route_ids) {
- bool has_local_display_route =
- std::find_if(routes.begin(), routes.end(),
- [](const media_router::MediaRoute& route) {
- return route.is_local() && route.for_display();
- }) != routes.end();
-
- // |this| will be deleted in UpdateHasLocalDisplayRoute() if
- // |has_local_display_route| is false. Note that ObserverList supports
- // removing an observer while iterating through it.
- router_->UpdateHasLocalDisplayRoute(has_local_display_route);
-}
-
MediaRouterMojoImpl::MediaRouterMojoImpl(
extensions::EventPageTracker* event_page_tracker)
: event_page_tracker_(event_page_tracker),
instance_id_(base::GenerateGUID()),
- has_local_display_route_(false),
availability_(interfaces::MediaRouter::SinkAvailability::UNAVAILABLE),
wakeup_attempt_count_(0),
current_wake_reason_(MediaRouteProviderWakeReason::TOTAL_COUNT),
@@ -114,10 +86,6 @@ MediaRouterMojoImpl::MediaRouterMojoImpl(
MediaRouterMojoImpl::~MediaRouterMojoImpl() {
DCHECK(thread_checker_.CalledOnValidThread());
-
- // Make sure |routes_observer_| is destroyed first, because it triggers
- // additional cleanup logic in this class that depends on other fields.
- routes_observer_.reset();
}
// static
@@ -266,33 +234,12 @@ void MediaRouterMojoImpl::RouteResponseReceived(
} else {
route = media_route.To<scoped_ptr<MediaRoute>>();
actual_presentation_id = presentation_id;
-
- if (route->is_local() && route->for_display()) {
- UpdateHasLocalDisplayRoute(true);
-
- if (!routes_observer_)
- routes_observer_.reset(new MediaRouterMediaRoutesObserver(this));
- }
}
for (const MediaRouteResponseCallback& callback : callbacks)
callback.Run(route.get(), actual_presentation_id, error);
}
-void MediaRouterMojoImpl::UpdateHasLocalDisplayRoute(
- bool has_local_display_route) {
- if (has_local_display_route_ == has_local_display_route)
- return;
-
- has_local_display_route_ = has_local_display_route;
-
- if (!has_local_display_route_)
- routes_observer_.reset();
-
- FOR_EACH_OBSERVER(LocalMediaRoutesObserver, local_routes_observers_,
- OnHasLocalDisplayRouteUpdated(has_local_display_route_));
-}
-
void MediaRouterMojoImpl::CreateRoute(
const MediaSource::Id& source_id,
const MediaSink::Id& sink_id,
@@ -566,25 +513,6 @@ void MediaRouterMojoImpl::UnregisterPresentationSessionMessagesObserver(
}
}
-void MediaRouterMojoImpl::RegisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) {
- DCHECK(thread_checker_.CalledOnValidThread());
- DCHECK(observer);
-
- DCHECK(!local_routes_observers_.HasObserver(observer));
- local_routes_observers_.AddObserver(observer);
-}
-
-void MediaRouterMojoImpl::UnregisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) {
- DCHECK(thread_checker_.CalledOnValidThread());
- DCHECK(observer);
-
- if (!local_routes_observers_.HasObserver(observer))
- return;
- local_routes_observers_.RemoveObserver(observer);
-}
-
void MediaRouterMojoImpl::DoCreateRoute(
const MediaSource::Id& source_id,
const MediaSink::Id& sink_id,
@@ -758,10 +686,6 @@ void MediaRouterMojoImpl::OnPresentationConnectionStateChanged(
route_id, mojo::PresentationConnectionStateFromMojo(state));
}
-bool MediaRouterMojoImpl::HasLocalDisplayRoute() const {
- return has_local_display_route_;
-}
-
void MediaRouterMojoImpl::DoStartObservingMediaSinks(
const MediaSource::Id& source_id) {
DVLOG_WITH_INSTANCE(1) << "DoStartObservingMediaSinks: " << source_id;
diff --git a/chrome/browser/media/router/media_router_mojo_impl.h b/chrome/browser/media/router/media_router_mojo_impl.h
index 84e2557..a8d9492 100644
--- a/chrome/browser/media/router/media_router_mojo_impl.h
+++ b/chrome/browser/media/router/media_router_mojo_impl.h
@@ -93,7 +93,6 @@ class MediaRouterMojoImpl : public MediaRouterBase,
const SendRouteMessageCallback& callback) override;
void AddIssue(const Issue& issue) override;
void ClearIssue(const Issue::Id& issue_id) override;
- bool HasLocalDisplayRoute() const override;
const std::string& media_route_provider_extension_id() const {
return media_route_provider_extension_id_;
@@ -117,7 +116,6 @@ class MediaRouterMojoImpl : public MediaRouterBase,
FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest,
RegisterAndUnregisterMediaRoutesObserver);
FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest, HandleIssue);
- FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoImplTest, HasLocalRoute);
FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoExtensionTest,
DeferredBindingAndSuspension);
FRIEND_TEST_ALL_PREFIXES(MediaRouterMojoExtensionTest,
@@ -137,24 +135,6 @@ class MediaRouterMojoImpl : public MediaRouterBase,
// giving up and draining the pending request queue.
static const int kMaxWakeupAttemptCount = 3;
- class MediaRouterMediaRoutesObserver :
- public media_router::MediaRoutesObserver {
- public:
- explicit MediaRouterMediaRoutesObserver(MediaRouterMojoImpl* router);
- ~MediaRouterMediaRoutesObserver() override;
-
- // media_router::MediaRoutesObserver:
- void OnRoutesUpdated(
- const std::vector<media_router::MediaRoute>& routes,
- const std::vector<media_router::MediaRoute::Id>& joinable_route_ids)
- override;
-
- private:
- MediaRouterMojoImpl* const router_;
-
- DISALLOW_COPY_AND_ASSIGN(MediaRouterMediaRoutesObserver);
- };
-
// Represents a query to the MRPM for media sinks and holds observers for the
// query.
struct MediaSinksQuery {
@@ -224,10 +204,6 @@ class MediaRouterMojoImpl : public MediaRouterBase,
PresentationSessionMessagesObserver* observer) override;
void UnregisterPresentationSessionMessagesObserver(
PresentationSessionMessagesObserver* observer) override;
- void RegisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) override;
- void UnregisterLocalMediaRoutesObserver(
- LocalMediaRoutesObserver* observer) override;
// These calls invoke methods in the component extension via Mojo.
void DoCreateRoute(const MediaSource::Id& source_id,
@@ -297,8 +273,6 @@ class MediaRouterMojoImpl : public MediaRouterBase,
interfaces::MediaRoutePtr media_route,
const mojo::String& error_text);
- void UpdateHasLocalDisplayRoute(bool has_local_display_route);
-
// Callback invoked by |event_page_tracker_| after an attempt to wake the
// component extension. If |success| is false, the pending request queue is
// drained.
@@ -333,8 +307,6 @@ class MediaRouterMojoImpl : public MediaRouterBase,
base::ScopedPtrHashMap<MediaSource::Id, scoped_ptr<MediaRoutesQuery>>
routes_queries_;
- base::ObserverList<LocalMediaRoutesObserver> local_routes_observers_;
-
using PresentationSessionMessagesObserverList =
base::ObserverList<PresentationSessionMessagesObserver>;
base::ScopedPtrHashMap<MediaRoute::Id,
@@ -373,13 +345,6 @@ class MediaRouterMojoImpl : public MediaRouterBase,
// therefore stale.
std::string instance_id_;
- // Set to true if there are displayable routes started on this instance.
- bool has_local_display_route_;
-
- // Observes local routes in order to notify LocalMediaRoutesObservers when
- // there are no more local routes.
- scoped_ptr<MediaRoutesObserver> routes_observer_;
-
// The last reported sink availability from the media route provider manager.
interfaces::MediaRouter::SinkAvailability availability_;
diff --git a/chrome/browser/media/router/media_router_mojo_impl_unittest.cc b/chrome/browser/media/router/media_router_mojo_impl_unittest.cc
index fe521ca..a79b5f8 100644
--- a/chrome/browser/media/router/media_router_mojo_impl_unittest.cc
+++ b/chrome/browser/media/router/media_router_mojo_impl_unittest.cc
@@ -200,16 +200,11 @@ TEST_F(MediaRouterMojoImplTest, CreateRoute) {
const interfaces::MediaRouteProvider::CreateRouteCallback& cb) {
cb.Run(std::move(route), mojo::String());
}));
- // MediaRouterMojoImpl will start observing local displayable routes as a
- // result of having one created.
- base::RunLoop run_loop;
- EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes(_))
- .WillOnce(Invoke([&run_loop](const mojo::String& source) {
- run_loop.Quit();
- }));
+ base::RunLoop run_loop;
RouteResponseCallbackHandler handler;
- EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
+ EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""))
+ .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
std::vector<MediaRouteResponseCallback> route_response_callbacks;
route_response_callbacks.push_back(base::Bind(
&RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
@@ -269,16 +264,10 @@ TEST_F(MediaRouterMojoImplTest, JoinRoute) {
cb.Run(std::move(route), mojo::String());
}));
- // MediaRouterMojoImpl will start observing local displayable routes as a
- // result of having one created.
- base::RunLoop run_loop;
- EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes(_))
- .WillOnce(Invoke([&run_loop](const mojo::String& source) {
- run_loop.Quit();
- }));
-
RouteResponseCallbackHandler handler;
- EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
+ base::RunLoop run_loop;
+ EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""))
+ .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
std::vector<MediaRouteResponseCallback> route_response_callbacks;
route_response_callbacks.push_back(base::Bind(
&RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
@@ -339,16 +328,10 @@ TEST_F(MediaRouterMojoImplTest, ConnectRouteByRouteId) {
cb.Run(std::move(route), mojo::String());
}));
- // MediaRouterMojoImpl will start observing local displayable routes as a
- // result of having one created.
- base::RunLoop run_loop;
- EXPECT_CALL(mock_media_route_provider_, StartObservingMediaRoutes(_))
- .WillOnce(Invoke([&run_loop](const mojo::String& source) {
- run_loop.Quit();
- }));
-
RouteResponseCallbackHandler handler;
- EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""));
+ base::RunLoop run_loop;
+ EXPECT_CALL(handler, Invoke(Pointee(Equals(expected_route)), Not(""), ""))
+ .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }));
std::vector<MediaRouteResponseCallback> route_response_callbacks;
route_response_callbacks.push_back(base::Bind(
&RouteResponseCallbackHandler::Invoke, base::Unretained(&handler)));
@@ -973,49 +956,6 @@ TEST_F(MediaRouterMojoImplTest, PresentationConnectionStateChangedCallback) {
ProcessEventLoop();
}
-TEST_F(MediaRouterMojoImplTest, HasLocalRoute) {
- EXPECT_FALSE(router()->HasLocalDisplayRoute());
- interfaces::MediaRoutePtr mojo_route1 = interfaces::MediaRoute::New();
- mojo_route1->media_route_id = "routeId1";
- mojo_route1->media_sink_id = "sinkId";
- mojo_route1->is_local = false;
- mojo_route1->for_display = false;
- router()->RouteResponseReceived("presentationId1",
- std::vector<MediaRouteResponseCallback>(),
- std::move(mojo_route1), "");
- EXPECT_FALSE(router()->HasLocalDisplayRoute());
-
- interfaces::MediaRoutePtr mojo_route2 = interfaces::MediaRoute::New();
- mojo_route2->media_route_id = "routeId2";
- mojo_route2->media_sink_id = "sinkId";
- mojo_route2->is_local = false;
- mojo_route2->for_display = true;
- router()->RouteResponseReceived("presentationId2",
- std::vector<MediaRouteResponseCallback>(),
- std::move(mojo_route2), "");
- EXPECT_FALSE(router()->HasLocalDisplayRoute());
-
- interfaces::MediaRoutePtr mojo_route3 = interfaces::MediaRoute::New();
- mojo_route3->media_route_id = "routeId3";
- mojo_route3->media_sink_id = "sinkId";
- mojo_route3->is_local = true;
- mojo_route3->for_display = false;
- router()->RouteResponseReceived("presentationId3",
- std::vector<MediaRouteResponseCallback>(),
- std::move(mojo_route3), "");
- EXPECT_FALSE(router()->HasLocalDisplayRoute());
-
- interfaces::MediaRoutePtr mojo_route4 = interfaces::MediaRoute::New();
- mojo_route4->media_route_id = "routeId4";
- mojo_route4->media_sink_id = "sinkId";
- mojo_route4->is_local = true;
- mojo_route4->for_display = true;
- router()->RouteResponseReceived("presentationId4",
- std::vector<MediaRouteResponseCallback>(),
- std::move(mojo_route4), "");
- EXPECT_TRUE(router()->HasLocalDisplayRoute());
-}
-
TEST_F(MediaRouterMojoImplTest, QueuedWhileAsleep) {
base::RunLoop run_loop;
EXPECT_CALL(mock_event_page_tracker_, IsEventPageSuspended(extension_id()))
diff --git a/chrome/browser/media/router/mock_media_router.h b/chrome/browser/media/router/mock_media_router.h
index de2bc22..68466d6 100644
--- a/chrome/browser/media/router/mock_media_router.h
+++ b/chrome/browser/media/router/mock_media_router.h
@@ -23,7 +23,7 @@ namespace media_router {
class MockMediaRouter : public MediaRouter {
public:
MockMediaRouter();
- virtual ~MockMediaRouter();
+ ~MockMediaRouter() override;
MOCK_METHOD5(CreateRoute,
void(const MediaSource::Id& source,
@@ -63,8 +63,6 @@ class MockMediaRouter : public MediaRouter {
MOCK_METHOD1(ClearIssue, void(const Issue::Id& issue_id));
MOCK_METHOD1(OnPresentationSessionDetached,
void(const MediaRoute::Id& route_id));
- MOCK_CONST_METHOD0(HasLocalDisplayRoute, bool());
- MOCK_CONST_METHOD0(HasLocalRoute, bool());
scoped_ptr<PresentationConnectionStateSubscription>
AddPresentationConnectionStateChangedCallback(
const MediaRoute::Id& route_id,
@@ -89,10 +87,6 @@ class MockMediaRouter : public MediaRouter {
void(PresentationSessionMessagesObserver* observer));
MOCK_METHOD1(UnregisterPresentationSessionMessagesObserver,
void(PresentationSessionMessagesObserver* observer));
- MOCK_METHOD1(RegisterLocalMediaRoutesObserver,
- void(LocalMediaRoutesObserver* observer));
- MOCK_METHOD1(UnregisterLocalMediaRoutesObserver,
- void(LocalMediaRoutesObserver* observer));
private:
base::CallbackList<void(content::PresentationConnectionState)>