Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/media_router/media_router_ui.h" | 5 #include "chrome/browser/ui/webui/media_router/media_router_ui.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <unordered_map> | 9 #include <unordered_map> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 #include "chrome/browser/media/router/media_router_metrics.h" | 24 #include "chrome/browser/media/router/media_router_metrics.h" |
| 25 #include "chrome/browser/media/router/media_routes_observer.h" | 25 #include "chrome/browser/media/router/media_routes_observer.h" |
| 26 #include "chrome/browser/media/router/media_sinks_observer.h" | 26 #include "chrome/browser/media/router/media_sinks_observer.h" |
| 27 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h" | 27 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h" |
| 28 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" | 28 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" |
| 29 #include "chrome/browser/profiles/profile.h" | 29 #include "chrome/browser/profiles/profile.h" |
| 30 #include "chrome/browser/sessions/session_tab_helper.h" | 30 #include "chrome/browser/sessions/session_tab_helper.h" |
| 31 #include "chrome/browser/ui/webui/media_router/media_router_localized_strings_pr ovider.h" | 31 #include "chrome/browser/ui/webui/media_router/media_router_localized_strings_pr ovider.h" |
| 32 #include "chrome/browser/ui/webui/media_router/media_router_resources_provider.h " | 32 #include "chrome/browser/ui/webui/media_router/media_router_resources_provider.h " |
| 33 #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handle r.h" | 33 #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handle r.h" |
| 34 #include "chrome/common/chrome_features.h" | |
| 34 #include "chrome/common/media_router/issue.h" | 35 #include "chrome/common/media_router/issue.h" |
| 35 #include "chrome/common/media_router/media_route.h" | 36 #include "chrome/common/media_router/media_route.h" |
| 36 #include "chrome/common/media_router/media_sink.h" | 37 #include "chrome/common/media_router/media_sink.h" |
| 37 #include "chrome/common/media_router/media_source.h" | 38 #include "chrome/common/media_router/media_source.h" |
| 38 #include "chrome/common/media_router/media_source_helper.h" | 39 #include "chrome/common/media_router/media_source_helper.h" |
| 39 #include "chrome/common/media_router/route_request_result.h" | 40 #include "chrome/common/media_router/route_request_result.h" |
| 40 #include "chrome/common/pref_names.h" | 41 #include "chrome/common/pref_names.h" |
| 41 #include "chrome/common/url_constants.h" | 42 #include "chrome/common/url_constants.h" |
| 42 #include "chrome/grit/generated_resources.h" | 43 #include "chrome/grit/generated_resources.h" |
| 43 #include "components/prefs/pref_service.h" | 44 #include "components/prefs/pref_service.h" |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 146 } | 147 } |
| 147 | 148 |
| 148 MediaRouterUI::UIMediaRoutesObserver::~UIMediaRoutesObserver() {} | 149 MediaRouterUI::UIMediaRoutesObserver::~UIMediaRoutesObserver() {} |
| 149 | 150 |
| 150 void MediaRouterUI::UIMediaRoutesObserver::OnRoutesUpdated( | 151 void MediaRouterUI::UIMediaRoutesObserver::OnRoutesUpdated( |
| 151 const std::vector<MediaRoute>& routes, | 152 const std::vector<MediaRoute>& routes, |
| 152 const std::vector<MediaRoute::Id>& joinable_route_ids) { | 153 const std::vector<MediaRoute::Id>& joinable_route_ids) { |
| 153 callback_.Run(routes, joinable_route_ids); | 154 callback_.Run(routes, joinable_route_ids); |
| 154 } | 155 } |
| 155 | 156 |
| 157 MediaRouterUI::UIMediaRouteControllerObserver::UIMediaRouteControllerObserver( | |
| 158 MediaRouterUI* ui, | |
| 159 scoped_refptr<MediaRouteController> controller) | |
| 160 : MediaRouteController::Observer(std::move(controller)), ui_(ui) {} | |
| 161 MediaRouterUI::UIMediaRouteControllerObserver:: | |
| 162 ~UIMediaRouteControllerObserver() {} | |
| 163 | |
| 164 void MediaRouterUI::UIMediaRouteControllerObserver::OnMediaStatusUpdated( | |
| 165 const MediaStatus& status) { | |
| 166 current_media_status_ = base::make_optional<MediaStatus>(MediaStatus(status)); | |
| 167 ui_->handler_->UpdateMediaRouteStatus(status); | |
| 168 } | |
| 169 | |
| 170 void MediaRouterUI::UIMediaRouteControllerObserver::OnControllerInvalidated() { | |
| 171 ui_->OnRouteControllerInvalidated(); | |
| 172 } | |
| 173 | |
| 174 const MediaStatus* | |
| 175 MediaRouterUI::UIMediaRouteControllerObserver::GetCurrentMediaStatus() const { | |
| 176 return current_media_status_ ? ¤t_media_status_.value() : nullptr; | |
| 177 } | |
| 178 | |
| 156 MediaRouterUI::MediaRouterUI(content::WebUI* web_ui) | 179 MediaRouterUI::MediaRouterUI(content::WebUI* web_ui) |
| 157 : ConstrainedWebDialogUI(web_ui), | 180 : ConstrainedWebDialogUI(web_ui), |
| 158 ui_initialized_(false), | 181 ui_initialized_(false), |
| 159 current_route_request_id_(-1), | 182 current_route_request_id_(-1), |
| 160 route_request_counter_(0), | 183 route_request_counter_(0), |
| 161 initiator_(nullptr), | 184 initiator_(nullptr), |
| 162 router_(nullptr), | 185 router_(nullptr), |
| 163 weak_factory_(this) { | 186 weak_factory_(this) { |
| 164 auto handler = base::MakeUnique<MediaRouterWebUIMessageHandler>(this); | 187 auto handler = base::MakeUnique<MediaRouterWebUIMessageHandler>(this); |
| 165 handler_ = handler.get(); | 188 handler_ = handler.get(); |
| (...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 753 MediaRouterMetrics::RecordMediaRouterDialogLoaded( | 776 MediaRouterMetrics::RecordMediaRouterDialogLoaded( |
| 754 base::Time::Now() - start_time_); | 777 base::Time::Now() - start_time_); |
| 755 start_time_ = base::Time(); | 778 start_time_ = base::Time(); |
| 756 } | 779 } |
| 757 } | 780 } |
| 758 | 781 |
| 759 void MediaRouterUI::UpdateMaxDialogHeight(int height) { | 782 void MediaRouterUI::UpdateMaxDialogHeight(int height) { |
| 760 handler_->UpdateMaxDialogHeight(height); | 783 handler_->UpdateMaxDialogHeight(height); |
| 761 } | 784 } |
| 762 | 785 |
| 786 void MediaRouterUI::PlayRoute() { | |
| 787 if (route_controller_observer_) | |
| 788 route_controller_observer_->controller()->Play(); | |
| 789 } | |
| 790 | |
| 791 void MediaRouterUI::PauseRoute() { | |
| 792 if (route_controller_observer_) | |
| 793 route_controller_observer_->controller()->Pause(); | |
| 794 } | |
| 795 | |
| 796 void MediaRouterUI::SeekRoute(base::TimeDelta time) { | |
| 797 if (route_controller_observer_ && | |
| 798 route_controller_observer_->GetCurrentMediaStatus() && | |
| 799 time >= base::TimeDelta() && | |
| 800 time <= route_controller_observer_->GetCurrentMediaStatus()->duration) { | |
| 801 route_controller_observer_->controller()->Seek(time); | |
| 802 } | |
| 803 } | |
| 804 | |
| 805 void MediaRouterUI::SetRouteVolume(float volume) { | |
| 806 if (route_controller_observer_ && volume >= 0 && volume <= 1) | |
| 807 route_controller_observer_->controller()->SetVolume(volume); | |
| 808 } | |
| 809 | |
| 810 void MediaRouterUI::SetRouteMute(bool mute) { | |
| 811 if (route_controller_observer_) | |
| 812 route_controller_observer_->controller()->SetMute(mute); | |
| 813 } | |
| 814 | |
| 815 void MediaRouterUI::OnUIDetailsViewOpened(const MediaRoute::Id& route_id) { | |
| 816 if (!IsValidRouteId(route_id)) | |
| 817 return; | |
| 818 route_controller_observer_ = base::MakeUnique<UIMediaRouteControllerObserver>( | |
| 819 this, router_->GetRouteController(route_id)); | |
|
mark a. foltz
2017/04/26 21:01:18
If the route is invalid, does |router_| return a n
takumif
2017/04/27 03:04:17
Right, MediaRouter would return null in that case.
| |
| 820 } | |
| 821 | |
| 822 void MediaRouterUI::OnUIDetailsViewClosed() { | |
| 823 route_controller_observer_.reset(); | |
| 824 } | |
| 825 | |
| 826 bool MediaRouterUI::IsValidRouteId(const MediaRoute::Id& route_id) const { | |
| 827 return std::find_if(routes_.begin(), routes_.end(), | |
| 828 [&route_id](const MediaRoute& route) { | |
| 829 return route.media_route_id() == route_id; | |
| 830 }) != routes_.end(); | |
| 831 } | |
| 832 | |
| 833 void MediaRouterUI::OnRouteControllerInvalidated() { | |
| 834 route_controller_observer_.reset(); | |
| 835 handler_->OnRouteControllerInvalidated(); | |
| 836 } | |
| 837 | |
| 763 std::string MediaRouterUI::GetSerializedInitiatorOrigin() const { | 838 std::string MediaRouterUI::GetSerializedInitiatorOrigin() const { |
| 764 url::Origin origin = initiator_ | 839 url::Origin origin = initiator_ |
| 765 ? url::Origin(initiator_->GetLastCommittedURL()) | 840 ? url::Origin(initiator_->GetLastCommittedURL()) |
| 766 : url::Origin(); | 841 : url::Origin(); |
| 767 return origin.Serialize(); | 842 return origin.Serialize(); |
| 768 } | 843 } |
| 769 | 844 |
| 770 } // namespace media_router | 845 } // namespace media_router |
| OLD | NEW |