|  | diff --git a/cc/BUILD.gn b/cc/BUILD.gn | 
|  | index 1100151..44896c1 100644 | 
|  | --- a/cc/BUILD.gn | 
|  | +++ b/cc/BUILD.gn | 
|  | @@ -214,13 +214,6 @@ component("cc") { | 
|  | "layers/ui_resource_layer.h", | 
|  | "layers/ui_resource_layer_impl.cc", | 
|  | "layers/ui_resource_layer_impl.h", | 
|  | -    "layers/video_frame_provider.h", | 
|  | -    "layers/video_frame_provider_client_impl.cc", | 
|  | -    "layers/video_frame_provider_client_impl.h", | 
|  | -    "layers/video_layer.cc", | 
|  | -    "layers/video_layer.h", | 
|  | -    "layers/video_layer_impl.cc", | 
|  | -    "layers/video_layer_impl.h", | 
|  | "output/begin_frame_args.cc", | 
|  | "output/begin_frame_args.h", | 
|  | "output/bsp_tree.cc", | 
|  | @@ -464,8 +457,6 @@ component("cc") { | 
|  | "resources/ui_resource_client.h", | 
|  | "resources/ui_resource_request.cc", | 
|  | "resources/ui_resource_request.h", | 
|  | -    "resources/video_resource_updater.cc", | 
|  | -    "resources/video_resource_updater.h", | 
|  | "resources/zero_copy_tile_task_worker_pool.cc", | 
|  | "resources/zero_copy_tile_task_worker_pool.h", | 
|  | "scheduler/begin_frame_source.cc", | 
|  | @@ -607,8 +598,6 @@ source_set("test_support") { | 
|  | "test/fake_tile_manager_client.h", | 
|  | "test/fake_ui_resource_layer_tree_host_impl.cc", | 
|  | "test/fake_ui_resource_layer_tree_host_impl.h", | 
|  | -    "test/fake_video_frame_provider.cc", | 
|  | -    "test/fake_video_frame_provider.h", | 
|  | "test/failure_output_surface.cc", | 
|  | "test/failure_output_surface.h", | 
|  | "test/geometry_test_utils.cc", | 
|  | @@ -764,7 +753,6 @@ test("cc_unittests") { | 
|  | "layers/tiled_layer_unittest.cc", | 
|  | "layers/ui_resource_layer_impl_unittest.cc", | 
|  | "layers/ui_resource_layer_unittest.cc", | 
|  | -    "layers/video_layer_impl_unittest.cc", | 
|  | "output/begin_frame_args_unittest.cc", | 
|  | "output/delegating_renderer_unittest.cc", | 
|  | "output/filter_operations_unittest.cc", | 
|  | @@ -796,7 +784,6 @@ test("cc_unittests") { | 
|  | "resources/texture_uploader_unittest.cc", | 
|  | "resources/tile_manager_unittest.cc", | 
|  | "resources/tile_priority_unittest.cc", | 
|  | -    "resources/video_resource_updater_unittest.cc", | 
|  | "scheduler/begin_frame_source_unittest.cc", | 
|  | "scheduler/delay_based_time_source_unittest.cc", | 
|  | "scheduler/scheduler_state_machine_unittest.cc", | 
|  | @@ -825,7 +812,6 @@ test("cc_unittests") { | 
|  | "trees/layer_tree_host_unittest_picture.cc", | 
|  | "trees/layer_tree_host_unittest_proxy.cc", | 
|  | "trees/layer_tree_host_unittest_scroll.cc", | 
|  | -    "trees/layer_tree_host_unittest_video.cc", | 
|  | "trees/layer_tree_impl_unittest.cc", | 
|  | "trees/occlusion_tracker_unittest.cc", | 
|  | "trees/occlusion_unittest.cc", | 
|  | diff --git a/cc/layers/video_frame_provider.h b/cc/layers/video_frame_provider.h | 
|  | deleted file mode 100644 | 
|  | index 784d951..0000000 | 
|  | --- a/cc/layers/video_frame_provider.h | 
|  | +++ /dev/null | 
|  | @@ -1,63 +0,0 @@ | 
|  | -// Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | -// Use of this source code is governed by a BSD-style license that can be | 
|  | -// found in the LICENSE file. | 
|  | - | 
|  | -#ifndef CC_LAYERS_VIDEO_FRAME_PROVIDER_H_ | 
|  | -#define CC_LAYERS_VIDEO_FRAME_PROVIDER_H_ | 
|  | - | 
|  | -#include "base/memory/ref_counted.h" | 
|  | - | 
|  | -namespace media { | 
|  | -class VideoFrame; | 
|  | -} | 
|  | - | 
|  | -namespace cc { | 
|  | - | 
|  | -// Threading notes: This class may be used in a multi threaded manner. | 
|  | -// Specifically, the implementation may call GetCurrentFrame() or | 
|  | -// PutCurrentFrame() from the compositor thread. If so, the caller is | 
|  | -// responsible for making sure Client::DidReceiveFrame() and | 
|  | -// Client::DidUpdateMatrix() are only called from this same thread. | 
|  | -class VideoFrameProvider { | 
|  | - public: | 
|  | -  virtual ~VideoFrameProvider() {} | 
|  | - | 
|  | -  class Client { | 
|  | -   public: | 
|  | -    // Provider will call this method to tell the client to stop using it. | 
|  | -    // StopUsingProvider() may be called from any thread. The client should | 
|  | -    // block until it has PutCurrentFrame() any outstanding frames. | 
|  | -    virtual void StopUsingProvider() = 0; | 
|  | - | 
|  | -    // Notifies the provider's client that a call to GetCurrentFrame() will | 
|  | -    // return new data. | 
|  | -    virtual void DidReceiveFrame() = 0; | 
|  | - | 
|  | -    // Notifies the provider's client of a new UV transform matrix to be used. | 
|  | -    virtual void DidUpdateMatrix(const float* matrix) = 0; | 
|  | - | 
|  | -   protected: | 
|  | -    virtual ~Client() {} | 
|  | -  }; | 
|  | - | 
|  | -  // May be called from any thread, but there must be some external guarantee | 
|  | -  // that the provider is not destroyed before this call returns. | 
|  | -  virtual void SetVideoFrameProviderClient(Client* client) = 0; | 
|  | - | 
|  | -  // This function places a lock on the current frame and returns a pointer to | 
|  | -  // it. Calls to this method should always be followed with a call to | 
|  | -  // PutCurrentFrame(). | 
|  | -  // Only the current provider client should call this function. | 
|  | -  virtual scoped_refptr<media::VideoFrame> GetCurrentFrame() = 0; | 
|  | - | 
|  | -  // This function releases the lock on the video frame. It should always be | 
|  | -  // called after GetCurrentFrame(). Frames passed into this method | 
|  | -  // should no longer be referenced after the call is made. Only the current | 
|  | -  // provider client should call this function. | 
|  | -  virtual void PutCurrentFrame( | 
|  | -      const scoped_refptr<media::VideoFrame>& frame) = 0; | 
|  | -}; | 
|  | - | 
|  | -}  // namespace cc | 
|  | - | 
|  | -#endif  // CC_LAYERS_VIDEO_FRAME_PROVIDER_H_ | 
|  | diff --git a/cc/layers/video_frame_provider_client_impl.cc b/cc/layers/video_frame_provider_client_impl.cc | 
|  | deleted file mode 100644 | 
|  | index 50333c1..0000000 | 
|  | --- a/cc/layers/video_frame_provider_client_impl.cc | 
|  | +++ /dev/null | 
|  | @@ -1,95 +0,0 @@ | 
|  | -// Copyright 2013 The Chromium Authors. All rights reserved. | 
|  | -// Use of this source code is governed by a BSD-style license that can be | 
|  | -// found in the LICENSE file. | 
|  | - | 
|  | -#include "cc/layers/video_frame_provider_client_impl.h" | 
|  | - | 
|  | -#include "base/debug/trace_event.h" | 
|  | -#include "cc/base/math_util.h" | 
|  | -#include "cc/layers/video_layer_impl.h" | 
|  | -#include "media/base/video_frame.h" | 
|  | - | 
|  | -namespace cc { | 
|  | - | 
|  | -// static | 
|  | -scoped_refptr<VideoFrameProviderClientImpl> | 
|  | -    VideoFrameProviderClientImpl::Create( | 
|  | -        VideoFrameProvider* provider) { | 
|  | -  return make_scoped_refptr( | 
|  | -      new VideoFrameProviderClientImpl(provider)); | 
|  | -} | 
|  | - | 
|  | -VideoFrameProviderClientImpl::~VideoFrameProviderClientImpl() {} | 
|  | - | 
|  | -VideoFrameProviderClientImpl::VideoFrameProviderClientImpl( | 
|  | -    VideoFrameProvider* provider) | 
|  | -    : active_video_layer_(nullptr), provider_(provider) { | 
|  | -  // This only happens during a commit on the compositor thread while the main | 
|  | -  // thread is blocked. That makes this a thread-safe call to set the video | 
|  | -  // frame provider client that does not require a lock. The same is true of | 
|  | -  // the call to Stop(). | 
|  | -  provider_->SetVideoFrameProviderClient(this); | 
|  | - | 
|  | -  // This matrix is the default transformation for stream textures, and flips | 
|  | -  // on the Y axis. | 
|  | -  stream_texture_matrix_ = gfx::Transform( | 
|  | -      1.0, 0.0, 0.0, 0.0, | 
|  | -      0.0, -1.0, 0.0, 1.0, | 
|  | -      0.0, 0.0, 1.0, 0.0, | 
|  | -      0.0, 0.0, 0.0, 1.0); | 
|  | -} | 
|  | - | 
|  | -void VideoFrameProviderClientImpl::Stop() { | 
|  | -  if (!provider_) | 
|  | -    return; | 
|  | -  provider_->SetVideoFrameProviderClient(nullptr); | 
|  | -  provider_ = nullptr; | 
|  | -} | 
|  | - | 
|  | -scoped_refptr<media::VideoFrame> | 
|  | -VideoFrameProviderClientImpl::AcquireLockAndCurrentFrame() { | 
|  | -  provider_lock_.Acquire();  // Balanced by call to ReleaseLock(). | 
|  | -  if (!provider_) | 
|  | -    return nullptr; | 
|  | - | 
|  | -  return provider_->GetCurrentFrame(); | 
|  | -} | 
|  | - | 
|  | -void VideoFrameProviderClientImpl::PutCurrentFrame( | 
|  | -    const scoped_refptr<media::VideoFrame>& frame) { | 
|  | -  provider_lock_.AssertAcquired(); | 
|  | -  provider_->PutCurrentFrame(frame); | 
|  | -} | 
|  | - | 
|  | -void VideoFrameProviderClientImpl::ReleaseLock() { | 
|  | -  provider_lock_.AssertAcquired(); | 
|  | -  provider_lock_.Release(); | 
|  | -} | 
|  | - | 
|  | -void VideoFrameProviderClientImpl::StopUsingProvider() { | 
|  | -  // Block the provider from shutting down until this client is done | 
|  | -  // using the frame. | 
|  | -  base::AutoLock locker(provider_lock_); | 
|  | -  provider_ = nullptr; | 
|  | -} | 
|  | - | 
|  | -void VideoFrameProviderClientImpl::DidReceiveFrame() { | 
|  | -  TRACE_EVENT1("cc", | 
|  | -               "VideoFrameProviderClientImpl::DidReceiveFrame", | 
|  | -               "active_video_layer", | 
|  | -               !!active_video_layer_); | 
|  | -  if (active_video_layer_) | 
|  | -    active_video_layer_->SetNeedsRedraw(); | 
|  | -} | 
|  | - | 
|  | -void VideoFrameProviderClientImpl::DidUpdateMatrix(const float* matrix) { | 
|  | -  stream_texture_matrix_ = gfx::Transform( | 
|  | -      matrix[0], matrix[4], matrix[8], matrix[12], | 
|  | -      matrix[1], matrix[5], matrix[9], matrix[13], | 
|  | -      matrix[2], matrix[6], matrix[10], matrix[14], | 
|  | -      matrix[3], matrix[7], matrix[11], matrix[15]); | 
|  | -  if (active_video_layer_) | 
|  | -    active_video_layer_->SetNeedsRedraw(); | 
|  | -} | 
|  | - | 
|  | -}  // namespace cc | 
|  | diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc | 
|  | index 9c856e8..e40a4fc 100644 | 
|  | --- a/cc/output/gl_renderer.cc | 
|  | +++ b/cc/output/gl_renderer.cc | 
|  | @@ -13,7 +13,6 @@ | 
|  | #include "base/debug/trace_event.h" | 
|  | #include "base/logging.h" | 
|  | #include "cc/base/math_util.h" | 
|  | -#include "cc/layers/video_layer_impl.h" | 
|  | #include "cc/output/compositor_frame.h" | 
|  | #include "cc/output/compositor_frame_metadata.h" | 
|  | #include "cc/output/context_provider.h" | 
|  | diff --git a/cc/output/renderer_pixeltest.cc b/cc/output/renderer_pixeltest.cc | 
|  | index 08a4053..c7582fe 100644 | 
|  | --- a/cc/output/renderer_pixeltest.cc | 
|  | +++ b/cc/output/renderer_pixeltest.cc | 
|  | @@ -12,7 +12,6 @@ | 
|  | #include "cc/test/fake_picture_pile_impl.h" | 
|  | #include "cc/test/pixel_test.h" | 
|  | #include "gpu/command_buffer/client/gles2_interface.h" | 
|  | -#include "media/base/video_frame.h" | 
|  | #include "third_party/skia/include/core/SkColorPriv.h" | 
|  | #include "third_party/skia/include/core/SkImageFilter.h" | 
|  | #include "third_party/skia/include/core/SkMatrix.h" | 
|  | @@ -386,346 +385,6 @@ TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithBackground) { | 
|  | FuzzyPixelOffByOneComparator(true))); | 
|  | } | 
|  |  | 
|  | -class VideoGLRendererPixelTest : public GLRendererPixelTest { | 
|  | - protected: | 
|  | -  void CreateTestYUVVideoDrawQuad_Striped(const SharedQuadState* shared_state, | 
|  | -                                          media::VideoFrame::Format format, | 
|  | -                                          bool is_transparent, | 
|  | -                                          const gfx::RectF& tex_coord_rect, | 
|  | -                                          RenderPass* render_pass) { | 
|  | -    const gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -    scoped_refptr<media::VideoFrame> video_frame = | 
|  | -        media::VideoFrame::CreateFrame( | 
|  | -            format, rect.size(), rect, rect.size(), base::TimeDelta()); | 
|  | - | 
|  | -    // YUV values representing a striped pattern, for validating texture | 
|  | -    // coordinates for sampling. | 
|  | -    uint8_t y_value = 0; | 
|  | -    uint8_t u_value = 0; | 
|  | -    uint8_t v_value = 0; | 
|  | -    for (int i = 0; i < video_frame->rows(media::VideoFrame::kYPlane); ++i) { | 
|  | -      uint8_t* y_row = video_frame->data(media::VideoFrame::kYPlane) + | 
|  | -                       video_frame->stride(media::VideoFrame::kYPlane) * i; | 
|  | -      for (int j = 0; j < video_frame->row_bytes(media::VideoFrame::kYPlane); | 
|  | -           ++j) { | 
|  | -        y_row[j] = (y_value += 1); | 
|  | -      } | 
|  | -    } | 
|  | -    for (int i = 0; i < video_frame->rows(media::VideoFrame::kUPlane); ++i) { | 
|  | -      uint8_t* u_row = video_frame->data(media::VideoFrame::kUPlane) + | 
|  | -                       video_frame->stride(media::VideoFrame::kUPlane) * i; | 
|  | -      uint8_t* v_row = video_frame->data(media::VideoFrame::kVPlane) + | 
|  | -                       video_frame->stride(media::VideoFrame::kVPlane) * i; | 
|  | -      for (int j = 0; j < video_frame->row_bytes(media::VideoFrame::kUPlane); | 
|  | -           ++j) { | 
|  | -        u_row[j] = (u_value += 3); | 
|  | -        v_row[j] = (v_value += 5); | 
|  | -      } | 
|  | -    } | 
|  | -    CreateTestYUVVideoDrawQuad_FromVideoFrame( | 
|  | -        shared_state, video_frame, is_transparent, tex_coord_rect, render_pass); | 
|  | -  } | 
|  | - | 
|  | -  void CreateTestYUVVideoDrawQuad_Solid(const SharedQuadState* shared_state, | 
|  | -                                        media::VideoFrame::Format format, | 
|  | -                                        bool is_transparent, | 
|  | -                                        const gfx::RectF& tex_coord_rect, | 
|  | -                                        uint8 y, | 
|  | -                                        uint8 u, | 
|  | -                                        uint8 v, | 
|  | -                                        RenderPass* render_pass) { | 
|  | -    const gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -    scoped_refptr<media::VideoFrame> video_frame = | 
|  | -        media::VideoFrame::CreateFrame( | 
|  | -            format, rect.size(), rect, rect.size(), base::TimeDelta()); | 
|  | - | 
|  | -    // YUV values of a solid, constant, color. Useful for testing that color | 
|  | -    // space/color range are being handled properly. | 
|  | -    memset(video_frame->data(media::VideoFrame::kYPlane), | 
|  | -           y, | 
|  | -           video_frame->stride(media::VideoFrame::kYPlane) * | 
|  | -               video_frame->rows(media::VideoFrame::kYPlane)); | 
|  | -    memset(video_frame->data(media::VideoFrame::kUPlane), | 
|  | -           u, | 
|  | -           video_frame->stride(media::VideoFrame::kUPlane) * | 
|  | -               video_frame->rows(media::VideoFrame::kUPlane)); | 
|  | -    memset(video_frame->data(media::VideoFrame::kVPlane), | 
|  | -           v, | 
|  | -           video_frame->stride(media::VideoFrame::kVPlane) * | 
|  | -               video_frame->rows(media::VideoFrame::kVPlane)); | 
|  | - | 
|  | -    CreateTestYUVVideoDrawQuad_FromVideoFrame( | 
|  | -        shared_state, video_frame, is_transparent, tex_coord_rect, render_pass); | 
|  | -  } | 
|  | - | 
|  | -  void CreateTestYUVVideoDrawQuad_FromVideoFrame( | 
|  | -      const SharedQuadState* shared_state, | 
|  | -      scoped_refptr<media::VideoFrame> video_frame, | 
|  | -      bool is_transparent, | 
|  | -      const gfx::RectF& tex_coord_rect, | 
|  | -      RenderPass* render_pass) { | 
|  | -    const bool with_alpha = (video_frame->format() == media::VideoFrame::YV12A); | 
|  | -    const YUVVideoDrawQuad::ColorSpace color_space = | 
|  | -        (video_frame->format() == media::VideoFrame::YV12J | 
|  | -             ? YUVVideoDrawQuad::REC_601_JPEG | 
|  | -             : YUVVideoDrawQuad::REC_601); | 
|  | -    const gfx::Rect rect(this->device_viewport_size_); | 
|  | -    const gfx::Rect opaque_rect(0, 0, 0, 0); | 
|  | - | 
|  | -    if (with_alpha) | 
|  | -      memset(video_frame->data(media::VideoFrame::kAPlane), | 
|  | -             is_transparent ? 0 : 128, | 
|  | -             video_frame->stride(media::VideoFrame::kAPlane) * | 
|  | -                 video_frame->rows(media::VideoFrame::kAPlane)); | 
|  | - | 
|  | -    VideoFrameExternalResources resources = | 
|  | -        video_resource_updater_->CreateExternalResourcesFromVideoFrame( | 
|  | -            video_frame); | 
|  | - | 
|  | -    EXPECT_EQ(VideoFrameExternalResources::YUV_RESOURCE, resources.type); | 
|  | -    EXPECT_EQ(media::VideoFrame::NumPlanes(video_frame->format()), | 
|  | -              resources.mailboxes.size()); | 
|  | -    EXPECT_EQ(media::VideoFrame::NumPlanes(video_frame->format()), | 
|  | -              resources.release_callbacks.size()); | 
|  | - | 
|  | -    ResourceProvider::ResourceId y_resource = | 
|  | -        resource_provider_->CreateResourceFromTextureMailbox( | 
|  | -            resources.mailboxes[media::VideoFrame::kYPlane], | 
|  | -            SingleReleaseCallbackImpl::Create( | 
|  | -                resources.release_callbacks[media::VideoFrame::kYPlane])); | 
|  | -    ResourceProvider::ResourceId u_resource = | 
|  | -        resource_provider_->CreateResourceFromTextureMailbox( | 
|  | -            resources.mailboxes[media::VideoFrame::kUPlane], | 
|  | -            SingleReleaseCallbackImpl::Create( | 
|  | -                resources.release_callbacks[media::VideoFrame::kUPlane])); | 
|  | -    ResourceProvider::ResourceId v_resource = | 
|  | -        resource_provider_->CreateResourceFromTextureMailbox( | 
|  | -            resources.mailboxes[media::VideoFrame::kVPlane], | 
|  | -            SingleReleaseCallbackImpl::Create( | 
|  | -                resources.release_callbacks[media::VideoFrame::kVPlane])); | 
|  | -    ResourceProvider::ResourceId a_resource = 0; | 
|  | -    if (with_alpha) { | 
|  | -      a_resource = resource_provider_->CreateResourceFromTextureMailbox( | 
|  | -          resources.mailboxes[media::VideoFrame::kAPlane], | 
|  | -          SingleReleaseCallbackImpl::Create( | 
|  | -              resources.release_callbacks[media::VideoFrame::kAPlane])); | 
|  | -    } | 
|  | - | 
|  | -    YUVVideoDrawQuad* yuv_quad = | 
|  | -        render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>(); | 
|  | -    yuv_quad->SetNew(shared_state, | 
|  | -                     rect, | 
|  | -                     opaque_rect, | 
|  | -                     rect, | 
|  | -                     tex_coord_rect, | 
|  | -                     y_resource, | 
|  | -                     u_resource, | 
|  | -                     v_resource, | 
|  | -                     a_resource, | 
|  | -                     color_space); | 
|  | -  } | 
|  | - | 
|  | -  void SetUp() override { | 
|  | -    GLRendererPixelTest::SetUp(); | 
|  | -    video_resource_updater_.reset(new VideoResourceUpdater( | 
|  | -        output_surface_->context_provider(), resource_provider_.get())); | 
|  | -  } | 
|  | - | 
|  | - private: | 
|  | -  scoped_ptr<VideoResourceUpdater> video_resource_updater_; | 
|  | -}; | 
|  | - | 
|  | -TEST_F(VideoGLRendererPixelTest, SimpleYUVRect) { | 
|  | -  gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -  RenderPassId id(1, 1); | 
|  | -  scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | 
|  | - | 
|  | -  SharedQuadState* shared_state = | 
|  | -      CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 
|  | - | 
|  | -  CreateTestYUVVideoDrawQuad_Striped(shared_state, | 
|  | -                                     media::VideoFrame::YV12, | 
|  | -                                     false, | 
|  | -                                     gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), | 
|  | -                                     pass.get()); | 
|  | - | 
|  | -  RenderPassList pass_list; | 
|  | -  pass_list.push_back(pass.Pass()); | 
|  | - | 
|  | -  EXPECT_TRUE( | 
|  | -      this->RunPixelTest(&pass_list, | 
|  | -                         base::FilePath(FILE_PATH_LITERAL("yuv_stripes.png")), | 
|  | -                         FuzzyPixelOffByOneComparator(true))); | 
|  | -} | 
|  | - | 
|  | -TEST_F(VideoGLRendererPixelTest, OffsetYUVRect) { | 
|  | -  gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -  RenderPassId id(1, 1); | 
|  | -  scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | 
|  | - | 
|  | -  SharedQuadState* shared_state = | 
|  | -      CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 
|  | - | 
|  | -  // Intentionally sets frame format to I420 for testing coverage. | 
|  | -  CreateTestYUVVideoDrawQuad_Striped(shared_state, | 
|  | -                                     media::VideoFrame::I420, | 
|  | -                                     false, | 
|  | -                                     gfx::RectF(0.125f, 0.25f, 0.75f, 0.5f), | 
|  | -                                     pass.get()); | 
|  | - | 
|  | -  RenderPassList pass_list; | 
|  | -  pass_list.push_back(pass.Pass()); | 
|  | - | 
|  | -  EXPECT_TRUE(this->RunPixelTest( | 
|  | -      &pass_list, | 
|  | -      base::FilePath(FILE_PATH_LITERAL("yuv_stripes_offset.png")), | 
|  | -      FuzzyPixelOffByOneComparator(true))); | 
|  | -} | 
|  | - | 
|  | -TEST_F(VideoGLRendererPixelTest, SimpleYUVRectBlack) { | 
|  | -  gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -  RenderPassId id(1, 1); | 
|  | -  scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | 
|  | - | 
|  | -  SharedQuadState* shared_state = | 
|  | -      CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 
|  | - | 
|  | -  // In MPEG color range YUV values of (15,128,128) should produce black. | 
|  | -  CreateTestYUVVideoDrawQuad_Solid(shared_state, | 
|  | -                                   media::VideoFrame::YV12, | 
|  | -                                   false, | 
|  | -                                   gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), | 
|  | -                                   15, | 
|  | -                                   128, | 
|  | -                                   128, | 
|  | -                                   pass.get()); | 
|  | - | 
|  | -  RenderPassList pass_list; | 
|  | -  pass_list.push_back(pass.Pass()); | 
|  | - | 
|  | -  // If we didn't get black out of the YUV values above, then we probably have a | 
|  | -  // color range issue. | 
|  | -  EXPECT_TRUE(this->RunPixelTest(&pass_list, | 
|  | -                                 base::FilePath(FILE_PATH_LITERAL("black.png")), | 
|  | -                                 FuzzyPixelOffByOneComparator(true))); | 
|  | -} | 
|  | - | 
|  | -TEST_F(VideoGLRendererPixelTest, SimpleYUVJRect) { | 
|  | -  gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -  RenderPassId id(1, 1); | 
|  | -  scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | 
|  | - | 
|  | -  SharedQuadState* shared_state = | 
|  | -      CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 
|  | - | 
|  | -  // YUV of (149,43,21) should be green (0,255,0) in RGB. | 
|  | -  CreateTestYUVVideoDrawQuad_Solid(shared_state, | 
|  | -                                   media::VideoFrame::YV12J, | 
|  | -                                   false, | 
|  | -                                   gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), | 
|  | -                                   149, | 
|  | -                                   43, | 
|  | -                                   21, | 
|  | -                                   pass.get()); | 
|  | - | 
|  | -  RenderPassList pass_list; | 
|  | -  pass_list.push_back(pass.Pass()); | 
|  | - | 
|  | -  EXPECT_TRUE(this->RunPixelTest(&pass_list, | 
|  | -                                 base::FilePath(FILE_PATH_LITERAL("green.png")), | 
|  | -                                 FuzzyPixelOffByOneComparator(true))); | 
|  | -} | 
|  | - | 
|  | -TEST_F(VideoGLRendererPixelTest, SimpleYUVJRectGrey) { | 
|  | -  gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -  RenderPassId id(1, 1); | 
|  | -  scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | 
|  | - | 
|  | -  SharedQuadState* shared_state = | 
|  | -      CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 
|  | - | 
|  | -  // Dark grey in JPEG color range (in MPEG, this is black). | 
|  | -  CreateTestYUVVideoDrawQuad_Solid(shared_state, | 
|  | -                                   media::VideoFrame::YV12J, | 
|  | -                                   false, | 
|  | -                                   gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), | 
|  | -                                   15, | 
|  | -                                   128, | 
|  | -                                   128, | 
|  | -                                   pass.get()); | 
|  | - | 
|  | -  RenderPassList pass_list; | 
|  | -  pass_list.push_back(pass.Pass()); | 
|  | - | 
|  | -  EXPECT_TRUE( | 
|  | -      this->RunPixelTest(&pass_list, | 
|  | -                         base::FilePath(FILE_PATH_LITERAL("dark_grey.png")), | 
|  | -                         FuzzyPixelOffByOneComparator(true))); | 
|  | -} | 
|  | - | 
|  | -TEST_F(VideoGLRendererPixelTest, SimpleYUVARect) { | 
|  | -  gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -  RenderPassId id(1, 1); | 
|  | -  scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | 
|  | - | 
|  | -  SharedQuadState* shared_state = | 
|  | -      CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 
|  | - | 
|  | -  CreateTestYUVVideoDrawQuad_Striped(shared_state, | 
|  | -                                     media::VideoFrame::YV12A, | 
|  | -                                     false, | 
|  | -                                     gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), | 
|  | -                                     pass.get()); | 
|  | - | 
|  | -  SolidColorDrawQuad* color_quad = | 
|  | -      pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 
|  | -  color_quad->SetNew(shared_state, rect, rect, SK_ColorWHITE, false); | 
|  | - | 
|  | -  RenderPassList pass_list; | 
|  | -  pass_list.push_back(pass.Pass()); | 
|  | - | 
|  | -  EXPECT_TRUE(this->RunPixelTest( | 
|  | -      &pass_list, | 
|  | -      base::FilePath(FILE_PATH_LITERAL("yuv_stripes_alpha.png")), | 
|  | -      FuzzyPixelOffByOneComparator(true))); | 
|  | -} | 
|  | - | 
|  | -TEST_F(VideoGLRendererPixelTest, FullyTransparentYUVARect) { | 
|  | -  gfx::Rect rect(this->device_viewport_size_); | 
|  | - | 
|  | -  RenderPassId id(1, 1); | 
|  | -  scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | 
|  | - | 
|  | -  SharedQuadState* shared_state = | 
|  | -      CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 
|  | - | 
|  | -  CreateTestYUVVideoDrawQuad_Striped(shared_state, | 
|  | -                                     media::VideoFrame::YV12A, | 
|  | -                                     true, | 
|  | -                                     gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), | 
|  | -                                     pass.get()); | 
|  | - | 
|  | -  SolidColorDrawQuad* color_quad = | 
|  | -      pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 
|  | -  color_quad->SetNew(shared_state, rect, rect, SK_ColorBLACK, false); | 
|  | - | 
|  | -  RenderPassList pass_list; | 
|  | -  pass_list.push_back(pass.Pass()); | 
|  | - | 
|  | -  EXPECT_TRUE(this->RunPixelTest( | 
|  | -      &pass_list, | 
|  | -      base::FilePath(FILE_PATH_LITERAL("black.png")), | 
|  | -      ExactPixelComparator(true))); | 
|  | -} | 
|  | - | 
|  | TYPED_TEST(RendererPixelTest, FastPassColorFilterAlpha) { | 
|  | gfx::Rect viewport_rect(this->device_viewport_size_); | 
|  |  | 
|  | diff --git a/cc/quads/yuv_video_draw_quad.h b/cc/quads/yuv_video_draw_quad.h | 
|  | index e1c5410..edda34a 100644 | 
|  | --- a/cc/quads/yuv_video_draw_quad.h | 
|  | +++ b/cc/quads/yuv_video_draw_quad.h | 
|  | @@ -8,7 +8,6 @@ | 
|  | #include "base/basictypes.h" | 
|  | #include "base/memory/scoped_ptr.h" | 
|  | #include "cc/base/cc_export.h" | 
|  | -#include "cc/layers/video_layer_impl.h" | 
|  | #include "cc/quads/draw_quad.h" | 
|  |  | 
|  | namespace cc { | 
|  | diff --git a/cc/resources/drawing_display_item.cc b/cc/resources/drawing_display_item.cc | 
|  | index f8d3c62..eb05e33 100644 | 
|  | --- a/cc/resources/drawing_display_item.cc | 
|  | +++ b/cc/resources/drawing_display_item.cc | 
|  | @@ -4,6 +4,7 @@ | 
|  |  | 
|  | #include "cc/resources/drawing_display_item.h" | 
|  |  | 
|  | +#include "base/logging.h" | 
|  | #include "third_party/skia/include/core/SkCanvas.h" | 
|  | #include "third_party/skia/include/core/SkDrawPictureCallback.h" | 
|  | #include "third_party/skia/include/core/SkMatrix.h" | 
|  | diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc | 
|  | index fb2fdb6..6c46d8f 100644 | 
|  | --- a/cc/trees/layer_tree_host_impl_unittest.cc | 
|  | +++ b/cc/trees/layer_tree_host_impl_unittest.cc | 
|  | @@ -27,7 +27,6 @@ | 
|  | #include "cc/layers/solid_color_scrollbar_layer_impl.h" | 
|  | #include "cc/layers/texture_layer_impl.h" | 
|  | #include "cc/layers/tiled_layer_impl.h" | 
|  | -#include "cc/layers/video_layer_impl.h" | 
|  | #include "cc/output/begin_frame_args.h" | 
|  | #include "cc/output/compositor_frame_ack.h" | 
|  | #include "cc/output/compositor_frame_metadata.h" | 
|  | @@ -47,7 +46,6 @@ | 
|  | #include "cc/test/fake_picture_layer_impl.h" | 
|  | #include "cc/test/fake_picture_pile_impl.h" | 
|  | #include "cc/test/fake_proxy.h" | 
|  | -#include "cc/test/fake_video_frame_provider.h" | 
|  | #include "cc/test/geometry_test_utils.h" | 
|  | #include "cc/test/layer_test_common.h" | 
|  | #include "cc/test/layer_tree_test.h" | 
|  | @@ -57,7 +55,6 @@ | 
|  | #include "cc/test/test_web_graphics_context_3d.h" | 
|  | #include "cc/trees/layer_tree_impl.h" | 
|  | #include "cc/trees/single_thread_proxy.h" | 
|  | -#include "media/base/media.h" | 
|  | #include "testing/gmock/include/gmock/gmock.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  | #include "third_party/skia/include/core/SkMallocPixelRef.h" | 
|  | @@ -71,7 +68,6 @@ using ::testing::Return; | 
|  | using ::testing::AnyNumber; | 
|  | using ::testing::AtLeast; | 
|  | using ::testing::_; | 
|  | -using media::VideoFrame; | 
|  |  | 
|  | namespace cc { | 
|  | namespace { | 
|  | @@ -95,7 +91,6 @@ class LayerTreeHostImplTest : public testing::Test, | 
|  | reduce_memory_result_(true), | 
|  | current_limit_bytes_(0), | 
|  | current_priority_cutoff_value_(0) { | 
|  | -    media::InitializeMediaLibraryForTesting(); | 
|  | } | 
|  |  | 
|  | LayerTreeSettings DefaultSettings() { | 
|  | @@ -5314,18 +5309,6 @@ TEST_F(LayerTreeHostImplTest, LayersFreeTextures) { | 
|  | root_layer->SetBounds(gfx::Size(10, 10)); | 
|  | root_layer->SetHasRenderSurface(true); | 
|  |  | 
|  | -  scoped_refptr<VideoFrame> softwareFrame = | 
|  | -      media::VideoFrame::CreateColorFrame( | 
|  | -          gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta()); | 
|  | -  FakeVideoFrameProvider provider; | 
|  | -  provider.set_frame(softwareFrame); | 
|  | -  scoped_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( | 
|  | -      host_impl_->active_tree(), 4, &provider, media::VIDEO_ROTATION_0); | 
|  | -  video_layer->SetBounds(gfx::Size(10, 10)); | 
|  | -  video_layer->SetContentBounds(gfx::Size(10, 10)); | 
|  | -  video_layer->SetDrawsContent(true); | 
|  | -  root_layer->AddChild(video_layer.Pass()); | 
|  | - | 
|  | scoped_ptr<IOSurfaceLayerImpl> io_surface_layer = | 
|  | IOSurfaceLayerImpl::Create(host_impl_->active_tree(), 5); | 
|  | io_surface_layer->SetBounds(gfx::Size(10, 10)); | 
|  | @@ -6405,16 +6388,6 @@ TEST_F(LayerTreeHostImplTest, | 
|  | scoped_ptr<SolidColorLayerImpl> root_layer = | 
|  | SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 
|  |  | 
|  | -  // VideoLayerImpl will not be drawn. | 
|  | -  FakeVideoFrameProvider provider; | 
|  | -  scoped_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( | 
|  | -      host_impl_->active_tree(), 2, &provider, media::VIDEO_ROTATION_0); | 
|  | -  video_layer->SetBounds(gfx::Size(10, 10)); | 
|  | -  video_layer->SetContentBounds(gfx::Size(10, 10)); | 
|  | -  video_layer->SetDrawsContent(true); | 
|  | -  root_layer->AddChild(video_layer.Pass()); | 
|  | -  SetupRootLayerImpl(root_layer.Pass()); | 
|  | - | 
|  | LayerTreeHostImpl::FrameData frame; | 
|  | EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 
|  | host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 
|  | diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc | 
|  | index 50ace9b..69e5272 100644 | 
|  | --- a/cc/trees/layer_tree_host_unittest.cc | 
|  | +++ b/cc/trees/layer_tree_host_unittest.cc | 
|  | @@ -18,7 +18,6 @@ | 
|  | #include "cc/layers/painted_scrollbar_layer.h" | 
|  | #include "cc/layers/picture_layer.h" | 
|  | #include "cc/layers/solid_color_layer.h" | 
|  | -#include "cc/layers/video_layer.h" | 
|  | #include "cc/output/begin_frame_args.h" | 
|  | #include "cc/output/compositor_frame_ack.h" | 
|  | #include "cc/output/copy_output_request.h" | 
|  | @@ -41,7 +40,6 @@ | 
|  | #include "cc/test/fake_picture_pile.h" | 
|  | #include "cc/test/fake_proxy.h" | 
|  | #include "cc/test/fake_scoped_ui_resource.h" | 
|  | -#include "cc/test/fake_video_frame_provider.h" | 
|  | #include "cc/test/geometry_test_utils.h" | 
|  | #include "cc/test/layer_tree_test.h" | 
|  | #include "cc/test/test_shared_bitmap_manager.h" | 
|  | @@ -4192,28 +4190,6 @@ class LayerInvalidateCausesDraw : public LayerTreeHostTest { | 
|  | int num_draws_; | 
|  | }; | 
|  |  | 
|  | -// VideoLayer must support being invalidated and then passing that along | 
|  | -// to the compositor thread, even though no resources are updated in | 
|  | -// response to that invalidation. | 
|  | -class LayerTreeHostTestVideoLayerInvalidate : public LayerInvalidateCausesDraw { | 
|  | - public: | 
|  | -  void SetupTree() override { | 
|  | -    LayerTreeHostTest::SetupTree(); | 
|  | -    scoped_refptr<VideoLayer> video_layer = | 
|  | -        VideoLayer::Create(&provider_, media::VIDEO_ROTATION_0); | 
|  | -    video_layer->SetBounds(gfx::Size(10, 10)); | 
|  | -    video_layer->SetIsDrawable(true); | 
|  | -    layer_tree_host()->root_layer()->AddChild(video_layer); | 
|  | - | 
|  | -    invalidate_layer_ = video_layer; | 
|  | -  } | 
|  | - | 
|  | - private: | 
|  | -  FakeVideoFrameProvider provider_; | 
|  | -}; | 
|  | - | 
|  | -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestVideoLayerInvalidate); | 
|  | - | 
|  | // IOSurfaceLayer must support being invalidated and then passing that along | 
|  | // to the compositor thread, even though no resources are updated in | 
|  | // response to that invalidation. | 
|  | diff --git a/cc/trees/layer_tree_host_unittest_context.cc b/cc/trees/layer_tree_host_unittest_context.cc | 
|  | index 24ffcd4..cc4f28f 100644 | 
|  | --- a/cc/trees/layer_tree_host_unittest_context.cc | 
|  | +++ b/cc/trees/layer_tree_host_unittest_context.cc | 
|  | @@ -15,8 +15,6 @@ | 
|  | #include "cc/layers/picture_layer.h" | 
|  | #include "cc/layers/texture_layer.h" | 
|  | #include "cc/layers/texture_layer_impl.h" | 
|  | -#include "cc/layers/video_layer.h" | 
|  | -#include "cc/layers/video_layer_impl.h" | 
|  | #include "cc/output/filter_operations.h" | 
|  | #include "cc/resources/single_release_callback.h" | 
|  | #include "cc/test/failure_output_surface.h" | 
|  | @@ -33,7 +31,6 @@ | 
|  | #include "cc/test/fake_picture_layer_impl.h" | 
|  | #include "cc/test/fake_scoped_ui_resource.h" | 
|  | #include "cc/test/fake_scrollbar.h" | 
|  | -#include "cc/test/fake_video_frame_provider.h" | 
|  | #include "cc/test/layer_tree_test.h" | 
|  | #include "cc/test/render_pass_test_common.h" | 
|  | #include "cc/test/test_context_provider.h" | 
|  | @@ -43,9 +40,6 @@ | 
|  | #include "cc/trees/layer_tree_impl.h" | 
|  | #include "cc/trees/single_thread_proxy.h" | 
|  | #include "gpu/GLES2/gl2extchromium.h" | 
|  | -#include "media/base/media.h" | 
|  | - | 
|  | -using media::VideoFrame; | 
|  |  | 
|  | namespace cc { | 
|  | namespace { | 
|  | @@ -66,7 +60,6 @@ class LayerTreeHostContextTest : public LayerTreeTest { | 
|  | context_should_support_io_surface_(false), | 
|  | fallback_context_works_(false), | 
|  | async_output_surface_creation_(false) { | 
|  | -    media::InitializeMediaLibraryForTesting(); | 
|  | } | 
|  |  | 
|  | void LoseContext() { | 
|  | @@ -1041,49 +1034,6 @@ class LayerTreeHostContextTestDontUseLostResources | 
|  | layer_with_mask->SetMaskLayer(mask.get()); | 
|  | root->AddChild(layer_with_mask); | 
|  |  | 
|  | -    scoped_refptr<VideoLayer> video_color = | 
|  | -        VideoLayer::Create(&color_frame_provider_, media::VIDEO_ROTATION_0); | 
|  | -    video_color->SetBounds(gfx::Size(10, 10)); | 
|  | -    video_color->SetIsDrawable(true); | 
|  | -    root->AddChild(video_color); | 
|  | - | 
|  | -    scoped_refptr<VideoLayer> video_hw = | 
|  | -        VideoLayer::Create(&hw_frame_provider_, media::VIDEO_ROTATION_0); | 
|  | -    video_hw->SetBounds(gfx::Size(10, 10)); | 
|  | -    video_hw->SetIsDrawable(true); | 
|  | -    root->AddChild(video_hw); | 
|  | - | 
|  | -    scoped_refptr<VideoLayer> video_scaled_hw = | 
|  | -        VideoLayer::Create(&scaled_hw_frame_provider_, media::VIDEO_ROTATION_0); | 
|  | -    video_scaled_hw->SetBounds(gfx::Size(10, 10)); | 
|  | -    video_scaled_hw->SetIsDrawable(true); | 
|  | -    root->AddChild(video_scaled_hw); | 
|  | - | 
|  | -    color_video_frame_ = VideoFrame::CreateColorFrame( | 
|  | -        gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta()); | 
|  | -    hw_video_frame_ = | 
|  | -        VideoFrame::WrapNativeTexture(make_scoped_ptr(new gpu::MailboxHolder( | 
|  | -                                          mailbox, GL_TEXTURE_2D, sync_point)), | 
|  | -                                      media::VideoFrame::ReleaseMailboxCB(), | 
|  | -                                      gfx::Size(4, 4), | 
|  | -                                      gfx::Rect(0, 0, 4, 4), | 
|  | -                                      gfx::Size(4, 4), | 
|  | -                                      base::TimeDelta(), | 
|  | -                                      VideoFrame::ReadPixelsCB()); | 
|  | -    scaled_hw_video_frame_ = | 
|  | -        VideoFrame::WrapNativeTexture(make_scoped_ptr(new gpu::MailboxHolder( | 
|  | -                                          mailbox, GL_TEXTURE_2D, sync_point)), | 
|  | -                                      media::VideoFrame::ReleaseMailboxCB(), | 
|  | -                                      gfx::Size(4, 4), | 
|  | -                                      gfx::Rect(0, 0, 3, 2), | 
|  | -                                      gfx::Size(4, 4), | 
|  | -                                      base::TimeDelta(), | 
|  | -                                      VideoFrame::ReadPixelsCB()); | 
|  | - | 
|  | -    color_frame_provider_.set_frame(color_video_frame_); | 
|  | -    hw_frame_provider_.set_frame(hw_video_frame_); | 
|  | -    scaled_hw_frame_provider_.set_frame(scaled_hw_video_frame_); | 
|  | - | 
|  | if (!delegating_renderer()) { | 
|  | // TODO(danakj): IOSurface layer can not be transported. crbug.com/239335 | 
|  | scoped_refptr<IOSurfaceLayer> io_surface = IOSurfaceLayer::Create(); | 
|  | @@ -1113,14 +1063,6 @@ class LayerTreeHostContextTestDontUseLostResources | 
|  |  | 
|  | void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { | 
|  | LayerTreeHostContextTest::CommitCompleteOnThread(host_impl); | 
|  | - | 
|  | -    if (host_impl->active_tree()->source_frame_number() == 3) { | 
|  | -      // On the third commit we're recovering from context loss. Hardware | 
|  | -      // video frames should not be reused by the VideoFrameProvider, but | 
|  | -      // software frames can be. | 
|  | -      hw_frame_provider_.set_frame(NULL); | 
|  | -      scaled_hw_frame_provider_.set_frame(NULL); | 
|  | -    } | 
|  | } | 
|  |  | 
|  | DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 
|  | @@ -1169,14 +1111,6 @@ class LayerTreeHostContextTestDontUseLostResources | 
|  | scoped_refptr<DelegatedFrameResourceCollection> | 
|  | delegated_resource_collection_; | 
|  | scoped_refptr<DelegatedFrameProvider> delegated_frame_provider_; | 
|  | - | 
|  | -  scoped_refptr<VideoFrame> color_video_frame_; | 
|  | -  scoped_refptr<VideoFrame> hw_video_frame_; | 
|  | -  scoped_refptr<VideoFrame> scaled_hw_video_frame_; | 
|  | - | 
|  | -  FakeVideoFrameProvider color_frame_provider_; | 
|  | -  FakeVideoFrameProvider hw_frame_provider_; | 
|  | -  FakeVideoFrameProvider scaled_hw_frame_provider_; | 
|  | }; | 
|  |  | 
|  | SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostContextTestDontUseLostResources); |