Index: content/browser/devtools/protocol/page_handler.cc |
diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc |
index 03e4af0b7efd7ce916ea16fe75e8e48d17c33287..572c65c9bc1f344cc1f76f60a46625443d413ab5 100644 |
--- a/content/browser/devtools/protocol/page_handler.cc |
+++ b/content/browser/devtools/protocol/page_handler.cc |
@@ -285,15 +285,24 @@ Response PageHandler::NavigateToHistoryEntry(int entry_id) { |
} |
void PageHandler::CaptureScreenshot( |
+ Maybe<std::string> format, |
+ Maybe<int> quality, |
std::unique_ptr<CaptureScreenshotCallback> callback) { |
if (!host_ || !host_->GetRenderWidgetHost()) { |
callback->sendFailure(Response::InternalError()); |
return; |
} |
+ ui::SnapshotEncoding snapshot_encoding = format.fromMaybe(kPng) == kPng |
+ ? ui::SnapshotEncoding::PNG |
+ : ui::SnapshotEncoding::JPEG; |
+ ui::SnapshotQuality snapshot_quality = |
+ quality.fromMaybe(kDefaultScreenshotQuality); |
+ |
host_->GetRenderWidgetHost()->GetSnapshotFromBrowser( |
- base::Bind(&PageHandler::ScreenshotCaptured, |
- weak_factory_.GetWeakPtr(), base::Passed(std::move(callback)))); |
+ base::Bind(&PageHandler::ScreenshotCaptured, weak_factory_.GetWeakPtr(), |
+ base::Passed(std::move(callback))), |
+ snapshot_encoding, snapshot_quality); |
} |
Response PageHandler::StartScreencast(Maybe<std::string> format, |
@@ -560,16 +569,16 @@ void PageHandler::ScreencastFrameEncoded(cc::CompositorFrameMetadata metadata, |
void PageHandler::ScreenshotCaptured( |
std::unique_ptr<CaptureScreenshotCallback> callback, |
- const unsigned char* png_data, |
- size_t png_size) { |
- if (!png_data || !png_size) { |
+ const unsigned char* image_data, |
+ size_t data_size) { |
+ if (!image_data || !data_size) { |
callback->sendFailure(Response::Error("Unable to capture screenshot")); |
return; |
} |
std::string base_64_data; |
base::Base64Encode( |
- base::StringPiece(reinterpret_cast<const char*>(png_data), png_size), |
+ base::StringPiece(reinterpret_cast<const char*>(image_data), data_size), |
&base_64_data); |
callback->sendSuccess(base_64_data); |
} |