summaryrefslogtreecommitdiffstats
path: root/webkit/media
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-26 19:40:51 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-26 19:40:51 +0000
commitc5b1b642eb2e529679669ce7c454a275191805df (patch)
tree46a1e1777aae2397087fb8f6351301cf7ae9384f /webkit/media
parenta830b88172bbf4fc48847bd739ac14897346aea3 (diff)
downloadchromium_src-c5b1b642eb2e529679669ce7c454a275191805df.zip
chromium_src-c5b1b642eb2e529679669ce7c454a275191805df.tar.gz
chromium_src-c5b1b642eb2e529679669ce7c454a275191805df.tar.bz2
Fix reporting of Media.AcceleratedCompositingActive to account for JS-created media elements.
BUG=119722 Review URL: http://codereview.chromium.org/9854029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128975 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/media')
-rw-r--r--webkit/media/webmediaplayer_impl.cc16
-rw-r--r--webkit/media/webmediaplayer_impl.h4
2 files changed, 10 insertions, 10 deletions
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
index c988faa..61b478c 100644
--- a/webkit/media/webmediaplayer_impl.cc
+++ b/webkit/media/webmediaplayer_impl.cc
@@ -118,7 +118,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
delegate_(delegate),
media_stream_client_(media_stream_client),
media_log_(media_log),
- is_accelerated_compositing_active_(false),
+ accelerated_compositing_reported_(false),
incremented_externally_allocated_memory_(false),
audio_source_provider_(audio_source_provider) {
media_log_->AddEvent(
@@ -139,9 +139,6 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
base::Bind(&WebMediaPlayerImpl::IncrementExternallyAllocatedMemory,
AsWeakPtr()));
- is_accelerated_compositing_active_ =
- frame->view()->isAcceleratedCompositingActive();
-
// Also we want to be notified of |main_loop_| destruction.
main_loop_->AddDestructionObserver(this);
@@ -621,6 +618,11 @@ WebKit::WebVideoFrame* WebMediaPlayerImpl::getCurrentFrame() {
void WebMediaPlayerImpl::putCurrentFrame(
WebKit::WebVideoFrame* web_video_frame) {
+ if (!accelerated_compositing_reported_) {
+ accelerated_compositing_reported_ = true;
+ UMA_HISTOGRAM_BOOLEAN("Media.AcceleratedCompositingActive",
+ frame_->view()->isAcceleratedCompositingActive());
+ }
if (web_video_frame) {
scoped_refptr<media::VideoFrame> video_frame(
WebVideoFrameImpl::toVideoFrame(web_video_frame));
@@ -678,12 +680,8 @@ void WebMediaPlayerImpl::OnPipelineInitialize(PipelineStatus status) {
static_cast<float>(pipeline_->GetMediaDuration().InSecondsF());
buffered_.swap(new_buffered);
- if (hasVideo()) {
- UMA_HISTOGRAM_BOOLEAN("Media.AcceleratedCompositingActive",
- is_accelerated_compositing_active_);
- } else {
+ if (!hasVideo())
GetClient()->disableAcceleratedCompositing();
- }
if (pipeline_->IsLocalSource())
SetNetworkState(WebKit::WebMediaPlayer::Loaded);
diff --git a/webkit/media/webmediaplayer_impl.h b/webkit/media/webmediaplayer_impl.h
index fea3b92..0d521ef 100644
--- a/webkit/media/webmediaplayer_impl.h
+++ b/webkit/media/webmediaplayer_impl.h
@@ -274,7 +274,9 @@ class WebMediaPlayerImpl
scoped_refptr<media::MediaLog> media_log_;
- bool is_accelerated_compositing_active_;
+ // Since accelerated compositing status is only known after the first layout,
+ // we delay reporting it to UMA until that time.
+ bool accelerated_compositing_reported_;
bool incremented_externally_allocated_memory_;