diff options
author | imcheng <imcheng@chromium.org> | 2016-02-03 11:19:57 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-03 19:21:02 +0000 |
commit | e26172f3ced3c282ec627e51eb443a2faaea5c1a (patch) | |
tree | 4445455ad6ee6e5d56873d6ecf5518361e9010f4 | |
parent | 72dde791abf92008ec55b031af79d0160f5c6029 (diff) | |
download | chromium_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}
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)> |