Index: third_party/WebKit/Source/platform/graphics/SurfaceLayerBridge.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp b/third_party/WebKit/Source/platform/graphics/SurfaceLayerBridge.cpp |
similarity index 79% |
rename from third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp |
rename to third_party/WebKit/Source/platform/graphics/SurfaceLayerBridge.cpp |
index a19b255b812b2db6f33a8b42b3b98732ada22e00..fd87aba73a2a84e7bff76daa39e5bc79d7269325 100644 |
--- a/third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/SurfaceLayerBridge.cpp |
@@ -2,7 +2,7 @@ |
// 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/SurfaceLayerBridge.h" |
#include "cc/layers/layer.h" |
#include "cc/layers/solid_color_layer.h" |
@@ -25,16 +25,14 @@ |
namespace blink { |
namespace { |
- |
-class OffscreenCanvasSurfaceReferenceFactory |
+class SequenceSurfaceReferenceFactoryImpl |
: public cc::SequenceSurfaceReferenceFactory { |
public: |
- OffscreenCanvasSurfaceReferenceFactory( |
- base::WeakPtr<CanvasSurfaceLayerBridge> bridge) |
+ SequenceSurfaceReferenceFactoryImpl(base::WeakPtr<SurfaceLayerBridge> bridge) |
: bridge_(bridge) {} |
private: |
- ~OffscreenCanvasSurfaceReferenceFactory() override = default; |
+ ~SequenceSurfaceReferenceFactoryImpl() override = default; |
// cc::SequenceSurfaceReferenceFactory implementation: |
void RequireSequence(const cc::SurfaceId& id, |
@@ -48,16 +46,14 @@ class OffscreenCanvasSurfaceReferenceFactory |
bridge_->SatisfyCallback(sequence); |
} |
- base::WeakPtr<CanvasSurfaceLayerBridge> bridge_; |
+ base::WeakPtr<SurfaceLayerBridge> bridge_; |
- DISALLOW_COPY_AND_ASSIGN(OffscreenCanvasSurfaceReferenceFactory); |
+ DISALLOW_COPY_AND_ASSIGN(SequenceSurfaceReferenceFactoryImpl); |
}; |
- |
} // namespace |
-CanvasSurfaceLayerBridge::CanvasSurfaceLayerBridge( |
- CanvasSurfaceLayerBridgeObserver* observer, |
- WebLayerTreeView* layer_tree_view) |
+SurfaceLayerBridge::SurfaceLayerBridge(SurfaceLayerBridgeObserver* observer, |
+ WebLayerTreeView* layer_tree_view) |
: weak_factory_(this), |
observer_(observer), |
binding_(this), |
@@ -65,7 +61,7 @@ CanvasSurfaceLayerBridge::CanvasSurfaceLayerBridge( |
parent_frame_sink_id_(layer_tree_view ? layer_tree_view->GetFrameSinkId() |
: cc::FrameSinkId()) { |
ref_factory_ = |
- new OffscreenCanvasSurfaceReferenceFactory(weak_factory_.GetWeakPtr()); |
+ new SequenceSurfaceReferenceFactoryImpl(weak_factory_.GetWeakPtr()); |
DCHECK(!service_.is_bound()); |
mojom::blink::OffscreenCanvasProviderPtr provider; |
@@ -81,23 +77,32 @@ CanvasSurfaceLayerBridge::CanvasSurfaceLayerBridge( |
mojo::MakeRequest(&service_)); |
} |
-CanvasSurfaceLayerBridge::~CanvasSurfaceLayerBridge() { |
+SurfaceLayerBridge::~SurfaceLayerBridge() { |
observer_ = nullptr; |
if (web_layer_) { |
GraphicsLayer::UnregisterContentsLayer(web_layer_.get()); |
} |
} |
-void CanvasSurfaceLayerBridge::CreateSolidColorLayer() { |
+void SurfaceLayerBridge::SatisfyCallback(const cc::SurfaceSequence& sequence) { |
+ service_->Satisfy(sequence); |
+} |
+ |
+void SurfaceLayerBridge::RequireCallback(const cc::SurfaceId& surface_id, |
+ const cc::SurfaceSequence& sequence) { |
+ service_->Require(surface_id, sequence); |
+} |
+ |
+void SurfaceLayerBridge::CreateSolidColorLayer() { |
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( |
- const cc::SurfaceInfo& surface_info) { |
+void SurfaceLayerBridge::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(); |
@@ -125,19 +130,9 @@ void CanvasSurfaceLayerBridge::OnSurfaceCreated( |
surface_layer->SetFallbackSurfaceInfo(surface_info); |
} |
- observer_->OnWebLayerReplaced(); |
+ if (observer_) |
+ observer_->OnWebLayerReplaced(); |
cc_layer_->SetBounds(surface_info.size_in_pixels()); |
} |
-void CanvasSurfaceLayerBridge::SatisfyCallback( |
- const cc::SurfaceSequence& sequence) { |
- service_->Satisfy(sequence); |
-} |
- |
-void CanvasSurfaceLayerBridge::RequireCallback( |
- const cc::SurfaceId& surface_id, |
- const cc::SurfaceSequence& sequence) { |
- service_->Require(surface_id, sequence); |
-} |
- |
} // namespace blink |