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 18 matching lines...) Expand all Loading... | |
29 #include "chrome/browser/media/router/media_source.h" | 29 #include "chrome/browser/media/router/media_source.h" |
30 #include "chrome/browser/media/router/media_source_helper.h" | 30 #include "chrome/browser/media/router/media_source_helper.h" |
31 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h" | 31 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h" |
32 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" | 32 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" |
33 #include "chrome/browser/media/router/route_request_result.h" | 33 #include "chrome/browser/media/router/route_request_result.h" |
34 #include "chrome/browser/profiles/profile.h" | 34 #include "chrome/browser/profiles/profile.h" |
35 #include "chrome/browser/sessions/session_tab_helper.h" | 35 #include "chrome/browser/sessions/session_tab_helper.h" |
36 #include "chrome/browser/ui/webui/media_router/media_router_localized_strings_pr ovider.h" | 36 #include "chrome/browser/ui/webui/media_router/media_router_localized_strings_pr ovider.h" |
37 #include "chrome/browser/ui/webui/media_router/media_router_resources_provider.h " | 37 #include "chrome/browser/ui/webui/media_router/media_router_resources_provider.h " |
38 #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handle r.h" | 38 #include "chrome/browser/ui/webui/media_router/media_router_webui_message_handle r.h" |
39 #include "chrome/common/pref_names.h" | |
39 #include "chrome/common/url_constants.h" | 40 #include "chrome/common/url_constants.h" |
40 #include "chrome/grit/generated_resources.h" | 41 #include "chrome/grit/generated_resources.h" |
42 #include "components/prefs/pref_service.h" | |
43 #include "components/prefs/scoped_user_pref_update.h" | |
41 #include "content/public/browser/web_contents.h" | 44 #include "content/public/browser/web_contents.h" |
42 #include "content/public/browser/web_ui.h" | 45 #include "content/public/browser/web_ui.h" |
43 #include "content/public/browser/web_ui_data_source.h" | 46 #include "content/public/browser/web_ui_data_source.h" |
44 #include "extensions/browser/extension_registry.h" | 47 #include "extensions/browser/extension_registry.h" |
45 #include "extensions/common/constants.h" | 48 #include "extensions/common/constants.h" |
46 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 49 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
47 #include "third_party/icu/source/i18n/unicode/coll.h" | 50 #include "third_party/icu/source/i18n/unicode/coll.h" |
48 #include "ui/base/l10n/l10n_util.h" | 51 #include "ui/base/l10n/l10n_util.h" |
49 #include "ui/web_dialogs/web_dialog_delegate.h" | 52 #include "ui/web_dialogs/web_dialog_delegate.h" |
50 | 53 |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
500 const std::string source_id = source ? source->id() : ""; | 503 const std::string source_id = source ? source->id() : ""; |
501 | 504 |
502 // The CreateRoute() part of the function is accomplished in the callback | 505 // The CreateRoute() part of the function is accomplished in the callback |
503 // OnSearchSinkResponseReceived(). | 506 // OnSearchSinkResponseReceived(). |
504 router_->SearchSinks( | 507 router_->SearchSinks( |
505 sink_id, source_id, search_criteria, domain, | 508 sink_id, source_id, search_criteria, domain, |
506 base::Bind(&MediaRouterUI::OnSearchSinkResponseReceived, | 509 base::Bind(&MediaRouterUI::OnSearchSinkResponseReceived, |
507 weak_factory_.GetWeakPtr(), cast_mode)); | 510 weak_factory_.GetWeakPtr(), cast_mode)); |
508 } | 511 } |
509 | 512 |
513 MediaCastMode MediaRouterUI::GetCastModeSelectionForCurrentHost() const { | |
514 const base::DictionaryValue* selections = | |
515 Profile::FromWebUI(web_ui())->GetPrefs()->GetDictionary( | |
516 prefs::kMediaRouterCastModeSelections); | |
517 int cast_mode = MediaCastMode::DEFAULT; | |
518 selections->GetInteger(GetInitiatorHostname(), &cast_mode); | |
519 return static_cast<MediaCastMode>(cast_mode); | |
imcheng
2016/11/14 19:32:27
DCHECK the value from pref that it is a valid cast
takumif
2016/11/16 01:34:27
Done.
| |
520 } | |
521 | |
522 void MediaRouterUI::RecordCastModeSelection(MediaCastMode cast_mode) { | |
523 // Desktop mirroring isn't domain-specific, so we don't record the selection. | |
524 if (cast_mode == MediaCastMode::DESKTOP_MIRROR) | |
525 return; | |
526 | |
527 DictionaryPrefUpdate update(Profile::FromWebUI(web_ui())->GetPrefs(), | |
528 prefs::kMediaRouterCastModeSelections); | |
529 update->SetInteger(GetInitiatorHostname(), static_cast<int>(cast_mode)); | |
530 } | |
531 | |
510 void MediaRouterUI::OnResultsUpdated( | 532 void MediaRouterUI::OnResultsUpdated( |
511 const std::vector<MediaSinkWithCastModes>& sinks) { | 533 const std::vector<MediaSinkWithCastModes>& sinks) { |
512 sinks_ = sinks; | 534 sinks_ = sinks; |
513 | 535 |
514 const icu::Collator* collator_ptr = collator_.get(); | 536 const icu::Collator* collator_ptr = collator_.get(); |
515 std::sort(sinks_.begin(), sinks_.end(), | 537 std::sort(sinks_.begin(), sinks_.end(), |
516 [collator_ptr](const MediaSinkWithCastModes& sink1, | 538 [collator_ptr](const MediaSinkWithCastModes& sink1, |
517 const MediaSinkWithCastModes& sink2) { | 539 const MediaSinkWithCastModes& sink2) { |
518 return sink1.sink.CompareUsingCollator(sink2.sink, collator_ptr); | 540 return sink1.sink.CompareUsingCollator(sink2.sink, collator_ptr); |
519 }); | 541 }); |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
689 MediaRouterMetrics::RecordMediaRouterDialogLoaded( | 711 MediaRouterMetrics::RecordMediaRouterDialogLoaded( |
690 base::Time::Now() - start_time_); | 712 base::Time::Now() - start_time_); |
691 start_time_ = base::Time(); | 713 start_time_ = base::Time(); |
692 } | 714 } |
693 } | 715 } |
694 | 716 |
695 void MediaRouterUI::UpdateMaxDialogHeight(int height) { | 717 void MediaRouterUI::UpdateMaxDialogHeight(int height) { |
696 handler_->UpdateMaxDialogHeight(height); | 718 handler_->UpdateMaxDialogHeight(height); |
697 } | 719 } |
698 | 720 |
721 std::string MediaRouterUI::GetInitiatorHostname() const { | |
722 return initiator_ ? initiator_->GetLastCommittedURL().HostNoBrackets() : ""; | |
723 } | |
724 | |
699 } // namespace media_router | 725 } // namespace media_router |
OLD | NEW |