summaryrefslogtreecommitdiff
path: root/chromium/content/renderer/android
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/android')
-rw-r--r--chromium/content/renderer/android/synchronous_layer_tree_frame_sink_impl.cc (renamed from chromium/content/renderer/android/synchronous_layer_tree_frame_sink.cc)81
-rw-r--r--chromium/content/renderer/android/synchronous_layer_tree_frame_sink_impl.h (renamed from chromium/content/renderer/android/synchronous_layer_tree_frame_sink.h)70
2 files changed, 66 insertions, 85 deletions
diff --git a/chromium/content/renderer/android/synchronous_layer_tree_frame_sink.cc b/chromium/content/renderer/android/synchronous_layer_tree_frame_sink_impl.cc
index d002a87ab24..e8d7c94e41e 100644
--- a/chromium/content/renderer/android/synchronous_layer_tree_frame_sink.cc
+++ b/chromium/content/renderer/android/synchronous_layer_tree_frame_sink_impl.cc
@@ -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 "content/renderer/android/synchronous_layer_tree_frame_sink.h"
+#include "content/renderer/android/synchronous_layer_tree_frame_sink_impl.h"
#include <vector>
@@ -100,7 +100,7 @@ class SoftwareCompositorFrameSinkClient
} // namespace
-class SynchronousLayerTreeFrameSink::SoftwareOutputSurface
+class SynchronousLayerTreeFrameSinkImpl::SoftwareOutputSurface
: public viz::OutputSurface {
public:
SoftwareOutputSurface(std::unique_ptr<SoftwareDevice> software_device)
@@ -137,20 +137,19 @@ class SynchronousLayerTreeFrameSink::SoftwareOutputSurface
gpu::MemoryTracker* GetMemoryTracker() override { return nullptr; }
};
-base::TimeDelta SynchronousLayerTreeFrameSink::StubDisplayClient::
+base::TimeDelta SynchronousLayerTreeFrameSinkImpl::StubDisplayClient::
GetPreferredFrameIntervalForFrameSinkId(
const viz::FrameSinkId& id,
viz::mojom::CompositorFrameSinkType* type) {
return viz::BeginFrameArgs::MinInterval();
}
-SynchronousLayerTreeFrameSink::SynchronousLayerTreeFrameSink(
+SynchronousLayerTreeFrameSinkImpl::SynchronousLayerTreeFrameSinkImpl(
scoped_refptr<viz::ContextProvider> context_provider,
scoped_refptr<viz::RasterContextProvider> worker_context_provider,
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
IPC::Sender* sender,
- int routing_id,
uint32_t layer_tree_frame_sink_id,
std::unique_ptr<viz::BeginFrameSource> synthetic_begin_frame_source,
SynchronousCompositorRegistry* registry,
@@ -159,11 +158,10 @@ SynchronousLayerTreeFrameSink::SynchronousLayerTreeFrameSink(
compositor_frame_sink_remote,
mojo::PendingReceiver<viz::mojom::CompositorFrameSinkClient>
client_receiver)
- : cc::LayerTreeFrameSink(std::move(context_provider),
- std::move(worker_context_provider),
- std::move(compositor_task_runner),
- gpu_memory_buffer_manager),
- routing_id_(routing_id),
+ : SynchronousLayerTreeFrameSink(std::move(context_provider),
+ std::move(worker_context_provider),
+ std::move(compositor_task_runner),
+ gpu_memory_buffer_manager),
layer_tree_frame_sink_id_(layer_tree_frame_sink_id),
registry_(registry),
sender_(sender),
@@ -181,14 +179,15 @@ SynchronousLayerTreeFrameSink::SynchronousLayerTreeFrameSink(
gpu::MemoryAllocation::CUTOFF_ALLOW_NICE_TO_HAVE;
}
-SynchronousLayerTreeFrameSink::~SynchronousLayerTreeFrameSink() = default;
+SynchronousLayerTreeFrameSinkImpl::~SynchronousLayerTreeFrameSinkImpl() =
+ default;
-void SynchronousLayerTreeFrameSink::SetSyncClient(
+void SynchronousLayerTreeFrameSinkImpl::SetSyncClient(
SynchronousLayerTreeFrameSinkClient* compositor) {
sync_client_ = compositor;
}
-bool SynchronousLayerTreeFrameSink::BindToClient(
+bool SynchronousLayerTreeFrameSinkImpl::BindToClient(
cc::LayerTreeFrameSinkClient* sink_client) {
DCHECK(CalledOnValidThread());
if (!cc::LayerTreeFrameSink::BindToClient(sink_client))
@@ -216,9 +215,9 @@ bool SynchronousLayerTreeFrameSink::BindToClient(
client_->SetMemoryPolicy(memory_policy_);
client_->SetTreeActivationCallback(base::BindRepeating(
- &SynchronousLayerTreeFrameSink::DidActivatePendingTree,
+ &SynchronousLayerTreeFrameSinkImpl::DidActivatePendingTree,
base::Unretained(this)));
- registry_->RegisterLayerTreeFrameSink(routing_id_, this);
+ registry_->RegisterLayerTreeFrameSink(this);
software_frame_sink_client_ =
std::make_unique<SoftwareCompositorFrameSinkClient>();
@@ -256,7 +255,7 @@ bool SynchronousLayerTreeFrameSink::BindToClient(
return true;
}
-void SynchronousLayerTreeFrameSink::DetachFromClient() {
+void SynchronousLayerTreeFrameSinkImpl::DetachFromClient() {
DCHECK(CalledOnValidThread());
client_->SetBeginFrameSource(nullptr);
// Destroy the begin frame source on the same thread it was bound on.
@@ -264,7 +263,7 @@ void SynchronousLayerTreeFrameSink::DetachFromClient() {
external_begin_frame_source_ = nullptr;
if (sync_client_)
sync_client_->SinkDestroyed();
- registry_->UnregisterLayerTreeFrameSink(routing_id_, this);
+ registry_->UnregisterLayerTreeFrameSink(this);
client_->SetTreeActivationCallback(base::RepeatingClosure());
root_support_.reset();
child_support_.reset();
@@ -279,13 +278,13 @@ void SynchronousLayerTreeFrameSink::DetachFromClient() {
cc::LayerTreeFrameSink::DetachFromClient();
}
-void SynchronousLayerTreeFrameSink::SetLocalSurfaceId(
+void SynchronousLayerTreeFrameSinkImpl::SetLocalSurfaceId(
const viz::LocalSurfaceId& local_surface_id) {
DCHECK(CalledOnValidThread());
local_surface_id_ = local_surface_id;
}
-void SynchronousLayerTreeFrameSink::SubmitCompositorFrame(
+void SynchronousLayerTreeFrameSinkImpl::SubmitCompositorFrame(
viz::CompositorFrame frame,
bool hit_test_data_changed,
bool show_hit_test_borders) {
@@ -419,14 +418,14 @@ void SynchronousLayerTreeFrameSink::SubmitCompositorFrame(
did_submit_frame_ = true;
}
-void SynchronousLayerTreeFrameSink::DidNotProduceFrame(
+void SynchronousLayerTreeFrameSinkImpl::DidNotProduceFrame(
const viz::BeginFrameAck& ack) {
// We do not call CompositorFrameSink::DidNotProduceFrame here because
// submission of frame depends on DemandDraw calls. DidNotProduceFrame will be
// called there or during OnBeginFrame as fallback.
}
-void SynchronousLayerTreeFrameSink::DidAllocateSharedBitmap(
+void SynchronousLayerTreeFrameSinkImpl::DidAllocateSharedBitmap(
base::ReadOnlySharedMemoryRegion region,
const viz::SharedBitmapId& id) {
// Webview does not use software compositing (other than resourceless draws,
@@ -434,20 +433,20 @@ void SynchronousLayerTreeFrameSink::DidAllocateSharedBitmap(
NOTREACHED();
}
-void SynchronousLayerTreeFrameSink::DidDeleteSharedBitmap(
+void SynchronousLayerTreeFrameSinkImpl::DidDeleteSharedBitmap(
const viz::SharedBitmapId& id) {
// Webview does not use software compositing (other than resourceless draws,
// but this is called for software /resources/).
NOTREACHED();
}
-void SynchronousLayerTreeFrameSink::Invalidate(bool needs_draw) {
+void SynchronousLayerTreeFrameSinkImpl::Invalidate(bool needs_draw) {
DCHECK(CalledOnValidThread());
if (sync_client_)
sync_client_->Invalidate(needs_draw);
}
-void SynchronousLayerTreeFrameSink::DemandDrawHw(
+void SynchronousLayerTreeFrameSinkImpl::DemandDrawHw(
const gfx::Size& viewport_size,
const gfx::Rect& viewport_rect_for_tile_priority,
const gfx::Transform& transform_for_tile_priority) {
@@ -460,7 +459,7 @@ void SynchronousLayerTreeFrameSink::DemandDrawHw(
InvokeComposite(gfx::Transform(), gfx::Rect(viewport_size));
}
-void SynchronousLayerTreeFrameSink::DemandDrawSw(SkCanvas* canvas) {
+void SynchronousLayerTreeFrameSinkImpl::DemandDrawSw(SkCanvas* canvas) {
DCHECK(CalledOnValidThread());
DCHECK(canvas);
DCHECK(!current_sw_canvas_);
@@ -481,12 +480,12 @@ void SynchronousLayerTreeFrameSink::DemandDrawSw(SkCanvas* canvas) {
InvokeComposite(transform, viewport);
}
-void SynchronousLayerTreeFrameSink::WillSkipDraw() {
+void SynchronousLayerTreeFrameSinkImpl::WillSkipDraw() {
client_->OnDraw(gfx::Transform(), gfx::Rect(), in_software_draw_,
true /*skip_draw*/);
}
-void SynchronousLayerTreeFrameSink::InvokeComposite(
+void SynchronousLayerTreeFrameSinkImpl::InvokeComposite(
const gfx::Transform& transform,
const gfx::Rect& viewport) {
did_submit_frame_ = false;
@@ -508,7 +507,7 @@ void SynchronousLayerTreeFrameSink::InvokeComposite(
}
}
-void SynchronousLayerTreeFrameSink::ReclaimResources(
+void SynchronousLayerTreeFrameSinkImpl::ReclaimResources(
uint32_t layer_tree_frame_sink_id,
const std::vector<viz::ReturnedResource>& resources) {
// Ignore message if it's a stale one coming from a different output surface
@@ -518,7 +517,7 @@ void SynchronousLayerTreeFrameSink::ReclaimResources(
client_->ReclaimResources(resources);
}
-void SynchronousLayerTreeFrameSink::SetMemoryPolicy(size_t bytes_limit) {
+void SynchronousLayerTreeFrameSinkImpl::SetMemoryPolicy(size_t bytes_limit) {
DCHECK(CalledOnValidThread());
bool became_zero = memory_policy_.bytes_limit_when_visible && !bytes_limit;
bool became_non_zero =
@@ -540,14 +539,14 @@ void SynchronousLayerTreeFrameSink::SetMemoryPolicy(size_t bytes_limit) {
}
}
-void SynchronousLayerTreeFrameSink::DidActivatePendingTree() {
+void SynchronousLayerTreeFrameSinkImpl::DidActivatePendingTree() {
DCHECK(CalledOnValidThread());
if (sync_client_)
sync_client_->DidActivatePendingTree();
DeliverMessages();
}
-void SynchronousLayerTreeFrameSink::DeliverMessages() {
+void SynchronousLayerTreeFrameSinkImpl::DeliverMessages() {
std::vector<std::unique_ptr<IPC::Message>> messages;
std::unique_ptr<FrameSwapMessageQueue::SendMessageScope> send_message_scope =
frame_swap_message_queue_->AcquireSendMessageScope();
@@ -557,16 +556,16 @@ void SynchronousLayerTreeFrameSink::DeliverMessages() {
}
}
-bool SynchronousLayerTreeFrameSink::Send(IPC::Message* message) {
+bool SynchronousLayerTreeFrameSinkImpl::Send(IPC::Message* message) {
DCHECK(CalledOnValidThread());
return sender_->Send(message);
}
-bool SynchronousLayerTreeFrameSink::CalledOnValidThread() const {
+bool SynchronousLayerTreeFrameSinkImpl::CalledOnValidThread() const {
return thread_checker_.CalledOnValidThread();
}
-void SynchronousLayerTreeFrameSink::DidReceiveCompositorFrameAck(
+void SynchronousLayerTreeFrameSinkImpl::DidReceiveCompositorFrameAck(
const std::vector<viz::ReturnedResource>& resources) {
DCHECK(CalledOnValidThread());
DCHECK(viz_frame_submission_enabled_);
@@ -576,7 +575,7 @@ void SynchronousLayerTreeFrameSink::DidReceiveCompositorFrameAck(
// (or not happen at all) for WebView.
}
-void SynchronousLayerTreeFrameSink::OnBeginFrame(
+void SynchronousLayerTreeFrameSinkImpl::OnBeginFrame(
const viz::BeginFrameArgs& args,
const viz::FrameTimingDetailsMap& timing_details) {
DCHECK(viz_frame_submission_enabled_);
@@ -592,18 +591,18 @@ void SynchronousLayerTreeFrameSink::OnBeginFrame(
}
}
-void SynchronousLayerTreeFrameSink::ReclaimResources(
+void SynchronousLayerTreeFrameSinkImpl::ReclaimResources(
const std::vector<viz::ReturnedResource>& resources) {
DCHECK(CalledOnValidThread());
DCHECK(viz_frame_submission_enabled_);
client_->ReclaimResources(resources);
}
-void SynchronousLayerTreeFrameSink::OnBeginFramePausedChanged(bool paused) {
+void SynchronousLayerTreeFrameSinkImpl::OnBeginFramePausedChanged(bool paused) {
DCHECK(viz_frame_submission_enabled_);
}
-void SynchronousLayerTreeFrameSink::OnNeedsBeginFrames(
+void SynchronousLayerTreeFrameSinkImpl::OnNeedsBeginFrames(
bool needs_begin_frames) {
needs_begin_frames_ = needs_begin_frames;
if (sync_client_) {
@@ -611,7 +610,7 @@ void SynchronousLayerTreeFrameSink::OnNeedsBeginFrames(
}
}
-void SynchronousLayerTreeFrameSink::DidPresentCompositorFrame(
+void SynchronousLayerTreeFrameSinkImpl::DidPresentCompositorFrame(
const viz::FrameTimingDetailsMap& timing_details) {
DCHECK(!viz_frame_submission_enabled_ || timing_details.empty());
@@ -621,13 +620,13 @@ void SynchronousLayerTreeFrameSink::DidPresentCompositorFrame(
client_->DidPresentCompositorFrame(pair.first, pair.second);
}
-void SynchronousLayerTreeFrameSink::BeginFrame(
+void SynchronousLayerTreeFrameSinkImpl::BeginFrame(
const viz::BeginFrameArgs& args) {
if (external_begin_frame_source_)
external_begin_frame_source_->OnBeginFrame(args);
}
-void SynchronousLayerTreeFrameSink::SetBeginFrameSourcePaused(bool paused) {
+void SynchronousLayerTreeFrameSinkImpl::SetBeginFrameSourcePaused(bool paused) {
if (external_begin_frame_source_)
external_begin_frame_source_->OnSetBeginFrameSourcePaused(paused);
}
diff --git a/chromium/content/renderer/android/synchronous_layer_tree_frame_sink.h b/chromium/content/renderer/android/synchronous_layer_tree_frame_sink_impl.h
index 8e2a2c39220..9a2aa507669 100644
--- a/chromium/content/renderer/android/synchronous_layer_tree_frame_sink.h
+++ b/chromium/content/renderer/android/synchronous_layer_tree_frame_sink_impl.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_RENDERER_ANDROID_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_H_
-#define CONTENT_RENDERER_ANDROID_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_H_
+#ifndef CONTENT_RENDERER_ANDROID_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_IMPL_H_
+#define CONTENT_RENDERER_ANDROID_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_IMPL_H_
#include <stddef.h>
@@ -26,6 +26,7 @@
#include "components/viz/common/surfaces/parent_local_surface_id_allocator.h"
#include "components/viz/service/display/display_client.h"
#include "components/viz/service/display_embedder/server_shared_bitmap_manager.h"
+#include "content/renderer/input/synchronous_layer_tree_frame_sink.h"
#include "ipc/ipc_message.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
@@ -54,21 +55,6 @@ namespace content {
class FrameSwapMessageQueue;
class SynchronousCompositorRegistry;
-class SynchronousLayerTreeFrameSinkClient {
- public:
- virtual void DidActivatePendingTree() = 0;
- virtual void Invalidate(bool needs_draw) = 0;
- virtual void SubmitCompositorFrame(
- uint32_t layer_tree_frame_sink_id,
- base::Optional<viz::CompositorFrame> frame,
- base::Optional<viz::HitTestRegionList> hit_test_region_list) = 0;
- virtual void SetNeedsBeginFrames(bool needs_begin_frames) = 0;
- virtual void SinkDestroyed() = 0;
-
- protected:
- virtual ~SynchronousLayerTreeFrameSinkClient() {}
-};
-
// Specialization of the output surface that adapts it to implement the
// content::SynchronousCompositor public API. This class effects an "inversion
// of control" - enabling drawing to be orchestrated by the embedding
@@ -77,18 +63,17 @@ class SynchronousLayerTreeFrameSinkClient {
// |delegate_|) which represent the consumers of the two roles in plays.
// This class can be created only on the main thread, but then becomes pinned
// to a fixed thread when BindToClient is called.
-class SynchronousLayerTreeFrameSink
- : public cc::LayerTreeFrameSink,
+class SynchronousLayerTreeFrameSinkImpl
+ : public SynchronousLayerTreeFrameSink,
public viz::mojom::CompositorFrameSinkClient,
public viz::ExternalBeginFrameSourceClient {
public:
- SynchronousLayerTreeFrameSink(
+ SynchronousLayerTreeFrameSinkImpl(
scoped_refptr<viz::ContextProvider> context_provider,
scoped_refptr<viz::RasterContextProvider> worker_context_provider,
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
IPC::Sender* sender,
- int routing_id,
uint32_t layer_tree_frame_sink_id,
std::unique_ptr<viz::BeginFrameSource> begin_frame_source,
SynchronousCompositorRegistry* registry,
@@ -97,9 +82,7 @@ class SynchronousLayerTreeFrameSink
compositor_frame_sink_remote,
mojo::PendingReceiver<viz::mojom::CompositorFrameSinkClient>
client_receiver);
- ~SynchronousLayerTreeFrameSink() override;
-
- void SetSyncClient(SynchronousLayerTreeFrameSinkClient* compositor);
+ ~SynchronousLayerTreeFrameSinkImpl() override;
// cc::LayerTreeFrameSink implementation.
bool BindToClient(cc::LayerTreeFrameSinkClient* sink_client) override;
@@ -114,13 +97,6 @@ class SynchronousLayerTreeFrameSink
void DidDeleteSharedBitmap(const viz::SharedBitmapId& id) override;
void Invalidate(bool needs_draw) override;
- // Partial SynchronousCompositor API implementation.
- void DemandDrawHw(const gfx::Size& viewport_size,
- const gfx::Rect& viewport_rect_for_tile_priority,
- const gfx::Transform& transform_for_tile_priority);
- void DemandDrawSw(SkCanvas* canvas);
- void WillSkipDraw();
-
// viz::mojom::CompositorFrameSinkClient implementation.
void DidReceiveCompositorFrameAck(
const std::vector<viz::ReturnedResource>& resources) override;
@@ -133,13 +109,21 @@ class SynchronousLayerTreeFrameSink
// viz::ExternalBeginFrameSourceClient overrides.
void OnNeedsBeginFrames(bool needs_begin_frames) override;
+ // SynchronousLayerTreeFrameSink overrides.
+ void SetSyncClient(SynchronousLayerTreeFrameSinkClient* compositor) override;
void DidPresentCompositorFrame(
- const viz::FrameTimingDetailsMap& timing_details);
- void BeginFrame(const viz::BeginFrameArgs& args);
- void SetBeginFrameSourcePaused(bool paused);
- void SetMemoryPolicy(size_t bytes_limit);
- void ReclaimResources(uint32_t layer_tree_frame_sink_id,
- const std::vector<viz::ReturnedResource>& resources);
+ const viz::FrameTimingDetailsMap& timing_details) override;
+ void BeginFrame(const viz::BeginFrameArgs& args) override;
+ void SetBeginFrameSourcePaused(bool paused) override;
+ void SetMemoryPolicy(size_t bytes_limit) override;
+ void ReclaimResources(
+ uint32_t layer_tree_frame_sink_id,
+ const std::vector<viz::ReturnedResource>& resources) override;
+ void DemandDrawHw(const gfx::Size& viewport_size,
+ const gfx::Rect& viewport_rect_for_tile_priority,
+ const gfx::Transform& transform_for_tile_priority) override;
+ void DemandDrawSw(SkCanvas* canvas) override;
+ void WillSkipDraw() override;
private:
class SoftwareOutputSurface;
@@ -151,11 +135,9 @@ class SynchronousLayerTreeFrameSink
void DeliverMessages();
bool CalledOnValidThread() const;
-
- const int routing_id_;
const uint32_t layer_tree_frame_sink_id_;
- SynchronousCompositorRegistry* const registry_; // Not owned.
- IPC::Sender* const sender_; // Not owned.
+ SynchronousCompositorRegistry* const registry_; // Not owned.
+ IPC::Sender* const sender_; // Not owned.
// Not owned.
SynchronousLayerTreeFrameSinkClient* sync_client_ = nullptr;
@@ -165,7 +147,7 @@ class SynchronousLayerTreeFrameSink
// process so there is no reason for it to use a SharedBitmapManager.
viz::ServerSharedBitmapManager shared_bitmap_manager_;
- // Only valid (non-NULL) during a DemandDrawSw() call.
+ // Only valid (non-null) during a DemandDrawSw() call.
SkCanvas* current_sw_canvas_ = nullptr;
cc::ManagedMemoryPolicy memory_policy_;
@@ -228,9 +210,9 @@ class SynchronousLayerTreeFrameSink
bool begin_frames_paused_ = false;
bool needs_begin_frames_ = false;
- DISALLOW_COPY_AND_ASSIGN(SynchronousLayerTreeFrameSink);
+ DISALLOW_COPY_AND_ASSIGN(SynchronousLayerTreeFrameSinkImpl);
};
} // namespace content
-#endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_H_
+#endif // CONTENT_RENDERER_ANDROID_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_IMPL_H_