commit | b9ad27a485e6c86c9a953686821492c6d8549e1e | [log] [tgz] |
---|---|---|
author | Yuri Wiitala <miu@chromium.org> | Wed Sep 06 19:13:50 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Sep 06 19:13:50 2017 |
tree | 945d25a665bdb6e6937b8a8757094851afd731d7 | |
parent | 1ee170b59ffd761aace2526f7112046acdca99c4 [diff] |
Tab Capture in VIZ: CopyOutputRequest/Result API changes. Simplified creation of requests and sending of results to support the effort to move tab/desktop capture into the VIZ component. The high- level philosophy here is for clients to get exactly the result type they ask for, matched to their use case. For example, one-off snapshots need scaled SkBitmaps that are immediately ready for use, while layer animations only need a texture reference to assign to an animated layer. Furthermore, clients should not be burdened with having to deal with ALL of the possible separate storage/access or ownership semantics that are specific to whichever DirectRenderer happened to generate the results. Summary of changes: CopyOutputRequest: 1) Removed pre-C++11-style CreateXYZ() methods in favor of a simple ctor. 2) Removed SendXYZ() methods in favor of a single SendResult() method that works with the new polymorphic CopyOutputResults. 3) Replaced CreateEmptyRequest() with CreateStubForTesting(), since non-test code should never create empty requests. 4) Add ResultFormat enum to allow clients to request exactly what they should get, rather than be burdened with coding for all possible result formats. CopyOutputResult: Common accessor API, but each DirectRenderer impl that executes copy requests can use their own subclass impl(s) to manage their own special result storage/access and ownership semantics and provide auto-format conversions where it makes sense. Updated mojo IDL, struct traits, client code, and unit tests to match the API changes. Bug: 754872, 758057, 644851, 759310 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ia309e261a92e05a475a35732ba6df3497366478d Reviewed-on: https://chromium-review.googlesource.com/637003 Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: David Reveman <reveman@chromium.org> Reviewed-by: ccameron chromium <ccameron@chromium.org> Reviewed-by: Alexandre Elias <aelias@chromium.org> Reviewed-by: Fady Samuel <fsamuel@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Sergey Ulanov <sergeyu@chromium.org> Reviewed-by: enne <enne@chromium.org> Commit-Queue: Yuri Wiitala <miu@chromium.org> Cr-Commit-Position: refs/heads/master@{#500033}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .