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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |