| 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 |