diff options
author | wjia@chromium.org <wjia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-10 23:36:20 +0000 |
---|---|---|
committer | wjia@chromium.org <wjia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-10 23:36:20 +0000 |
commit | 1fba73c14c6cadc0f04045e04187d734695aec65 (patch) | |
tree | eb0b76b63212c1e743f3b722cdd36122546e9f6a | |
parent | 734012a12e1ba5539b8ace50dbd59ba5c32c9aef (diff) | |
download | chromium_src-1fba73c14c6cadc0f04045e04187d734695aec65.zip chromium_src-1fba73c14c6cadc0f04045e04187d734695aec65.tar.gz chromium_src-1fba73c14c6cadc0f04045e04187d734695aec65.tar.bz2 |
Tentatively turn on WebMediaPlayerMS by default.
WebMediaPlayerMS can be disabled by using "--disable-web-media-player-ms"
Create a static function in MediaStreamImpl for checking whether a URL is media stream. This can save some overhead in render_view_impl.cc.
BUG=142988
Review URL: https://codereview.chromium.org/11066101
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161230 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/browser/renderer_host/render_process_host_impl.cc | 2 | ||||
-rw-r--r-- | content/public/common/content_switches.cc | 4 | ||||
-rw-r--r-- | content/public/common/content_switches.h | 2 | ||||
-rw-r--r-- | content/renderer/media/media_stream_impl.cc | 9 | ||||
-rw-r--r-- | content/renderer/media/media_stream_impl.h | 6 | ||||
-rw-r--r-- | content/renderer/render_view_impl.cc | 9 |
6 files changed, 21 insertions, 11 deletions
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index e2c2241..394be0c 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -806,7 +806,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kEnableGpuBenchmarking, switches::kEnableLogging, switches::kDisableMediaSource, - switches::kEnableWebMediaPlayerMS, + switches::kDisableWebMediaPlayerMS, switches::kEnablePartialSwap, switches::kEnablePerTilePainting, switches::kEnableRendererSideMixing, diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc index c70c2f3..2cb2ec7 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc @@ -301,9 +301,9 @@ const char kEnableLogging[] = "enable-logging"; // Disable Media Source API on <audio>/<video> elements. const char kDisableMediaSource[] = "disable-media-source"; -// Enables using WebMediaPlayerMS for src of <audio>/<video> derived from +// Disables using WebMediaPlayerMS for src of <audio>/<video> derived from // media stream. -const char kEnableWebMediaPlayerMS[] = "enable-web-media-player-ms"; +const char kDisableWebMediaPlayerMS[] = "disable-web-media-player-ms"; // On Windows, converts the page to the currently-installed monitor profile. // This does NOT enable color management for images. The source is still diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h index fe46833..c69c77d 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h @@ -106,7 +106,7 @@ extern const char kEnableGestureTapHighlight[]; extern const char kEnableGpuBenchmarking[]; CONTENT_EXPORT extern const char kEnableLogging[]; extern const char kDisableMediaSource[]; -extern const char kEnableWebMediaPlayerMS[]; +extern const char kDisableWebMediaPlayerMS[]; extern const char kEnableMonitorProfile[]; extern const char kEnablePartialSwap[]; extern const char kEnableUIReleaseFrontSurface[]; diff --git a/content/renderer/media/media_stream_impl.cc b/content/renderer/media/media_stream_impl.cc index 648fe2a..1727460 100644 --- a/content/renderer/media/media_stream_impl.cc +++ b/content/renderer/media/media_stream_impl.cc @@ -146,8 +146,13 @@ WebKit::WebMediaStreamDescriptor MediaStreamImpl::GetMediaStream( } bool MediaStreamImpl::IsMediaStream(const GURL& url) { - DCHECK(CalledOnValidThread()); - WebKit::WebMediaStreamDescriptor descriptor(GetMediaStream(url)); + return CheckMediaStream(url); +} + +// static +bool MediaStreamImpl::CheckMediaStream(const GURL& url) { + WebKit::WebMediaStreamDescriptor descriptor( + WebKit::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); if (descriptor.isNull() || !descriptor.extraData()) return false; // This is not a valid stream. diff --git a/content/renderer/media/media_stream_impl.h b/content/renderer/media/media_stream_impl.h index 1ffca32..8d3aca7 100644 --- a/content/renderer/media/media_stream_impl.h +++ b/content/renderer/media/media_stream_impl.h @@ -51,6 +51,12 @@ class CONTENT_EXPORT MediaStreamImpl MediaStreamDependencyFactory* dependency_factory); virtual ~MediaStreamImpl(); + // Return true when the |url| is media stream. + // This static function has the same functionalilty as IsMediaStream + // except that it doesn't require an instance of this class. + // This can save some overhead time when the |url| is not media stream. + static bool CheckMediaStream(const GURL& url); + // WebKit::WebUserMediaClient implementation virtual void requestUserMedia( const WebKit::WebUserMediaRequest& user_media_request, diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index e4731d7..cf18e69 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -2649,12 +2649,11 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer( if (!media_player) { // TODO(wjia): when all patches related to WebMediaPlayerMS have been // landed, remove the switch. Refer to crbug.com/142988. - if (cmd_line->HasSwitch(switches::kEnableWebMediaPlayerMS)) { + if (!cmd_line->HasSwitch(switches::kDisableWebMediaPlayerMS) && + MediaStreamImpl::CheckMediaStream(url)) { EnsureMediaStreamImpl(); - if (media_stream_impl_ && media_stream_impl_->IsMediaStream(url)) { - return new webkit_media::WebMediaPlayerMS( - frame, client, AsWeakPtr(), media_stream_impl_, render_media_log); - } + return new webkit_media::WebMediaPlayerMS( + frame, client, AsWeakPtr(), media_stream_impl_, render_media_log); } media_player = new webkit_media::WebMediaPlayerImpl( |