diff --git a/shell/common/rasterizer.cc b/shell/common/rasterizer.cc index 9f3317912e5fa..e4d81df17ae8d 100644 --- a/shell/common/rasterizer.cc +++ b/shell/common/rasterizer.cc @@ -16,6 +16,10 @@ namespace shell { +// The rasterizer will tell Skia to purge cached resources that have not been +// used within this interval. +static constexpr std::chrono::milliseconds kSkiaCleanupExpiration(15000); + Rasterizer::Rasterizer(blink::TaskRunners task_runners) : Rasterizer(std::move(task_runners), std::make_unique()) {} @@ -186,6 +190,10 @@ bool Rasterizer::DrawToSurface(flow::LayerTree& layer_tree) { external_view_embedder->SubmitFrame(surface_->GetContext()); } FireNextFrameCallbackIfPresent(); + + if (surface_->GetContext()) + surface_->GetContext()->performDeferredCleanup(kSkiaCleanupExpiration); + return true; }