| 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> |
| 11 | 11 |
| 12 #include "base/guid.h" | 12 #include "base/guid.h" |
| 13 #include "base/macros.h" | 13 #include "base/macros.h" |
| 14 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" |
| 15 #include "base/strings/string_util.h" | 15 #include "base/strings/string_util.h" |
| 16 #include "base/strings/utf_string_conversions.h" | 16 #include "base/strings/utf_string_conversions.h" |
| 17 #include "base/trace_event/trace_event.h" | 17 #include "base/trace_event/trace_event.h" |
| 18 #include "build/build_config.h" | 18 #include "build/build_config.h" |
| 19 #include "chrome/browser/browser_process.h" | 19 #include "chrome/browser/browser_process.h" |
| 20 #include "chrome/browser/media/router/create_presentation_connection_request.h" | 20 #include "chrome/browser/media/router/create_presentation_connection_request.h" |
| 21 #include "chrome/browser/media/router/event_page_request_manager.h" |
| 22 #include "chrome/browser/media/router/event_page_request_manager_factory.h" |
| 21 #include "chrome/browser/media/router/issues_observer.h" | 23 #include "chrome/browser/media/router/issues_observer.h" |
| 22 #include "chrome/browser/media/router/media_router.h" | 24 #include "chrome/browser/media/router/media_router.h" |
| 23 #include "chrome/browser/media/router/media_router_factory.h" | 25 #include "chrome/browser/media/router/media_router_factory.h" |
| 24 #include "chrome/browser/media/router/media_router_feature.h" | 26 #include "chrome/browser/media/router/media_router_feature.h" |
| 25 #include "chrome/browser/media/router/media_router_metrics.h" | 27 #include "chrome/browser/media/router/media_router_metrics.h" |
| 26 #include "chrome/browser/media/router/media_routes_observer.h" | 28 #include "chrome/browser/media/router/media_routes_observer.h" |
| 27 #include "chrome/browser/media/router/media_sinks_observer.h" | 29 #include "chrome/browser/media/router/media_sinks_observer.h" |
| 28 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h" | 30 #include "chrome/browser/media/router/mojo/media_router_mojo_impl.h" |
| 29 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" | 31 #include "chrome/browser/media/router/presentation_service_delegate_impl.h" |
| 30 #include "chrome/browser/profiles/profile.h" | 32 #include "chrome/browser/profiles/profile.h" |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 auto handler = base::MakeUnique<MediaRouterWebUIMessageHandler>(this); | 225 auto handler = base::MakeUnique<MediaRouterWebUIMessageHandler>(this); |
| 224 handler_ = handler.get(); | 226 handler_ = handler.get(); |
| 225 | 227 |
| 226 // Create a WebUIDataSource containing the chrome://media-router page's | 228 // Create a WebUIDataSource containing the chrome://media-router page's |
| 227 // content. | 229 // content. |
| 228 std::unique_ptr<content::WebUIDataSource> html_source( | 230 std::unique_ptr<content::WebUIDataSource> html_source( |
| 229 content::WebUIDataSource::Create(chrome::kChromeUIMediaRouterHost)); | 231 content::WebUIDataSource::Create(chrome::kChromeUIMediaRouterHost)); |
| 230 | 232 |
| 231 content::WebContents* wc = web_ui->GetWebContents(); | 233 content::WebContents* wc = web_ui->GetWebContents(); |
| 232 DCHECK(wc); | 234 DCHECK(wc); |
| 235 content::BrowserContext* context = wc->GetBrowserContext(); |
| 233 | 236 |
| 234 router_ = | 237 router_ = MediaRouterFactory::GetApiForBrowserContext(context); |
| 235 MediaRouterFactory::GetApiForBrowserContext(wc->GetBrowserContext()); | 238 event_page_request_manager_ = |
| 239 EventPageRequestManagerFactory::GetApiForBrowserContext(context); |
| 236 | 240 |
| 237 // Allows UI to load extensionview. | 241 // Allows UI to load extensionview. |
| 238 // TODO(haibinlu): limit object-src to current extension once crbug/514866 | 242 // TODO(haibinlu): limit object-src to current extension once crbug/514866 |
| 239 // is fixed. | 243 // is fixed. |
| 240 html_source->OverrideContentSecurityPolicyObjectSrc("object-src chrome:;"); | 244 html_source->OverrideContentSecurityPolicyObjectSrc("object-src chrome:;"); |
| 241 | 245 |
| 242 AddLocalizedStrings(html_source.get()); | 246 AddLocalizedStrings(html_source.get()); |
| 243 AddMediaRouterUIResources(html_source.get()); | 247 AddMediaRouterUIResources(html_source.get()); |
| 244 // Ownership of |html_source| is transferred to the BrowserContext. | 248 // Ownership of |html_source| is transferred to the BrowserContext. |
| 245 content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), | 249 content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), |
| (...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 851 ? GetExtensionName(gurl, extensions::ExtensionRegistry::Get( | 855 ? GetExtensionName(gurl, extensions::ExtensionRegistry::Get( |
| 852 Profile::FromWebUI(web_ui()))) | 856 Profile::FromWebUI(web_ui()))) |
| 853 : TruncateHost(GetHostFromURL(gurl)); | 857 : TruncateHost(GetHostFromURL(gurl)); |
| 854 } | 858 } |
| 855 | 859 |
| 856 const std::set<MediaCastMode>& MediaRouterUI::cast_modes() const { | 860 const std::set<MediaCastMode>& MediaRouterUI::cast_modes() const { |
| 857 return cast_modes_; | 861 return cast_modes_; |
| 858 } | 862 } |
| 859 | 863 |
| 860 const std::string& MediaRouterUI::GetRouteProviderExtensionId() const { | 864 const std::string& MediaRouterUI::GetRouteProviderExtensionId() const { |
| 861 // TODO(crbug.com/597778): remove reference to MediaRouterMojoImpl | 865 return event_page_request_manager_->media_route_provider_extension_id(); |
| 862 return static_cast<MediaRouterMojoImpl*>(router_) | |
| 863 ->media_route_provider_extension_id(); | |
| 864 } | 866 } |
| 865 | 867 |
| 866 void MediaRouterUI::SetUIInitializationTimer(const base::Time& start_time) { | 868 void MediaRouterUI::SetUIInitializationTimer(const base::Time& start_time) { |
| 867 DCHECK(!start_time.is_null()); | 869 DCHECK(!start_time.is_null()); |
| 868 start_time_ = start_time; | 870 start_time_ = start_time; |
| 869 } | 871 } |
| 870 | 872 |
| 871 void MediaRouterUI::OnUIInitiallyLoaded() { | 873 void MediaRouterUI::OnUIInitiallyLoaded() { |
| 872 if (!start_time_.is_null()) { | 874 if (!start_time_.is_null()) { |
| 873 MediaRouterMetrics::RecordMediaRouterDialogPaint(base::Time::Now() - | 875 MediaRouterMetrics::RecordMediaRouterDialogPaint(base::Time::Now() - |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 921 } | 923 } |
| 922 | 924 |
| 923 std::string MediaRouterUI::GetSerializedInitiatorOrigin() const { | 925 std::string MediaRouterUI::GetSerializedInitiatorOrigin() const { |
| 924 url::Origin origin = initiator_ | 926 url::Origin origin = initiator_ |
| 925 ? url::Origin(initiator_->GetLastCommittedURL()) | 927 ? url::Origin(initiator_->GetLastCommittedURL()) |
| 926 : url::Origin(); | 928 : url::Origin(); |
| 927 return origin.Serialize(); | 929 return origin.Serialize(); |
| 928 } | 930 } |
| 929 | 931 |
| 930 } // namespace media_router | 932 } // namespace media_router |
| OLD | NEW |