electron/patches/common/chromium/scoped_clipboard_writer.patch
2018-10-09 14:38:00 -07:00

66 lines
2.6 KiB
Diff

From 691dce7bf41c6fbc8ce3bf9fc3fb4ec0ef0cca21 Mon Sep 17 00:00:00 2001
From: Anonymous <anonymous@electronjs.org>
Date: Thu, 20 Sep 2018 17:46:32 -0700
Subject: scoped_clipboard_writer.patch
diff --git a/ui/base/clipboard/scoped_clipboard_writer.cc b/ui/base/clipboard/scoped_clipboard_writer.cc
index 12680a66d17c..6b95e46e3558 100644
--- a/ui/base/clipboard/scoped_clipboard_writer.cc
+++ b/ui/base/clipboard/scoped_clipboard_writer.cc
@@ -103,17 +103,16 @@ void ScopedClipboardWriter::WriteImage(const SkBitmap& bitmap) {
objects_[Clipboard::CBF_SMBITMAP] = parameters;
}
-void ScopedClipboardWriter::WritePickledData(
- const base::Pickle& pickle,
- const Clipboard::FormatType& format) {
+void ScopedClipboardWriter::WriteData(const char* data,
+ int size,
+ const Clipboard::FormatType& format) {
std::string format_string = format.Serialize();
Clipboard::ObjectMapParam format_parameter(format_string.begin(),
format_string.end());
Clipboard::ObjectMapParam data_parameter;
- data_parameter.resize(pickle.size());
- memcpy(const_cast<char*>(&data_parameter.front()),
- pickle.data(), pickle.size());
+ data_parameter.resize(size);
+ memcpy(const_cast<char*>(&data_parameter.front()), data, size);
Clipboard::ObjectMapParams parameters;
parameters.push_back(format_parameter);
@@ -131,6 +130,13 @@ void ScopedClipboardWriter::WriteData(const std::string& type,
objects_[Clipboard::CBF_DATA] = parameters;
}
+void ScopedClipboardWriter::WritePickledData(
+ const base::Pickle& pickle,
+ const Clipboard::FormatType& format) {
+ WriteData(reinterpret_cast<const char*>(pickle.data()), pickle.size(),
+ format);
+}
+
void ScopedClipboardWriter::Reset() {
objects_.clear();
bitmap_.reset();
diff --git a/ui/base/clipboard/scoped_clipboard_writer.h b/ui/base/clipboard/scoped_clipboard_writer.h
index 385900eb67de..cf1f803ec123 100644
--- a/ui/base/clipboard/scoped_clipboard_writer.h
+++ b/ui/base/clipboard/scoped_clipboard_writer.h
@@ -57,6 +57,11 @@ class UI_BASE_EXPORT ScopedClipboardWriter {
// Used by WebKit to determine whether WebKit wrote the clipboard last
void WriteWebSmartPaste();
+ // Adds arbitrary data to clipboard.
+ void WriteData(const char* data,
+ int size,
+ const Clipboard::FormatType& format);
+
// Adds arbitrary pickled data to clipboard.
void WritePickledData(const base::Pickle& pickle,
const Clipboard::FormatType& format);
--
2.17.0