New issue
Advanced search Search tips

Issue 676282 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Support jpeg format for screenshots through devtools

Project Member Reported by eseckler@chromium.org, Dec 21 2016

Issue description

We're currently only supporting png in Page.CaptureScreenshot - headless clients are asking for jpeg :)
 
Cc: dgozman@chromium.org skyos...@chromium.org
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b6438b1ca6462f3cc014cd1bf18410957101a119

commit b6438b1ca6462f3cc014cd1bf18410957101a119
Author: eseckler <eseckler@chromium.org>
Date: Tue Jan 24 15:18:55 2017

[devtools] Support different encodings for Page.CaptureScreenshot.

This adds support for jpeg encoding of screenshots, similar to that for
screencasts. For this purpose, the patch modifies ui::Grab*Snapshot*
methods to return a gfx::Image instead of a png. Utility methods can
then encode the gfx::Image to jpeg/png depending on its
platform-specific backing representation.

BUG= 676282 

Review-Url: https://codereview.chromium.org/2592983002
Cr-Commit-Position: refs/heads/master@{#445730}

[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/chrome/browser/android/feedback/screenshot_task.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/chrome/browser/chromeos/login/screenshot_testing/screenshot_tester.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/chrome/browser/chromeos/login/screenshot_testing/screenshot_tester.h
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.h
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/content/browser/devtools/protocol/page_handler.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/content/browser/devtools/protocol/page_handler.h
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/testing/buildbot/chromium.linux.json
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/testing/buildbot/chromium.mac.json
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/testing/buildbot/gn_isolate_map.pyl
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/third_party/WebKit/Source/core/inspector/browser_protocol.json
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/gfx/BUILD.gn
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/gfx/image/image_util.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/gfx/image/image_util.h
[add] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/gfx/image/image_util_mac.mm
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/BUILD.gn
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/screenshot_grabber.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/screenshot_grabber.h
[add] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot.h
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot_android.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot_async.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot_async.h
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot_aura.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot_aura_unittest.cc
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot_ios.mm
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot_mac.mm
[modify] https://crrev.com/b6438b1ca6462f3cc014cd1bf18410957101a119/ui/snapshot/snapshot_mac_unittest.mm

Status: Fixed (was: Started)
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a

commit 1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a
Author: mohsen <mohsen@chromium.org>
Date: Tue Jan 24 16:32:56 2017

Revert of [devtools] Support different encodings for Page.CaptureScreenshot. (patchset #8 id:480001 of https://codereview.chromium.org/2592983002/ )

Reason for revert:
Causing failures on "Mac10.11 Tests" builder:

https://uberchromegw.corp.google.com/i/chromium.mac/builders/Mac10.11%20Tests/builds/6881

[ RUN      ] GrabWindowSnapshotTest.TestGrabWindowSnapshot
../../ui/snapshot/snapshot_mac_unittest.mm:45: Failure
Value of: CGImageGetWidth([rep CGImage])
  Actual: 1
Expected: 400 * scaleFactor
Which is: 400
../../ui/snapshot/snapshot_mac_unittest.mm:49: Failure
Expected: (red + green + blue) >= (3.0), actual: 0 vs 3
[  FAILED  ] GrabWindowSnapshotTest.TestGrabWindowSnapshot (31 ms)

Original issue's description:
> [devtools] Support different encodings for Page.CaptureScreenshot.
>
> This adds support for jpeg encoding of screenshots, similar to that for
> screencasts. For this purpose, the patch modifies ui::Grab*Snapshot*
> methods to return a gfx::Image instead of a png. Utility methods can
> then encode the gfx::Image to jpeg/png depending on its
> platform-specific backing representation.
>
> BUG= 676282 
>
> Review-Url: https://codereview.chromium.org/2592983002
> Cr-Commit-Position: refs/heads/master@{#445730}
> Committed: https://chromium.googlesource.com/chromium/src/+/b6438b1ca6462f3cc014cd1bf18410957101a119

TBR=enne@chromium.org,avi@chromium.org,dtrainor@chromium.org,oshima@chromium.org,pfeldman@chromium.org,sadrul@chromium.org,dpranke@chromium.org,eseckler@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 676282 

Review-Url: https://codereview.chromium.org/2650903003
Cr-Commit-Position: refs/heads/master@{#445741}

[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/chrome/browser/android/feedback/screenshot_task.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/chrome/browser/chromeos/login/screenshot_testing/screenshot_tester.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/chrome/browser/chromeos/login/screenshot_testing/screenshot_tester.h
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.h
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/content/browser/devtools/protocol/page_handler.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/content/browser/devtools/protocol/page_handler.h
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/testing/buildbot/chromium.linux.json
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/testing/buildbot/chromium.mac.json
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/testing/buildbot/gn_isolate_map.pyl
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/third_party/WebKit/Source/core/inspector/browser_protocol.json
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/gfx/BUILD.gn
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/gfx/image/image_util.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/gfx/image/image_util.h
[delete] https://crrev.com/3d4141d40471d274b0b66d2e938821137bcc0f9c/ui/gfx/image/image_util_mac.mm
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/BUILD.gn
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/screenshot_grabber.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/screenshot_grabber.h
[delete] https://crrev.com/3d4141d40471d274b0b66d2e938821137bcc0f9c/ui/snapshot/snapshot.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot.h
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot_android.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot_async.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot_async.h
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot_aura.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot_aura_unittest.cc
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot_ios.mm
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot_mac.mm
[modify] https://crrev.com/1ae4ca9c8372d75a7cd617911c4e0bd4c65de33a/ui/snapshot/snapshot_mac_unittest.mm

Status: Started (was: Fixed)
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7233c1a70ea0194caf10f4365cf3520e5be7aa8f

commit 7233c1a70ea0194caf10f4365cf3520e5be7aa8f
Author: eseckler <eseckler@chromium.org>
Date: Wed Jan 25 15:07:54 2017

[devtools] Support different encodings for Page.CaptureScreenshot.

This adds support for jpeg encoding of screenshots, similar to that for
screencasts. For this purpose, the patch modifies ui::Grab*Snapshot*
methods to return a gfx::Image instead of a png. Utility methods can
then encode the gfx::Image to jpeg/png depending on its
platform-specific backing representation.

BUG= 676282 

Review-Url: https://codereview.chromium.org/2592983002
Cr-Original-Commit-Position: refs/heads/master@{#445730}
Committed: https://chromium.googlesource.com/chromium/src/+/b6438b1ca6462f3cc014cd1bf18410957101a119
Review-Url: https://codereview.chromium.org/2592983002
Cr-Commit-Position: refs/heads/master@{#446021}

[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/chrome/browser/android/feedback/screenshot_task.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/chrome/browser/chromeos/login/screenshot_testing/screenshot_tester.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/chrome/browser/chromeos/login/screenshot_testing/screenshot_tester.h
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.h
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/content/browser/devtools/protocol/page_handler.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/content/browser/devtools/protocol/page_handler.h
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/testing/buildbot/chromium.linux.json
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/testing/buildbot/chromium.mac.json
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/testing/buildbot/gn_isolate_map.pyl
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/third_party/WebKit/Source/core/inspector/browser_protocol.json
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/gfx/BUILD.gn
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/gfx/image/image_util.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/gfx/image/image_util.h
[add] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/gfx/image/image_util_mac.mm
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/BUILD.gn
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/screenshot_grabber.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/screenshot_grabber.h
[add] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot.h
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot_android.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot_async.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot_async.h
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot_aura.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot_aura_unittest.cc
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot_ios.mm
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot_mac.mm
[modify] https://crrev.com/7233c1a70ea0194caf10f4365cf3520e5be7aa8f/ui/snapshot/snapshot_mac_unittest.mm

Status: Fixed (was: Started)

Sign in to add a comment