Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(280)

Unified Diff: blimp/client/core/contents/blimp_contents_view_impl.cc

Issue 2459823003: blimp: Use SwapPromises for readback API. (Closed)
Patch Set: comment updated Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: blimp/client/core/contents/blimp_contents_view_impl.cc
diff --git a/blimp/client/core/contents/blimp_contents_view_impl.cc b/blimp/client/core/contents/blimp_contents_view_impl.cc
index f5693145ac7e3b6746348b7b8c0b00471b3db977..f89ffe387f901ef94c14c2092387f422035b9742 100644
--- a/blimp/client/core/contents/blimp_contents_view_impl.cc
+++ b/blimp/client/core/contents/blimp_contents_view_impl.cc
@@ -15,6 +15,16 @@
namespace blimp {
namespace client {
+namespace {
+
+void SendReadbackResult(
+ const BlimpContentsView::ReadbackRequestCallback& callback,
+ std::unique_ptr<cc::CopyOutputResult> result) {
+ callback.Run(result->TakeBitmap());
+}
+
+} // namespace
+
BlimpContentsViewImpl::BlimpContentsViewImpl(
BlimpContentsImpl* blimp_contents,
scoped_refptr<cc::Layer> contents_layer)
@@ -42,24 +52,10 @@ bool BlimpContentsViewImpl::OnTouchEvent(const ui::MotionEvent& motion_event) {
void BlimpContentsViewImpl::CopyFromCompositingSurface(
const ReadbackRequestCallback& callback) {
- blimp_contents_->document_manager()->NotifyWhenDonePendingCommits(
- base::Bind(&BlimpContentsViewImpl::StartReadbackRequest,
- weak_ptr_factory_.GetWeakPtr(), callback));
-}
-
-void BlimpContentsViewImpl::StartReadbackRequest(
- const ReadbackRequestCallback& callback) {
- std::unique_ptr<cc::CopyOutputRequest> request =
+ blimp_contents_->document_manager()->RequestCopyOfCompositorOutput(
cc::CopyOutputRequest::CreateBitmapRequest(
- base::Bind(&BlimpContentsViewImpl::OnReadbackComplete,
- weak_ptr_factory_.GetWeakPtr(), callback));
- contents_layer_->RequestCopyOfOutput(std::move(request));
-}
-
-void BlimpContentsViewImpl::OnReadbackComplete(
- const ReadbackRequestCallback& callback,
- std::unique_ptr<cc::CopyOutputResult> result) {
- callback.Run(result->TakeBitmap());
+ base::Bind(&SendReadbackResult, callback)),
+ true);
}
} // namespace client
« no previous file with comments | « blimp/client/core/compositor/blimp_compositor.cc ('k') | blimp/client/core/render_widget/blimp_document_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698