Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 712463004: media: Support MojoRendererService in the browser process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix GN; Drop GYP. Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « content/renderer/BUILD.gn ('k') | media/media_options.gni » ('j') | media/mojo/services/BUILD.gn » ('J')

Powered by Google App Engine
This is Rietveld 408576698