| Index: content/renderer/media/webmediaplayer_ms_compositor.cc | 
| diff --git a/content/renderer/media/webmediaplayer_ms_compositor.cc b/content/renderer/media/webmediaplayer_ms_compositor.cc | 
| index 6b8f546c848308ff718baa4757b8de5d9cec730c..171e38340536dc15be36316f27d2e238cbd55fd2 100644 | 
| --- a/content/renderer/media/webmediaplayer_ms_compositor.cc | 
| +++ b/content/renderer/media/webmediaplayer_ms_compositor.cc | 
| @@ -106,6 +106,26 @@ WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor( | 
| serial_ = (hash_value << 1) | (remote_video ? 1 : 0); | 
| } | 
|  | 
| +WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor( | 
| +    const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, | 
| +    const bool algorithm_enabled) | 
| +    : compositor_task_runner_(compositor_task_runner), | 
| +      video_frame_provider_client_(nullptr), | 
| +      current_frame_used_by_compositor_(false), | 
| +      last_render_length_(base::TimeDelta::FromSecondsD(1.0 / 60.0)), | 
| +      total_frame_count_(0), | 
| +      dropped_frame_count_(0), | 
| +      stopped_(true) { | 
| +  if (algorithm_enabled) { | 
| +    base::AutoLock auto_lock(current_frame_lock_); | 
| +    rendering_frame_buffer_.reset(new media::VideoRendererAlgorithm( | 
| +        base::Bind(&WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks, | 
| +                   base::Unretained(this)))); | 
| +  } | 
| + | 
| +  serial_ = algorithm_enabled ? 1 : 0; | 
| +} | 
| + | 
| WebMediaPlayerMSCompositor::~WebMediaPlayerMSCompositor() { | 
| DCHECK(compositor_task_runner_->BelongsToCurrentThread()); | 
| if (video_frame_provider_client_) | 
|  |