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

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

Issue 1133033003: Eliminate MediaPlayer & MediaPlayerClient abstractions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed compile error in webmediaplayer_impl Created 5 years, 5 months 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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 #include "mojo/application/public/interfaces/shell.mojom.h" 184 #include "mojo/application/public/interfaces/shell.mojom.h"
185 #include "third_party/mojo/src/mojo/public/cpp/bindings/interface_request.h" 185 #include "third_party/mojo/src/mojo/public/cpp/bindings/interface_request.h"
186 #else 186 #else
187 #include "media/renderers/default_renderer_factory.h" 187 #include "media/renderers/default_renderer_factory.h"
188 #endif 188 #endif
189 189
190 #if defined(ENABLE_WEBVR) 190 #if defined(ENABLE_WEBVR)
191 #include "content/renderer/vr/vr_dispatcher.h" 191 #include "content/renderer/vr/vr_dispatcher.h"
192 #endif 192 #endif
193 193
194 using blink::WebContentDecryptionModule;
194 using blink::WebContextMenuData; 195 using blink::WebContextMenuData;
195 using blink::WebData; 196 using blink::WebData;
196 using blink::WebDataSource; 197 using blink::WebDataSource;
197 using blink::WebDocument; 198 using blink::WebDocument;
198 using blink::WebDOMEvent; 199 using blink::WebDOMEvent;
199 using blink::WebDOMMessageEvent; 200 using blink::WebDOMMessageEvent;
200 using blink::WebElement; 201 using blink::WebElement;
201 using blink::WebExternalPopupMenu; 202 using blink::WebExternalPopupMenu;
202 using blink::WebExternalPopupMenuClient; 203 using blink::WebExternalPopupMenuClient;
203 using blink::WebFrame; 204 using blink::WebFrame;
204 using blink::WebHistoryItem; 205 using blink::WebHistoryItem;
205 using blink::WebHTTPBody; 206 using blink::WebHTTPBody;
206 using blink::WebLocalFrame; 207 using blink::WebLocalFrame;
207 using blink::WebMediaPlayer; 208 using blink::WebMediaPlayer;
208 using blink::WebMediaPlayerClient; 209 using blink::WebMediaPlayerClient;
210 using blink::WebMediaPlayerEncryptedMediaClient;
209 using blink::WebNavigationPolicy; 211 using blink::WebNavigationPolicy;
210 using blink::WebNavigationType; 212 using blink::WebNavigationType;
211 using blink::WebNode; 213 using blink::WebNode;
212 using blink::WebPluginParams; 214 using blink::WebPluginParams;
213 using blink::WebPopupMenuInfo; 215 using blink::WebPopupMenuInfo;
214 using blink::WebRange; 216 using blink::WebRange;
215 using blink::WebReferrerPolicy; 217 using blink::WebReferrerPolicy;
216 using blink::WebScriptSource; 218 using blink::WebScriptSource;
217 using blink::WebSearchableFormData; 219 using blink::WebSearchableFormData;
218 using blink::WebSecurityOrigin; 220 using blink::WebSecurityOrigin;
(...skipping 1716 matching lines...) Expand 10 before | Expand all | Expand 10 after
1935 return NULL; 1937 return NULL;
1936 1938
1937 WebPluginParams params_to_use = params; 1939 WebPluginParams params_to_use = params;
1938 params_to_use.mimeType = WebString::fromUTF8(mime_type); 1940 params_to_use.mimeType = WebString::fromUTF8(mime_type);
1939 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */); 1941 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */);
1940 #else 1942 #else
1941 return NULL; 1943 return NULL;
1942 #endif // defined(ENABLE_PLUGINS) 1944 #endif // defined(ENABLE_PLUGINS)
1943 } 1945 }
1944 1946
1945 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( 1947 WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
1946 blink::WebLocalFrame* frame, 1948 blink::WebLocalFrame* frame,
1947 const blink::WebURL& url, 1949 const blink::WebURL& url,
1948 blink::WebMediaPlayerClient* client, 1950 WebMediaPlayerClient* client,
1949 blink::WebContentDecryptionModule* initial_cdm) { 1951 WebMediaPlayerEncryptedMediaClient* encrypted_client,
1952 WebContentDecryptionModule* initial_cdm) {
1950 #if defined(VIDEO_HOLE) 1953 #if defined(VIDEO_HOLE)
1951 if (!contains_media_player_) { 1954 if (!contains_media_player_) {
1952 render_view_->RegisterVideoHoleFrame(this); 1955 render_view_->RegisterVideoHoleFrame(this);
1953 contains_media_player_ = true; 1956 contains_media_player_ = true;
1954 } 1957 }
1955 #endif // defined(VIDEO_HOLE) 1958 #endif // defined(VIDEO_HOLE)
1956 1959
1957 blink::WebMediaStream web_stream( 1960 blink::WebMediaStream web_stream(
1958 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); 1961 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
1959 if (!web_stream.isNull()) 1962 if (!web_stream.isNull())
1960 return CreateWebMediaPlayerForMediaStream(client); 1963 return CreateWebMediaPlayerForMediaStream(client);
1961 1964
1962 #if defined(OS_ANDROID) 1965 #if defined(OS_ANDROID)
1963 return CreateAndroidWebMediaPlayer(client, GetMediaPermission(), initial_cdm); 1966 return CreateAndroidWebMediaPlayer(client, encrypted_client,
1967 GetMediaPermission(), initial_cdm);
1964 #else 1968 #else
1965 scoped_refptr<media::MediaLog> media_log(new RenderMediaLog()); 1969 scoped_refptr<media::MediaLog> media_log(new RenderMediaLog());
1966 1970
1967 RenderThreadImpl* render_thread = RenderThreadImpl::current(); 1971 RenderThreadImpl* render_thread = RenderThreadImpl::current();
1968 media::WebMediaPlayerParams params( 1972 media::WebMediaPlayerParams params(
1969 base::Bind(&ContentRendererClient::DeferMediaLoad, 1973 base::Bind(&ContentRendererClient::DeferMediaLoad,
1970 base::Unretained(GetContentClient()->renderer()), 1974 base::Unretained(GetContentClient()->renderer()),
1971 static_cast<RenderFrame*>(this)), 1975 static_cast<RenderFrame*>(this)),
1972 render_thread->GetAudioRendererMixerManager()->CreateInput(routing_id_), 1976 render_thread->GetAudioRendererMixerManager()->CreateInput(routing_id_),
1973 media_log, render_thread->GetMediaThreadTaskRunner(), 1977 media_log, render_thread->GetMediaThreadTaskRunner(),
(...skipping 10 matching lines...) Expand all
1984 media_log); 1988 media_log);
1985 1989
1986 if (!media_renderer_factory.get()) { 1990 if (!media_renderer_factory.get()) {
1987 media_renderer_factory.reset(new media::DefaultRendererFactory( 1991 media_renderer_factory.reset(new media::DefaultRendererFactory(
1988 media_log, render_thread->GetGpuFactories(), 1992 media_log, render_thread->GetGpuFactories(),
1989 *render_thread->GetAudioHardwareConfig())); 1993 *render_thread->GetAudioHardwareConfig()));
1990 } 1994 }
1991 #endif // defined(ENABLE_MEDIA_MOJO_RENDERER) 1995 #endif // defined(ENABLE_MEDIA_MOJO_RENDERER)
1992 1996
1993 return new media::WebMediaPlayerImpl( 1997 return new media::WebMediaPlayerImpl(
1994 frame, client, weak_factory_.GetWeakPtr(), media_renderer_factory.Pass(), 1998 frame, client, encrypted_client, weak_factory_.GetWeakPtr(),
1995 GetCdmFactory(), params); 1999 media_renderer_factory.Pass(), GetCdmFactory(), params);
1996 #endif // defined(OS_ANDROID) 2000 #endif // defined(OS_ANDROID)
1997 } 2001 }
1998 2002
1999 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost( 2003 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost(
2000 blink::WebLocalFrame* frame, 2004 blink::WebLocalFrame* frame,
2001 blink::WebApplicationCacheHostClient* client) { 2005 blink::WebApplicationCacheHostClient* client) {
2002 if (!frame || !frame->view()) 2006 if (!frame || !frame->view())
2003 return NULL; 2007 return NULL;
2004 DCHECK(!frame_ || frame_ == frame); 2008 DCHECK(!frame_ || frame_ == frame);
2005 return new RendererWebApplicationCacheHostImpl( 2009 return new RendererWebApplicationCacheHostImpl(
(...skipping 1736 matching lines...) Expand 10 before | Expand all | Expand 10 after
3742 3746
3743 #if defined(ENABLE_WEBVR) 3747 #if defined(ENABLE_WEBVR)
3744 blink::WebVRClient* RenderFrameImpl::webVRClient() { 3748 blink::WebVRClient* RenderFrameImpl::webVRClient() {
3745 if (!vr_dispatcher_) 3749 if (!vr_dispatcher_)
3746 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry())); 3750 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry()));
3747 3751
3748 return vr_dispatcher_.get(); 3752 return vr_dispatcher_.get();
3749 } 3753 }
3750 #endif 3754 #endif
3751 3755
3752 void RenderFrameImpl::DidPlay(blink::WebMediaPlayer* player) { 3756 void RenderFrameImpl::DidPlay(WebMediaPlayer* player) {
3753 Send(new FrameHostMsg_MediaPlayingNotification( 3757 Send(new FrameHostMsg_MediaPlayingNotification(
3754 routing_id_, reinterpret_cast<int64>(player), player->hasVideo(), 3758 routing_id_, reinterpret_cast<int64>(player), player->hasVideo(),
3755 player->hasAudio(), player->isRemote())); 3759 player->hasAudio(), player->isRemote()));
3756 } 3760 }
3757 3761
3758 void RenderFrameImpl::DidPause(blink::WebMediaPlayer* player) { 3762 void RenderFrameImpl::DidPause(WebMediaPlayer* player) {
3759 Send(new FrameHostMsg_MediaPausedNotification( 3763 Send(new FrameHostMsg_MediaPausedNotification(
3760 routing_id_, reinterpret_cast<int64>(player))); 3764 routing_id_, reinterpret_cast<int64>(player)));
3761 } 3765 }
3762 3766
3763 void RenderFrameImpl::PlayerGone(blink::WebMediaPlayer* player) { 3767 void RenderFrameImpl::PlayerGone(WebMediaPlayer* player) {
3764 DidPause(player); 3768 DidPause(player);
3765 } 3769 }
3766 3770
3767 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) { 3771 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) {
3768 observers_.AddObserver(observer); 3772 observers_.AddObserver(observer);
3769 } 3773 }
3770 3774
3771 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) { 3775 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) {
3772 observer->RenderFrameGone(); 3776 observer->RenderFrameGone();
3773 observers_.RemoveObserver(observer); 3777 observers_.RemoveObserver(observer);
(...skipping 1096 matching lines...) Expand 10 before | Expand all | Expand 10 after
4870 pending_navigation_params_->start_params, 4874 pending_navigation_params_->start_params,
4871 pending_navigation_params_->request_params); 4875 pending_navigation_params_->request_params);
4872 } 4876 }
4873 return NavigationStateImpl::CreateContentInitiated(); 4877 return NavigationStateImpl::CreateContentInitiated();
4874 } 4878 }
4875 4879
4876 #if defined(OS_ANDROID) 4880 #if defined(OS_ANDROID)
4877 4881
4878 WebMediaPlayer* RenderFrameImpl::CreateAndroidWebMediaPlayer( 4882 WebMediaPlayer* RenderFrameImpl::CreateAndroidWebMediaPlayer(
4879 WebMediaPlayerClient* client, 4883 WebMediaPlayerClient* client,
4884 WebMediaPlayerEncryptedMediaClient* encrypted_client,
4880 media::MediaPermission* media_permission, 4885 media::MediaPermission* media_permission,
4881 blink::WebContentDecryptionModule* initial_cdm) { 4886 WebContentDecryptionModule* initial_cdm) {
4882
4883 scoped_refptr<StreamTextureFactory> stream_texture_factory; 4887 scoped_refptr<StreamTextureFactory> stream_texture_factory;
4884 if (SynchronousCompositorFactory* factory = 4888 if (SynchronousCompositorFactory* factory =
4885 SynchronousCompositorFactory::GetInstance()) { 4889 SynchronousCompositorFactory::GetInstance()) {
4886 stream_texture_factory = factory->CreateStreamTextureFactory(routing_id_); 4890 stream_texture_factory = factory->CreateStreamTextureFactory(routing_id_);
4887 } else { 4891 } else {
4888 GpuChannelHost* gpu_channel_host = 4892 GpuChannelHost* gpu_channel_host =
4889 RenderThreadImpl::current()->EstablishGpuChannelSync( 4893 RenderThreadImpl::current()->EstablishGpuChannelSync(
4890 CAUSE_FOR_GPU_LAUNCH_VIDEODECODEACCELERATOR_INITIALIZE); 4894 CAUSE_FOR_GPU_LAUNCH_VIDEODECODEACCELERATOR_INITIALIZE);
4891 4895
4892 if (!gpu_channel_host) { 4896 if (!gpu_channel_host) {
4893 LOG(ERROR) << "Failed to establish GPU channel for media player"; 4897 LOG(ERROR) << "Failed to establish GPU channel for media player";
4894 return NULL; 4898 return NULL;
4895 } 4899 }
4896 4900
4897 scoped_refptr<cc_blink::ContextProviderWebContext> context_provider = 4901 scoped_refptr<cc_blink::ContextProviderWebContext> context_provider =
4898 RenderThreadImpl::current()->SharedMainThreadContextProvider(); 4902 RenderThreadImpl::current()->SharedMainThreadContextProvider();
4899 4903
4900 if (!context_provider.get()) { 4904 if (!context_provider.get()) {
4901 LOG(ERROR) << "Failed to get context3d for media player"; 4905 LOG(ERROR) << "Failed to get context3d for media player";
4902 return NULL; 4906 return NULL;
4903 } 4907 }
4904 4908
4905 stream_texture_factory = StreamTextureFactoryImpl::Create( 4909 stream_texture_factory = StreamTextureFactoryImpl::Create(
4906 context_provider, gpu_channel_host, routing_id_); 4910 context_provider, gpu_channel_host, routing_id_);
4907 } 4911 }
4908 4912
4909 return new WebMediaPlayerAndroid( 4913 return new WebMediaPlayerAndroid(
4910 frame_, client, weak_factory_.GetWeakPtr(), GetMediaPlayerManager(), 4914 frame_, client, encrypted_client, weak_factory_.GetWeakPtr(),
4911 GetCdmFactory(), media_permission, initial_cdm, stream_texture_factory, 4915 GetMediaPlayerManager(), GetCdmFactory(), media_permission, initial_cdm,
4916 stream_texture_factory,
4912 RenderThreadImpl::current()->GetMediaThreadTaskRunner(), 4917 RenderThreadImpl::current()->GetMediaThreadTaskRunner(),
4913 new RenderMediaLog()); 4918 new RenderMediaLog());
4914 } 4919 }
4915 4920
4916 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() { 4921 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() {
4917 if (!media_player_manager_) 4922 if (!media_player_manager_)
4918 media_player_manager_ = new RendererMediaPlayerManager(this); 4923 media_player_manager_ = new RendererMediaPlayerManager(this);
4919 return media_player_manager_; 4924 return media_player_manager_;
4920 } 4925 }
4921 4926
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
4972 #elif defined(ENABLE_BROWSER_CDMS) 4977 #elif defined(ENABLE_BROWSER_CDMS)
4973 cdm_manager_, 4978 cdm_manager_,
4974 #endif 4979 #endif
4975 this); 4980 this);
4976 } 4981 }
4977 4982
4978 return cdm_factory_; 4983 return cdm_factory_;
4979 } 4984 }
4980 4985
4981 } // namespace content 4986 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698