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

Unified Diff: chrome/browser/extensions/clipboard_extension_helper_chromeos.cc

Issue 2837983002: Modify SetImageData to add additional items along with image data to save on clipboard. (Closed)
Patch Set: Nits and rebase. Created 3 years, 7 months 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: chrome/browser/extensions/clipboard_extension_helper_chromeos.cc
diff --git a/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc b/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc
index ed084d6b7035f623824d96e5567d7abc313aff8a..411805080b5513998a5cdcde5c4a5c426c516127 100644
--- a/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc
+++ b/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc
@@ -7,6 +7,8 @@
#include "base/callback_helpers.h"
#include "base/macros.h"
#include "base/metrics/histogram_macros.h"
+#include "base/strings/string_util.h"
+#include "base/strings/utf_string_conversions.h"
#include "base/synchronization/cancellation_flag.h"
#include "chrome/browser/image_decoder.h"
#include "content/public/browser/browser_thread.h"
@@ -81,6 +83,7 @@ ClipboardExtensionHelper::~ClipboardExtensionHelper() {}
void ClipboardExtensionHelper::DecodeAndSaveImageData(
const std::vector<char>& data,
clipboard::ImageType type,
+ AdditionalDataItemList additional_items,
const base::Closure& success_callback,
const base::Callback<void(const std::string&)>& error_callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -92,6 +95,9 @@ void ClipboardExtensionHelper::DecodeAndSaveImageData(
if (clipboard_image_data_decoder_->has_request_pending())
clipboard_image_data_decoder_->Cancel();
+ // Cache additonal items.
+ additonal_items_ = std::move(additional_items);
+
image_save_success_callback_ = success_callback;
image_save_error_callback_ = error_callback;
clipboard_image_data_decoder_->Start(data, type);
@@ -99,7 +105,7 @@ void ClipboardExtensionHelper::DecodeAndSaveImageData(
void ClipboardExtensionHelper::OnImageDecodeFailure() {
base::ResetAndReturn(&image_save_error_callback_)
- .Run("Image data decoding failed");
+ .Run("Image data decoding failed.");
}
void ClipboardExtensionHelper::OnImageDecoded(const SkBitmap& bitmap) {
@@ -108,12 +114,19 @@ void ClipboardExtensionHelper::OnImageDecoded(const SkBitmap& bitmap) {
// Write the decoded image data to clipboard.
if (!bitmap.empty() && !bitmap.isNull())
scw.WriteImage(bitmap);
+
+ for (const clipboard::AdditionalDataItem& item : additonal_items_) {
+ if (item.type == clipboard::DATA_ITEM_TYPE_TEXTPLAIN)
+ scw.WriteText(base::UTF8ToUTF16(item.data));
+ else if (item.type == clipboard::DATA_ITEM_TYPE_TEXTHTML)
+ scw.WriteHTML(base::UTF8ToUTF16(item.data), std::string());
+ }
}
base::ResetAndReturn(&image_save_success_callback_).Run();
}
void ClipboardExtensionHelper::OnImageDecodeCancel() {
- base::ResetAndReturn(&image_save_error_callback_).Run("Request canceled");
+ base::ResetAndReturn(&image_save_error_callback_).Run("Request canceled.");
}
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698