OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/renderer/render_frame_impl.h" | 5 #include "content/renderer/render_frame_impl.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h" | 92 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h" |
93 #include "content/renderer/shared_worker_repository.h" | 93 #include "content/renderer/shared_worker_repository.h" |
94 #include "content/renderer/v8_value_converter_impl.h" | 94 #include "content/renderer/v8_value_converter_impl.h" |
95 #include "content/renderer/websharedworker_proxy.h" | 95 #include "content/renderer/websharedworker_proxy.h" |
96 #include "gin/modules/module_registry.h" | 96 #include "gin/modules/module_registry.h" |
97 #include "media/base/audio_renderer_mixer_input.h" | 97 #include "media/base/audio_renderer_mixer_input.h" |
98 #include "media/base/media_log.h" | 98 #include "media/base/media_log.h" |
99 #include "media/blink/webcontentdecryptionmodule_impl.h" | 99 #include "media/blink/webcontentdecryptionmodule_impl.h" |
100 #include "media/blink/webmediaplayer_impl.h" | 100 #include "media/blink/webmediaplayer_impl.h" |
101 #include "media/blink/webmediaplayer_params.h" | 101 #include "media/blink/webmediaplayer_params.h" |
102 #include "media/filters/default_renderer_factory.h" | |
103 #include "media/filters/gpu_video_accelerator_factories.h" | 102 #include "media/filters/gpu_video_accelerator_factories.h" |
104 #include "mojo/edk/js/core.h" | 103 #include "mojo/edk/js/core.h" |
105 #include "mojo/edk/js/support.h" | 104 #include "mojo/edk/js/support.h" |
106 #include "net/base/data_url.h" | 105 #include "net/base/data_url.h" |
107 #include "net/base/net_errors.h" | 106 #include "net/base/net_errors.h" |
108 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 107 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
109 #include "net/http/http_util.h" | 108 #include "net/http/http_util.h" |
110 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" | 109 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" |
111 #include "third_party/WebKit/public/platform/WebString.h" | 110 #include "third_party/WebKit/public/platform/WebString.h" |
112 #include "third_party/WebKit/public/platform/WebURL.h" | 111 #include "third_party/WebKit/public/platform/WebURL.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 #include "content/renderer/media/android/stream_texture_factory_impl.h" | 152 #include "content/renderer/media/android/stream_texture_factory_impl.h" |
154 #include "content/renderer/media/android/webmediaplayer_android.h" | 153 #include "content/renderer/media/android/webmediaplayer_android.h" |
155 #endif | 154 #endif |
156 | 155 |
157 #if defined(ENABLE_PEPPER_CDMS) | 156 #if defined(ENABLE_PEPPER_CDMS) |
158 #include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h" | 157 #include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h" |
159 #elif defined(ENABLE_BROWSER_CDMS) | 158 #elif defined(ENABLE_BROWSER_CDMS) |
160 #include "content/renderer/media/crypto/renderer_cdm_manager.h" | 159 #include "content/renderer/media/crypto/renderer_cdm_manager.h" |
161 #endif | 160 #endif |
162 | 161 |
| 162 #if defined(ENABLE_MOJO_MEDIA_RENDERER) |
| 163 #include "media/mojo/interfaces/media_renderer.mojom.h" |
| 164 #include "media/mojo/services/mojo_renderer_factory.h" |
| 165 #else |
| 166 #include "media/filters/default_renderer_factory.h" |
| 167 #endif |
| 168 |
163 using blink::WebContextMenuData; | 169 using blink::WebContextMenuData; |
164 using blink::WebData; | 170 using blink::WebData; |
165 using blink::WebDataSource; | 171 using blink::WebDataSource; |
166 using blink::WebDocument; | 172 using blink::WebDocument; |
167 using blink::WebElement; | 173 using blink::WebElement; |
168 using blink::WebExternalPopupMenu; | 174 using blink::WebExternalPopupMenu; |
169 using blink::WebExternalPopupMenuClient; | 175 using blink::WebExternalPopupMenuClient; |
170 using blink::WebFrame; | 176 using blink::WebFrame; |
171 using blink::WebHistoryItem; | 177 using blink::WebHistoryItem; |
172 using blink::WebHTTPBody; | 178 using blink::WebHTTPBody; |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 params.referrer = Referrer( | 475 params.referrer = Referrer( |
470 GURL(request->httpHeaderField(WebString::fromUTF8("Referer")).latin1()), | 476 GURL(request->httpHeaderField(WebString::fromUTF8("Referer")).latin1()), |
471 request->referrerPolicy()); | 477 request->referrerPolicy()); |
472 params.transition = extra_data->transition_type(); | 478 params.transition = extra_data->transition_type(); |
473 return params; | 479 return params; |
474 } | 480 } |
475 | 481 |
476 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = | 482 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = |
477 nullptr; | 483 nullptr; |
478 | 484 |
| 485 #if defined(ENABLE_MOJO_MEDIA_RENDERER) |
| 486 // Helper class to connect to a mojo::MediaRenderer service for |
| 487 // media::MojoRendererFactory. |
| 488 class MediaRendererServiceProvider |
| 489 : public media::MojoRendererFactory::ServiceProvider { |
| 490 public: |
| 491 explicit MediaRendererServiceProvider(ServiceRegistry* service_registry) |
| 492 : service_registry_(service_registry) {} |
| 493 ~MediaRendererServiceProvider() final {} |
| 494 |
| 495 void ConnectToService( |
| 496 mojo::InterfacePtr<mojo::MediaRenderer>* media_renderer_ptr) final { |
| 497 service_registry_->ConnectToRemoteService(media_renderer_ptr); |
| 498 } |
| 499 |
| 500 private: |
| 501 ServiceRegistry* service_registry_; |
| 502 |
| 503 DISALLOW_COPY_AND_ASSIGN(MediaRendererServiceProvider); |
| 504 }; |
| 505 #endif |
| 506 |
479 } // namespace | 507 } // namespace |
480 | 508 |
481 | 509 |
482 // static | 510 // static |
483 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, | 511 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, |
484 int32 routing_id) { | 512 int32 routing_id) { |
485 DCHECK(routing_id != MSG_ROUTING_NONE); | 513 DCHECK(routing_id != MSG_ROUTING_NONE); |
486 | 514 |
487 if (g_create_render_frame_impl) | 515 if (g_create_render_frame_impl) |
488 return g_create_render_frame_impl(render_view, routing_id); | 516 return g_create_render_frame_impl(render_view, routing_id); |
(...skipping 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1751 return CreatePlugin(frame, info, params_to_use, POWER_SAVER_MODE_ESSENTIAL); | 1779 return CreatePlugin(frame, info, params_to_use, POWER_SAVER_MODE_ESSENTIAL); |
1752 #else | 1780 #else |
1753 return NULL; | 1781 return NULL; |
1754 #endif // defined(ENABLE_PLUGINS) | 1782 #endif // defined(ENABLE_PLUGINS) |
1755 } | 1783 } |
1756 | 1784 |
1757 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( | 1785 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
1758 blink::WebLocalFrame* frame, | 1786 blink::WebLocalFrame* frame, |
1759 const blink::WebURL& url, | 1787 const blink::WebURL& url, |
1760 blink::WebMediaPlayerClient* client) { | 1788 blink::WebMediaPlayerClient* client) { |
1761 return createMediaPlayer(frame, url, client, NULL); | 1789 return createMediaPlayer(frame, url, client, nullptr); |
1762 } | 1790 } |
1763 | 1791 |
1764 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( | 1792 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
1765 blink::WebLocalFrame* frame, | 1793 blink::WebLocalFrame* frame, |
1766 const blink::WebURL& url, | 1794 const blink::WebURL& url, |
1767 blink::WebMediaPlayerClient* client, | 1795 blink::WebMediaPlayerClient* client, |
1768 blink::WebContentDecryptionModule* initial_cdm) { | 1796 blink::WebContentDecryptionModule* initial_cdm) { |
1769 #if defined(VIDEO_HOLE) | 1797 #if defined(VIDEO_HOLE) |
1770 if (!contains_media_player_) { | 1798 if (!contains_media_player_) { |
1771 render_view_->RegisterVideoHoleFrame(this); | 1799 render_view_->RegisterVideoHoleFrame(this); |
(...skipping 24 matching lines...) Expand all Loading... |
1796 #if defined(ENABLE_PEPPER_CDMS) | 1824 #if defined(ENABLE_PEPPER_CDMS) |
1797 scoped_ptr<media::CdmFactory> cdm_factory( | 1825 scoped_ptr<media::CdmFactory> cdm_factory( |
1798 new RenderCdmFactory(base::Bind(&PepperCdmWrapperImpl::Create, frame))); | 1826 new RenderCdmFactory(base::Bind(&PepperCdmWrapperImpl::Create, frame))); |
1799 #elif defined(ENABLE_BROWSER_CDMS) | 1827 #elif defined(ENABLE_BROWSER_CDMS) |
1800 scoped_ptr<media::CdmFactory> cdm_factory( | 1828 scoped_ptr<media::CdmFactory> cdm_factory( |
1801 new RenderCdmFactory(GetCdmManager())); | 1829 new RenderCdmFactory(GetCdmManager())); |
1802 #else | 1830 #else |
1803 scoped_ptr<media::CdmFactory> cdm_factory(new RenderCdmFactory()); | 1831 scoped_ptr<media::CdmFactory> cdm_factory(new RenderCdmFactory()); |
1804 #endif | 1832 #endif |
1805 | 1833 |
| 1834 #if defined(ENABLE_MOJO_MEDIA_RENDERER) |
| 1835 scoped_ptr<media::RendererFactory> media_renderer_factory( |
| 1836 new media::MojoRendererFactory(make_scoped_ptr( |
| 1837 new MediaRendererServiceProvider(GetServiceRegistry())))); |
| 1838 #else |
1806 scoped_ptr<media::RendererFactory> media_renderer_factory = | 1839 scoped_ptr<media::RendererFactory> media_renderer_factory = |
1807 GetContentClient()->renderer()->CreateMediaRendererFactory(this); | 1840 GetContentClient()->renderer()->CreateMediaRendererFactory(this); |
1808 | 1841 |
1809 if (!media_renderer_factory.get()) { | 1842 if (!media_renderer_factory.get()) { |
1810 media_renderer_factory.reset(new media::DefaultRendererFactory( | 1843 media_renderer_factory.reset(new media::DefaultRendererFactory( |
1811 media_log, render_thread->GetGpuFactories(), | 1844 media_log, render_thread->GetGpuFactories(), |
1812 *render_thread->GetAudioHardwareConfig())); | 1845 *render_thread->GetAudioHardwareConfig())); |
1813 } | 1846 } |
| 1847 #endif // defined(ENABLE_MOJO_MEDIA_RENDERER) |
1814 | 1848 |
1815 return new media::WebMediaPlayerImpl( | 1849 return new media::WebMediaPlayerImpl( |
1816 frame, client, weak_factory_.GetWeakPtr(), media_renderer_factory.Pass(), | 1850 frame, client, weak_factory_.GetWeakPtr(), media_renderer_factory.Pass(), |
1817 cdm_factory.Pass(), params); | 1851 cdm_factory.Pass(), params); |
1818 #endif // defined(OS_ANDROID) | 1852 #endif // defined(OS_ANDROID) |
1819 } | 1853 } |
1820 | 1854 |
1821 blink::WebContentDecryptionModule* | 1855 blink::WebContentDecryptionModule* |
1822 RenderFrameImpl::createContentDecryptionModule( | 1856 RenderFrameImpl::createContentDecryptionModule( |
1823 blink::WebLocalFrame* frame, | 1857 blink::WebLocalFrame* frame, |
(...skipping 2464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4288 | 4322 |
4289 #if defined(ENABLE_BROWSER_CDMS) | 4323 #if defined(ENABLE_BROWSER_CDMS) |
4290 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 4324 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
4291 if (!cdm_manager_) | 4325 if (!cdm_manager_) |
4292 cdm_manager_ = new RendererCdmManager(this); | 4326 cdm_manager_ = new RendererCdmManager(this); |
4293 return cdm_manager_; | 4327 return cdm_manager_; |
4294 } | 4328 } |
4295 #endif // defined(ENABLE_BROWSER_CDMS) | 4329 #endif // defined(ENABLE_BROWSER_CDMS) |
4296 | 4330 |
4297 } // namespace content | 4331 } // namespace content |
OLD | NEW |