diff --git a/ui/base/clipboard/scoped_clipboard_writer.cc b/ui/base/clipboard/scoped_clipboard_writer.cc index 6850cd460b1d..6d652cca59b4 100644 --- a/ui/base/clipboard/scoped_clipboard_writer.cc +++ b/ui/base/clipboard/scoped_clipboard_writer.cc @@ -102,17 +102,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(&data_parameter.front()), - pickle.data(), pickle.size()); + data_parameter.resize(size); + memcpy(const_cast(&data_parameter.front()), data, size); Clipboard::ObjectMapParams parameters; parameters.push_back(format_parameter); @@ -121,6 +121,13 @@ void ScopedClipboardWriter::WritePickledData( objects_[Clipboard::CBF_DATA] = parameters; } +void ScopedClipboardWriter::WritePickledData( + const base::Pickle& pickle, + const Clipboard::FormatType& format) { + WriteData(reinterpret_cast(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 a7e064561ca9..d5a1b76bc6a7 100644 --- a/ui/base/clipboard/scoped_clipboard_writer.h +++ b/ui/base/clipboard/scoped_clipboard_writer.h @@ -61,6 +61,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);