From daeae7290eec8601bfe01aef365f4ca82cda63c5 Mon Sep 17 00:00:00 2001 From: "fischman@chromium.org" Date: Tue, 15 Nov 2011 23:00:58 +0000 Subject: Only report Media.AcceleratedCompositingActive for video-having playbacks. Added Media.URLScheme histogram. BUG=none TEST=manual observation of chrome://histograms/Media Review URL: http://codereview.chromium.org/8468011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110201 0039d316-1c4b-4281-b951-d872f2087c98 --- webkit/glue/webmediaplayer_impl.cc | 44 ++++++++++++++++++++++++++++++++++++-- webkit/glue/webmediaplayer_impl.h | 2 ++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/webkit/glue/webmediaplayer_impl.cc b/webkit/glue/webmediaplayer_impl.cc index 01ddcc0..94642d4 100644 --- a/webkit/glue/webmediaplayer_impl.cc +++ b/webkit/glue/webmediaplayer_impl.cc @@ -120,6 +120,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( delegate_(delegate), media_stream_client_(media_stream_client), media_log_(media_log), + is_accelerated_compositing_active_(false), incremented_externally_allocated_memory_(false) { // Saves the current message loop. DCHECK(!main_loop_); @@ -152,8 +153,8 @@ bool WebMediaPlayerImpl::Initialize( AsWeakPtr())); } - UMA_HISTOGRAM_BOOLEAN("Media.AcceleratedCompositingActive", - frame->view()->isAcceleratedCompositingActive()); + is_accelerated_compositing_active_ = + frame->view()->isAcceleratedCompositingActive(); pipeline_ = new media::PipelineImpl(pipeline_message_loop, media_log_); @@ -237,10 +238,44 @@ WebMediaPlayerImpl::~WebMediaPlayerImpl() { } } +namespace { + +// Helper enum for reporting scheme histograms. +enum URLSchemeForHistogram { + kUnknownURLScheme, + kMissingURLScheme, + kHttpURLScheme, + kHttpsURLScheme, + kFtpURLScheme, + kChromeExtensionURLScheme, + kJavascriptURLScheme, + kFileURLScheme, + kBlobURLScheme, + kDataURLScheme, + kMaxURLScheme = kDataURLScheme // Must be equal to highest enum value. +}; + +URLSchemeForHistogram URLScheme(const GURL& url) { + if (!url.has_scheme()) return kMissingURLScheme; + if (url.SchemeIs("http")) return kHttpURLScheme; + if (url.SchemeIs("https")) return kHttpsURLScheme; + if (url.SchemeIs("ftp")) return kFtpURLScheme; + if (url.SchemeIs("chrome-extension")) return kChromeExtensionURLScheme; + if (url.SchemeIs("javascript")) return kJavascriptURLScheme; + if (url.SchemeIs("file")) return kFileURLScheme; + if (url.SchemeIs("blob")) return kBlobURLScheme; + if (url.SchemeIs("data")) return kDataURLScheme; + return kUnknownURLScheme; +} + +} // anonymous namespace + void WebMediaPlayerImpl::load(const WebKit::WebURL& url) { DCHECK_EQ(main_loop_, MessageLoop::current()); DCHECK(proxy_); + UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(url), kMaxURLScheme); + if (media_stream_client_) { bool has_video = false; bool has_audio = false; @@ -708,6 +743,11 @@ void WebMediaPlayerImpl::OnPipelineInitialize(PipelineStatus status) { static_cast(pipeline_->GetMediaDuration().InSecondsF()); buffered_.swap(new_buffered); + if (hasVideo()) { + UMA_HISTOGRAM_BOOLEAN("Media.AcceleratedCompositingActive", + is_accelerated_compositing_active_); + } + if (pipeline_->IsLoaded()) { SetNetworkState(WebKit::WebMediaPlayer::Loaded); } diff --git a/webkit/glue/webmediaplayer_impl.h b/webkit/glue/webmediaplayer_impl.h index 3acaa6f..ac573d9 100644 --- a/webkit/glue/webmediaplayer_impl.h +++ b/webkit/glue/webmediaplayer_impl.h @@ -267,6 +267,8 @@ class WebMediaPlayerImpl scoped_refptr media_log_; + bool is_accelerated_compositing_active_; + bool incremented_externally_allocated_memory_; DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); -- cgit v1.1