Commit d77322c6 authored by Fernando Serboncini's avatar Fernando Serboncini Committed by Commit Bot

Use Worker.RAF ACK instead of Dispatcher on OffscreenCanvas

Bug: 995235
Change-Id: I88c771e300577eea4cae77fd233e1bd866359b7c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1829485
Commit-Queue: Fernando Serboncini <fserb@chromium.org>
Reviewed-by: default avatarKhushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701187}
parent 2375197a
......@@ -50,7 +50,7 @@ void WorkerAnimationFrameProvider::BeginFrame(const viz::BeginFrameArgs& args) {
"blink", "WorkerAnimationFrameProvider::RequestAnimationFrame",
TRACE_ID_GLOBAL(args.trace_id), TRACE_EVENT_FLAG_FLOW_IN);
{
OffscreenCanvas::ScopedInsideWorkerRAF inside_raf_scope;
OffscreenCanvas::ScopedInsideWorkerRAF inside_raf_scope(args);
for (auto& offscreen_canvas : provider->offscreen_canvases_) {
inside_raf_scope.AddOffscreenCanvas(offscreen_canvas);
}
......
......@@ -183,7 +183,8 @@ class CORE_EXPORT OffscreenCanvas final
STACK_ALLOCATED();
public:
ScopedInsideWorkerRAF() {}
ScopedInsideWorkerRAF(const viz::BeginFrameArgs& args)
: begin_frame_args_(args) {}
void AddOffscreenCanvas(OffscreenCanvas* canvas) {
DCHECK(!canvas->inside_worker_raf_);
......@@ -195,11 +196,15 @@ class CORE_EXPORT OffscreenCanvas final
for (auto canvas : canvases_) {
DCHECK(canvas->inside_worker_raf_);
canvas->inside_worker_raf_ = false;
if (canvas->frame_dispatcher_) {
canvas->frame_dispatcher_->ReplaceBeginFrameAck(begin_frame_args_);
}
canvas->PushFrameIfNeeded();
}
}
private:
const viz::BeginFrameArgs& begin_frame_args_;
HeapVector<Member<OffscreenCanvas>> canvases_;
};
......
......@@ -60,6 +60,9 @@ class PLATFORM_EXPORT CanvasResourceDispatcher
const SkIRect& damage_rect,
bool needs_vertical_flip,
bool is_opaque);
void ReplaceBeginFrameAck(const viz::BeginFrameArgs& args) {
current_begin_frame_ack_ = viz::BeginFrameAck(args, true);
}
void Reshape(const IntSize&);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment