Index: third_party/WebKit/Source/platform/graphics/VideoSurfaceLayerBridge.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp b/third_party/WebKit/Source/platform/graphics/VideoSurfaceLayerBridge.cpp |
similarity index 57% |
copy from third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp |
copy to third_party/WebKit/Source/platform/graphics/VideoSurfaceLayerBridge.cpp |
index a19b255b812b2db6f33a8b42b3b98732ada22e00..4a980ecee1067c5ad5f4d3aa8eff0405909e1a6d 100644 |
--- a/third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/VideoSurfaceLayerBridge.cpp |
@@ -1,8 +1,8 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Copyright 2017 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 "platform/graphics/CanvasSurfaceLayerBridge.h" |
+#include "platform/graphics/VideoSurfaceLayerBridge.h" |
#include "cc/layers/layer.h" |
#include "cc/layers/solid_color_layer.h" |
@@ -24,48 +24,13 @@ |
namespace blink { |
-namespace { |
- |
-class OffscreenCanvasSurfaceReferenceFactory |
- : public cc::SequenceSurfaceReferenceFactory { |
- public: |
- OffscreenCanvasSurfaceReferenceFactory( |
- base::WeakPtr<CanvasSurfaceLayerBridge> bridge) |
- : bridge_(bridge) {} |
- |
- private: |
- ~OffscreenCanvasSurfaceReferenceFactory() override = default; |
- |
- // cc::SequenceSurfaceReferenceFactory implementation: |
- void RequireSequence(const cc::SurfaceId& id, |
- const cc::SurfaceSequence& sequence) const override { |
- DCHECK(bridge_); |
- bridge_->RequireCallback(id, sequence); |
- } |
- |
- void SatisfySequence(const cc::SurfaceSequence& sequence) const override { |
- if (bridge_) |
- bridge_->SatisfyCallback(sequence); |
- } |
- |
- base::WeakPtr<CanvasSurfaceLayerBridge> bridge_; |
- |
- DISALLOW_COPY_AND_ASSIGN(OffscreenCanvasSurfaceReferenceFactory); |
-}; |
- |
-} // namespace |
- |
-CanvasSurfaceLayerBridge::CanvasSurfaceLayerBridge( |
- CanvasSurfaceLayerBridgeObserver* observer, |
- WebLayerTreeView* layer_tree_view) |
+VideoSurfaceLayerBridge::VideoSurfaceLayerBridge() |
: weak_factory_(this), |
- observer_(observer), |
binding_(this), |
frame_sink_id_(Platform::Current()->GenerateFrameSinkId()), |
- parent_frame_sink_id_(layer_tree_view ? layer_tree_view->GetFrameSinkId() |
- : cc::FrameSinkId()) { |
+ parent_frame_sink_id_(cc::FrameSinkId()) { |
ref_factory_ = |
- new OffscreenCanvasSurfaceReferenceFactory(weak_factory_.GetWeakPtr()); |
+ new SequenceSurfaceReferenceFactoryImpl(weak_factory_.GetWeakPtr()); |
DCHECK(!service_.is_bound()); |
mojom::blink::OffscreenCanvasProviderPtr provider; |
@@ -79,30 +44,21 @@ CanvasSurfaceLayerBridge::CanvasSurfaceLayerBridge( |
provider->CreateOffscreenCanvasSurface(parent_frame_sink_id_, frame_sink_id_, |
std::move(client), |
mojo::MakeRequest(&service_)); |
+ cc_layer_ = cc::SolidColorLayer::Create(); |
} |
-CanvasSurfaceLayerBridge::~CanvasSurfaceLayerBridge() { |
- observer_ = nullptr; |
- if (web_layer_) { |
- GraphicsLayer::UnregisterContentsLayer(web_layer_.get()); |
- } |
-} |
+VideoSurfaceLayerBridge::~VideoSurfaceLayerBridge() {} |
-void CanvasSurfaceLayerBridge::CreateSolidColorLayer() { |
+void VideoSurfaceLayerBridge::CreateSolidColorLayer() { |
liberato (no reviews please)
2017/06/30 22:27:16
is this used?
CJ
2017/06/30 23:38:14
No. I originally thought it might have something t
|
cc_layer_ = cc::SolidColorLayer::Create(); |
cc_layer_->SetBackgroundColor(SK_ColorTRANSPARENT); |
- web_layer_ = Platform::Current()->CompositorSupport()->CreateLayerFromCCLayer( |
- cc_layer_.get()); |
- GraphicsLayer::RegisterContentsLayer(web_layer_.get()); |
} |
-void CanvasSurfaceLayerBridge::OnSurfaceCreated( |
+void VideoSurfaceLayerBridge::OnSurfaceCreated( |
const cc::SurfaceInfo& surface_info) { |
if (!current_surface_id_.is_valid() && surface_info.is_valid()) { |
// First time a SurfaceId is received |
current_surface_id_ = surface_info.id(); |
- GraphicsLayer::UnregisterContentsLayer(web_layer_.get()); |
- web_layer_->RemoveFromParent(); |
scoped_refptr<cc::SurfaceLayer> surface_layer = |
cc::SurfaceLayer::Create(ref_factory_); |
@@ -111,10 +67,6 @@ void CanvasSurfaceLayerBridge::OnSurfaceCreated( |
surface_layer->SetStretchContentToFillBounds(true); |
cc_layer_ = surface_layer; |
- web_layer_ = |
- Platform::Current()->CompositorSupport()->CreateLayerFromCCLayer( |
- cc_layer_.get()); |
- GraphicsLayer::RegisterContentsLayer(web_layer_.get()); |
} else if (current_surface_id_ != surface_info.id()) { |
// A different SurfaceId is received, prompting change to existing |
// SurfaceLayer |
@@ -125,16 +77,15 @@ void CanvasSurfaceLayerBridge::OnSurfaceCreated( |
surface_layer->SetFallbackSurfaceInfo(surface_info); |
} |
- observer_->OnWebLayerReplaced(); |
cc_layer_->SetBounds(surface_info.size_in_pixels()); |
} |
-void CanvasSurfaceLayerBridge::SatisfyCallback( |
+void VideoSurfaceLayerBridge::SatisfyCallback( |
liberato (no reviews please)
2017/06/30 22:27:16
these look like they could move to the base class.
|
const cc::SurfaceSequence& sequence) { |
service_->Satisfy(sequence); |
} |
-void CanvasSurfaceLayerBridge::RequireCallback( |
+void VideoSurfaceLayerBridge::RequireCallback( |
const cc::SurfaceId& surface_id, |
const cc::SurfaceSequence& sequence) { |
service_->Require(surface_id, sequence); |