Reland "[lensoverlay] Pass bitmap directly to WebUI instead of encoding to JPEG"
This reverts commit 8261abbf56712d2e2812cd4ceaa601f20e16098a.
Reason for revert: Fixed LensOverlay.TextSelection, and believe I fixed
the flakiness for tests using SimulateLeftClickDrag.
Original change's description:
> Revert "[lensoverlay] Pass bitmap directly to WebUI instead of encoding to JPEG"
>
> This reverts commit 71f921cac550fcc4c45855c3830dd1f00bb6ad79.
>
> Reason for revert: Suspicious about causing test failures of
> LensOverlayTest.TextSelection
> LensOverlayControllerSearchBubbleDisabled.PreselectionToastDisappearsOnSelection
> https://ci.chromium.org/ui/p/chromium/builders/ci/Mac11%20Tests/30294/overview
>
> Original change's description:
> > [lensoverlay] Pass bitmap directly to WebUI instead of encoding to JPEG
> >
> > Passing the bitmap directly to the WebUI, helps in a couple ways.
> > 1) It moves the encoding to JPEG into the renderer process, therefore
> > removing it from the critical path on the main thread.
> > 2) Passes the pixels as shared memory to the WebUI.
> > 3) Removes the need for data URIs.
> >
> > With this approach, we saw slight wins on M1 macbooks, and significant
> > wins (25% improvement) in the time it takes to go from capturing the
> > screenshot to rendering it to the user. This approach also sets up
> > an additional win by drawing the bitmap and rendering directly in the
> > JS canvas, which should be a big win, since the bottleneck in this flow
> > is the call to toBlob().
> >
> > This is step 1 of many to come CLs to improve our invocation time. See
> > bug for more details.
> >
> > NO_IFTTT= New line added by git cl format
> >
> > Bug: b:352622136
> > Change-Id: I25573e2600a9ae7a0b1b05133f03d65e6293f7b2
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5770332
> > Reviewed-by: Erik Chen <erikchen@chromium.org>
> > Commit-Queue: Duncan Mercer <mercerd@google.com>
> > Cr-Commit-Position: refs/heads/main@{#1341186}
>
> Bug: b:352622136
> Change-Id: I828b4e351db55f01e92f53ee2affd9ccac60cedb
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5782680
> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Auto-Submit: Yuki Shiino <yukishiino@chromium.org>
> Owners-Override: Yuki Shiino <yukishiino@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/main@{#1341425}
Bug: b:352622136
Change-Id: If1fc6262df29319d536eab20d0f3b1301d9cb2bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5789068
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Commit-Queue: Duncan Mercer <mercerd@google.com>
Cr-Commit-Position: refs/heads/main@{#1342256}
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.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.