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_MEDIA_MOJO_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_MEDIA_MOJO_RENDERER) | |
486 // Helper class to connect to a mojo::MediaRenderer service for | |
487 // media::MojoRendererFactory. | |
488 class MediaRendererServiceProvider | |
DaleCurtis
2014/12/18 19:25:11
Is this something we want to live in RenderFrameIm
DaleCurtis
2014/12/18 21:34:02
Don't see this one resolved or discussed.
xhwang
2014/12/18 22:48:30
Sorry, I missed this one. Moved out to content/ren
| |
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_MEDIA_MOJO_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_MEDIA_MOJO_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 2466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4290 | 4324 |
4291 #if defined(ENABLE_BROWSER_CDMS) | 4325 #if defined(ENABLE_BROWSER_CDMS) |
4292 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 4326 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
4293 if (!cdm_manager_) | 4327 if (!cdm_manager_) |
4294 cdm_manager_ = new RendererCdmManager(this); | 4328 cdm_manager_ = new RendererCdmManager(this); |
4295 return cdm_manager_; | 4329 return cdm_manager_; |
4296 } | 4330 } |
4297 #endif // defined(ENABLE_BROWSER_CDMS) | 4331 #endif // defined(ENABLE_BROWSER_CDMS) |
4298 | 4332 |
4299 } // namespace content | 4333 } // namespace content |
OLD | NEW |