| Index: chrome/browser/media/router/media_sinks_observer.cc
|
| diff --git a/chrome/browser/media/router/media_sinks_observer.cc b/chrome/browser/media/router/media_sinks_observer.cc
|
| index 1eecabcd020595770cfa8d1548b2ea97925e2cb1..524d6e0bb30c1bae2a5b9bd885afe60bfe07da84 100644
|
| --- a/chrome/browser/media/router/media_sinks_observer.cc
|
| +++ b/chrome/browser/media/router/media_sinks_observer.cc
|
| @@ -5,17 +5,27 @@
|
| #include "chrome/browser/media/router/media_sinks_observer.h"
|
|
|
| #include "base/logging.h"
|
| +#include "base/stl_util.h"
|
| #include "chrome/browser/media/router/media_router.h"
|
|
|
| +#if DCHECK_IS_ON()
|
| +#include "base/auto_reset.h"
|
| +#endif
|
| +
|
| namespace media_router {
|
|
|
| MediaSinksObserver::MediaSinksObserver(MediaRouter* router,
|
| - const MediaSource& source)
|
| - : source_(source), router_(router), initialized_(false) {
|
| + const MediaSource& source,
|
| + const GURL& origin)
|
| + : source_(source), origin_(origin), router_(router), initialized_(false) {
|
| DCHECK(router_);
|
| }
|
|
|
| MediaSinksObserver::~MediaSinksObserver() {
|
| +#if DCHECK_IS_ON()
|
| + DCHECK(!in_on_sinks_updated_);
|
| +#endif
|
| +
|
| if (initialized_)
|
| router_->UnregisterMediaSinksObserver(this);
|
| }
|
| @@ -28,4 +38,16 @@ bool MediaSinksObserver::Init() {
|
| return initialized_;
|
| }
|
|
|
| +void MediaSinksObserver::OnSinksUpdated(const std::vector<MediaSink>& sinks,
|
| + const std::vector<GURL>& origins) {
|
| +#if DCHECK_IS_ON()
|
| + base::AutoReset<bool> reset_in_on_sinks_updated(&in_on_sinks_updated_, true);
|
| +#endif
|
| +
|
| + if (origins.empty() || ContainsValue(origins, origin_))
|
| + OnSinksReceived(sinks);
|
| + else
|
| + OnSinksReceived(std::vector<MediaSink>());
|
| +}
|
| +
|
| } // namespace media_router
|
|
|