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

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: Created 3 years, 8 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..d3d68c9e09042d87cd6f731374affa0447491bb7 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,
+ const 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,15 @@ void ClipboardExtensionHelper::DecodeAndSaveImageData(
if (clipboard_image_data_decoder_->has_request_pending())
clipboard_image_data_decoder_->Cancel();
+ // Cache additonal items.
+ additonal_items_.clear();
+ for (const clipboard::AdditionalDataItem& item : additional_items) {
+ AdditionalDataItem data_item;
+ data_item.type = base::ToLowerASCII(item.type);
+ data_item.data = item.data;
+ additonal_items_.push_back(data_item);
+ }
+
image_save_success_callback_ = success_callback;
image_save_error_callback_ = error_callback;
clipboard_image_data_decoder_->Start(data, type);
@@ -108,6 +120,12 @@ void ClipboardExtensionHelper::OnImageDecoded(const SkBitmap& bitmap) {
// Write the decoded image data to clipboard.
if (!bitmap.empty() && !bitmap.isNull())
scw.WriteImage(bitmap);
+ for (const AdditionalDataItem& item : additonal_items_) {
+ if (item.type == "text/plain")
+ scw.WriteText(base::UTF8ToUTF16(item.data));
+ else if (item.type == "text/html")
+ scw.WriteHTML(base::UTF8ToUTF16(item.data), std::string(""));
Devlin 2017/04/26 18:20:15 So far this text (item.data) is totally unvalidate
dcheng 2017/04/27 15:42:09 It mirrors what we do for a renderer that calls Da
jennyz 2017/05/16 18:22:03 See dcheng@'s comment.
jennyz 2017/05/16 18:22:03 Done.
+ }
}
base::ResetAndReturn(&image_save_success_callback_).Run();
}

Powered by Google App Engine
This is Rietveld 408576698