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

Side by Side Diff: chrome/browser/ui/webui/media_router/media_router_ui.cc

Issue 2540773005: Add GetCurrentRoutes() to MediaRouter API, ensure dialog has routes at init (Closed)
Patch Set: 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 unified diff | Download patch
OLDNEW
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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 } 157 }
158 } 158 }
159 159
160 callback_.Run(routes_for_display, joinable_route_ids_for_display); 160 callback_.Run(routes_for_display, joinable_route_ids_for_display);
161 } 161 }
162 162
163 MediaRouterUI::MediaRouterUI(content::WebUI* web_ui) 163 MediaRouterUI::MediaRouterUI(content::WebUI* web_ui)
164 : ConstrainedWebDialogUI(web_ui), 164 : ConstrainedWebDialogUI(web_ui),
165 handler_(new MediaRouterWebUIMessageHandler(this)), 165 handler_(new MediaRouterWebUIMessageHandler(this)),
166 ui_initialized_(false), 166 ui_initialized_(false),
167 initial_routes_received_(false),
167 current_route_request_id_(-1), 168 current_route_request_id_(-1),
168 route_request_counter_(0), 169 route_request_counter_(0),
169 initiator_(nullptr), 170 initiator_(nullptr),
170 router_(nullptr), 171 router_(nullptr),
171 weak_factory_(this) { 172 weak_factory_(this) {
172 // Create a WebUIDataSource containing the chrome://media-router page's 173 // Create a WebUIDataSource containing the chrome://media-router page's
173 // content. 174 // content.
174 std::unique_ptr<content::WebUIDataSource> html_source( 175 std::unique_ptr<content::WebUIDataSource> html_source(
175 content::WebUIDataSource::Create(chrome::kChromeUIMediaRouterHost)); 176 content::WebUIDataSource::Create(chrome::kChromeUIMediaRouterHost));
176 177
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 void MediaRouterUI::SetIssue(const Issue* issue) { 525 void MediaRouterUI::SetIssue(const Issue* issue) {
525 if (ui_initialized_) handler_->UpdateIssue(issue); 526 if (ui_initialized_) handler_->UpdateIssue(issue);
526 } 527 }
527 528
528 void MediaRouterUI::OnRoutesUpdated( 529 void MediaRouterUI::OnRoutesUpdated(
529 const std::vector<MediaRoute>& routes, 530 const std::vector<MediaRoute>& routes,
530 const std::vector<MediaRoute::Id>& joinable_route_ids) { 531 const std::vector<MediaRoute::Id>& joinable_route_ids) {
531 routes_ = routes; 532 routes_ = routes;
532 joinable_route_ids_ = joinable_route_ids; 533 joinable_route_ids_ = joinable_route_ids;
533 534
535 if (!initial_routes_received_)
536 initial_routes_received_ = true;
537
534 std::unordered_map<MediaSource::Id, MediaCastMode> available_source_map; 538 std::unordered_map<MediaSource::Id, MediaCastMode> available_source_map;
535 for (const auto& cast_mode : cast_modes_) { 539 for (const auto& cast_mode : cast_modes_) {
536 for (const auto& source : 540 for (const auto& source :
537 query_result_manager_->GetSourcesForCastMode(cast_mode)) { 541 query_result_manager_->GetSourcesForCastMode(cast_mode)) {
538 available_source_map.insert(std::make_pair(source.id(), cast_mode)); 542 available_source_map.insert(std::make_pair(source.id(), cast_mode));
539 } 543 }
540 } 544 }
541 545
542 current_cast_modes_.clear(); 546 current_cast_modes_.clear();
543 for (const auto& route : routes) { 547 for (const auto& route : routes) {
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 Profile::FromWebUI(web_ui()))) 669 Profile::FromWebUI(web_ui())))
666 : TruncateHost(GetHostFromURL(gurl)); 670 : TruncateHost(GetHostFromURL(gurl));
667 } 671 }
668 672
669 const std::string& MediaRouterUI::GetRouteProviderExtensionId() const { 673 const std::string& MediaRouterUI::GetRouteProviderExtensionId() const {
670 // TODO(crbug.com/597778): remove reference to MediaRouterMojoImpl 674 // TODO(crbug.com/597778): remove reference to MediaRouterMojoImpl
671 return static_cast<MediaRouterMojoImpl*>(router_) 675 return static_cast<MediaRouterMojoImpl*>(router_)
672 ->media_route_provider_extension_id(); 676 ->media_route_provider_extension_id();
673 } 677 }
674 678
679 const std::vector<MediaRoute>& MediaRouterUI::GetRoutes() {
680 if (!initial_routes_received_) {
681 // OnRoutesUpdated() updates |routes_| with routes for display.
682 routes_observer_->OnRoutesUpdated(router_->GetCurrentRoutes(),
imcheng 2016/11/30 19:54:06 This feels a bit strange. You are calling the obse
mark a. foltz 2016/11/30 23:52:10 Will this be the same routes list as UIMediaRoutes
takumif 2016/12/01 00:51:13 UIMediaRoutesObserver::OnRoutesUpdated() filters o
683 std::vector<MediaRoute::Id>());
684 }
685 return routes_;
686 }
687
675 void MediaRouterUI::SetUIInitializationTimer(const base::Time& start_time) { 688 void MediaRouterUI::SetUIInitializationTimer(const base::Time& start_time) {
676 DCHECK(!start_time.is_null()); 689 DCHECK(!start_time.is_null());
677 start_time_ = start_time; 690 start_time_ = start_time;
678 } 691 }
679 692
680 void MediaRouterUI::OnUIInitiallyLoaded() { 693 void MediaRouterUI::OnUIInitiallyLoaded() {
681 if (!start_time_.is_null()) { 694 if (!start_time_.is_null()) {
682 MediaRouterMetrics::RecordMediaRouterDialogPaint( 695 MediaRouterMetrics::RecordMediaRouterDialogPaint(
683 base::Time::Now() - start_time_); 696 base::Time::Now() - start_time_);
684 } 697 }
685 } 698 }
686 699
687 void MediaRouterUI::OnUIInitialDataReceived() { 700 void MediaRouterUI::OnUIInitialDataReceived() {
688 if (!start_time_.is_null()) { 701 if (!start_time_.is_null()) {
689 MediaRouterMetrics::RecordMediaRouterDialogLoaded( 702 MediaRouterMetrics::RecordMediaRouterDialogLoaded(
690 base::Time::Now() - start_time_); 703 base::Time::Now() - start_time_);
691 start_time_ = base::Time(); 704 start_time_ = base::Time();
692 } 705 }
693 } 706 }
694 707
695 void MediaRouterUI::UpdateMaxDialogHeight(int height) { 708 void MediaRouterUI::UpdateMaxDialogHeight(int height) {
696 handler_->UpdateMaxDialogHeight(height); 709 handler_->UpdateMaxDialogHeight(height);
697 } 710 }
698 711
699 } // namespace media_router 712 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698