diff options
-rw-r--r-- | content/browser/renderer_host/clipboard_message_filter.cc | 5 | ||||
-rw-r--r-- | content/browser/renderer_host/clipboard_message_filter.h | 3 | ||||
-rw-r--r-- | content/common/clipboard_messages.h | 3 | ||||
-rw-r--r-- | content/renderer/renderer_glue.cc | 9 | ||||
-rw-r--r-- | ui/base/clipboard/clipboard.h | 13 | ||||
-rw-r--r-- | ui/base/clipboard/clipboard_gtk.cc | 2 | ||||
-rw-r--r-- | ui/base/clipboard/clipboard_mac.mm | 12 | ||||
-rw-r--r-- | ui/base/clipboard/clipboard_win.cc | 9 | ||||
-rw-r--r-- | webkit/glue/webclipboard_impl.cc | 12 | ||||
-rw-r--r-- | webkit/glue/webclipboard_impl.h | 15 | ||||
-rw-r--r-- | webkit/glue/webkit_glue.h | 2 | ||||
-rw-r--r-- | webkit/tools/test_shell/simple_clipboard_impl.cc | 4 |
12 files changed, 50 insertions, 39 deletions
diff --git a/content/browser/renderer_host/clipboard_message_filter.cc b/content/browser/renderer_host/clipboard_message_filter.cc index 2ca1b89..30250fc 100644 --- a/content/browser/renderer_host/clipboard_message_filter.cc +++ b/content/browser/renderer_host/clipboard_message_filter.cc @@ -125,8 +125,9 @@ void ClipboardMessageFilter::OnWriteObjectsAsync( new WriteClipboardTask(long_living_objects)); } -void ClipboardMessageFilter::OnGetSequenceNumber(uint64* seq_num) { - *seq_num = GetClipboard()->GetSequenceNumber(); +void ClipboardMessageFilter::OnGetSequenceNumber( + ui::Clipboard::Buffer buffer, uint64* sequence_number) { + *sequence_number = GetClipboard()->GetSequenceNumber(buffer); } void ClipboardMessageFilter::OnReadAvailableTypes( diff --git a/content/browser/renderer_host/clipboard_message_filter.h b/content/browser/renderer_host/clipboard_message_filter.h index d84a083..0d96aca 100644 --- a/content/browser/renderer_host/clipboard_message_filter.h +++ b/content/browser/renderer_host/clipboard_message_filter.h @@ -29,7 +29,8 @@ class ClipboardMessageFilter : public BrowserMessageFilter { void OnWriteObjectsSync(const ui::Clipboard::ObjectMap& objects, base::SharedMemoryHandle bitmap_handle); - void OnGetSequenceNumber(uint64* seq_num); + void OnGetSequenceNumber(const ui::Clipboard::Buffer buffer, + uint64* sequence_number); void OnIsFormatAvailable(const ui::Clipboard::FormatType& format, ui::Clipboard::Buffer buffer, bool* result); diff --git a/content/common/clipboard_messages.h b/content/common/clipboard_messages.h index 3569df0..93e26fe 100644 --- a/content/common/clipboard_messages.h +++ b/content/common/clipboard_messages.h @@ -28,7 +28,8 @@ IPC_MESSAGE_CONTROL1(ClipboardHostMsg_WriteObjectsAsync, IPC_SYNC_MESSAGE_CONTROL2_0(ClipboardHostMsg_WriteObjectsSync, ui::Clipboard::ObjectMap /* objects */, base::SharedMemoryHandle /* bitmap handle */) -IPC_SYNC_MESSAGE_CONTROL0_1(ClipboardHostMsg_GetSequenceNumber, +IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_GetSequenceNumber, + ui::Clipboard::Buffer /* buffer */, uint64 /* result */) IPC_SYNC_MESSAGE_CONTROL2_1(ClipboardHostMsg_IsFormatAvailable, std::string /* format */, diff --git a/content/renderer/renderer_glue.cc b/content/renderer/renderer_glue.cc index 627061e..3b3f01a 100644 --- a/content/renderer/renderer_glue.cc +++ b/content/renderer/renderer_glue.cc @@ -96,11 +96,12 @@ ui::Clipboard* ClipboardGetClipboard() { return NULL; } -uint64 ClipboardGetSequenceNumber() { - uint64 seq_num = 0; +uint64 ClipboardGetSequenceNumber(ui::Clipboard::Buffer buffer) { + uint64 sequence_number = 0; RenderThreadImpl::current()->Send( - new ClipboardHostMsg_GetSequenceNumber(&seq_num)); - return seq_num; + new ClipboardHostMsg_GetSequenceNumber(buffer, + &sequence_number)); + return sequence_number; } bool ClipboardIsFormatAvailable(const ui::Clipboard::FormatType& format, diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h index b672eae..bb08f9d 100644 --- a/ui/base/clipboard/clipboard.h +++ b/ui/base/clipboard/clipboard.h @@ -89,7 +89,6 @@ class UI_EXPORT Clipboard { enum Buffer { BUFFER_STANDARD, BUFFER_SELECTION, - BUFFER_DRAG, }; static bool IsValidBuffer(int32 buffer) { @@ -100,8 +99,6 @@ class UI_EXPORT Clipboard { case BUFFER_SELECTION: return true; #endif - case BUFFER_DRAG: - return true; } return false; } @@ -133,6 +130,11 @@ class UI_EXPORT Clipboard { void DidWriteURL(const std::string& utf8_text); #endif + // Returns a sequence number which uniquely identifies clipboard state. + // This can be used to version the data on the clipboard and determine + // whether it has changed. + uint64 GetSequenceNumber(Buffer buffer); + // Tests whether the clipboard contains a certain format bool IsFormatAvailable(const FormatType& format, Buffer buffer) const; @@ -174,11 +176,6 @@ class UI_EXPORT Clipboard { // format is never controlled by the user. void ReadData(const std::string& format, std::string* result); - // Returns a sequence number which uniquely identifies clipboard state. - // This can be used to version the data on the clipboard and determine - // whether it has changed. - uint64 GetSequenceNumber(); - // Get format Identifiers for various types. static FormatType GetUrlFormatType(); static FormatType GetUrlWFormatType(); diff --git a/ui/base/clipboard/clipboard_gtk.cc b/ui/base/clipboard/clipboard_gtk.cc index ee32d5a..f51ba8a 100644 --- a/ui/base/clipboard/clipboard_gtk.cc +++ b/ui/base/clipboard/clipboard_gtk.cc @@ -422,7 +422,7 @@ void Clipboard::ReadData(const std::string& format, std::string* result) { gtk_selection_data_free(data); } -uint64 Clipboard::GetSequenceNumber() { +uint64 Clipboard::GetSequenceNumber(Buffer buffer) { // TODO(cdn): implement this. For now this interface will advertise // that the Linux clipboard never changes. That's fine as long as we // don't rely on this signal. diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm index cab0616..cb7d739 100644 --- a/ui/base/clipboard/clipboard_mac.mm +++ b/ui/base/clipboard/clipboard_mac.mm @@ -163,6 +163,13 @@ void Clipboard::WriteWebSmartPaste() { [pb setData:nil forType:format]; } +uint64 Clipboard::GetSequenceNumber(Buffer buffer) { + DCHECK_EQ(buffer, BUFFER_STANDARD); + + NSPasteboard* pb = GetPasteboard(); + return [pb changeCount]; +} + bool Clipboard::IsFormatAvailable(const Clipboard::FormatType& format, Clipboard::Buffer buffer) const { DCHECK_EQ(buffer, BUFFER_STANDARD); @@ -329,11 +336,6 @@ void Clipboard::ReadFiles(std::vector<FilePath>* files) const { } } -uint64 Clipboard::GetSequenceNumber() { - NSPasteboard* pb = GetPasteboard(); - return [pb changeCount]; -} - // static Clipboard::FormatType Clipboard::GetUrlFormatType() { return base::SysNSStringToUTF8(NSURLPboardType); diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc index 2115408..c0ba904 100644 --- a/ui/base/clipboard/clipboard_win.cc +++ b/ui/base/clipboard/clipboard_win.cc @@ -342,6 +342,11 @@ void Clipboard::WriteToClipboard(unsigned int format, HANDLE handle) { } } +uint64 Clipboard::GetSequenceNumber(Buffer buffer) { + DCHECK_EQ(buffer, BUFFER_STANDARD); + return ::GetClipboardSequenceNumber(); +} + bool Clipboard::IsFormatAvailable(const Clipboard::FormatType& format, Clipboard::Buffer buffer) const { DCHECK_EQ(buffer, BUFFER_STANDARD); @@ -634,10 +639,6 @@ void Clipboard::ReadData(const std::string& format, std::string* result) { ::GlobalUnlock(data); } -uint64 Clipboard::GetSequenceNumber() { - return ::GetClipboardSequenceNumber(); -} - // static void Clipboard::ParseBookmarkClipboardFormat(const string16& bookmark, string16* title, diff --git a/webkit/glue/webclipboard_impl.cc b/webkit/glue/webclipboard_impl.cc index 888de27..03614b0 100644 --- a/webkit/glue/webclipboard_impl.cc +++ b/webkit/glue/webclipboard_impl.cc @@ -64,7 +64,15 @@ WebClipboardImpl::~WebClipboardImpl() { } uint64 WebClipboardImpl::getSequenceNumber() { - return ClipboardGetSequenceNumber(); + return sequenceNumber(BufferStandard); +} + +uint64 WebClipboardImpl::sequenceNumber(Buffer buffer) { + ui::Clipboard::Buffer buffer_type; + if (!ConvertBufferType(buffer, &buffer_type)) + return 0; + + return ClipboardGetSequenceNumber(buffer_type); } bool WebClipboardImpl::isFormatAvailable(Format format, Buffer buffer) { @@ -218,8 +226,6 @@ bool WebClipboardImpl::ConvertBufferType(Buffer buffer, case BufferStandard: *result = ui::Clipboard::BUFFER_STANDARD; break; - case BufferDrag: - *result = ui::Clipboard::BUFFER_DRAG; case BufferSelection: #if defined(USE_X11) *result = ui::Clipboard::BUFFER_SELECTION; diff --git a/webkit/glue/webclipboard_impl.h b/webkit/glue/webclipboard_impl.h index e0bc399..6b496b6 100644 --- a/webkit/glue/webclipboard_impl.h +++ b/webkit/glue/webclipboard_impl.h @@ -23,16 +23,17 @@ class WebClipboardImpl : public WebKit::WebClipboard { // WebClipboard methods: virtual uint64 getSequenceNumber(); - virtual bool isFormatAvailable(Format, Buffer); + virtual uint64 sequenceNumber(Buffer buffer); + virtual bool isFormatAvailable(Format format, Buffer buffer); virtual WebKit::WebVector<WebKit::WebString> readAvailableTypes( - Buffer, bool* contains_filenames); - virtual WebKit::WebString readPlainText(Buffer); + Buffer buffer, bool* contains_filenames); + virtual WebKit::WebString readPlainText(Buffer buffer); virtual WebKit::WebString readHTML( - Buffer, + Buffer buffer, WebKit::WebURL* source_url, unsigned* fragment_start, unsigned* fragment_end); - virtual WebKit::WebData readImage(Buffer); + virtual WebKit::WebData readImage(Buffer buffer); virtual void writeHTML( const WebKit::WebString& html_text, const WebKit::WebURL& source_url, @@ -40,10 +41,10 @@ class WebClipboardImpl : public WebKit::WebClipboard { bool write_smart_paste); virtual void writePlainText(const WebKit::WebString& plain_text); virtual void writeURL( - const WebKit::WebURL&, + const WebKit::WebURL& url, const WebKit::WebString& title); virtual void writeImage( - const WebKit::WebImage&, + const WebKit::WebImage& image, const WebKit::WebURL& source_url, const WebKit::WebString& title); diff --git a/webkit/glue/webkit_glue.h b/webkit/glue/webkit_glue.h index e4a5ab0..5c8efba 100644 --- a/webkit/glue/webkit_glue.h +++ b/webkit/glue/webkit_glue.h @@ -174,7 +174,7 @@ base::StringPiece GetDataResource(int resource_id); ui::Clipboard* ClipboardGetClipboard(); // Get a sequence number which uniquely identifies clipboard state. -uint64 ClipboardGetSequenceNumber(); +uint64 ClipboardGetSequenceNumber(ui::Clipboard::Buffer buffer); // Tests whether the clipboard contains a certain format bool ClipboardIsFormatAvailable(const ui::Clipboard::FormatType& format, diff --git a/webkit/tools/test_shell/simple_clipboard_impl.cc b/webkit/tools/test_shell/simple_clipboard_impl.cc index d55460a..4a44a80 100644 --- a/webkit/tools/test_shell/simple_clipboard_impl.cc +++ b/webkit/tools/test_shell/simple_clipboard_impl.cc @@ -35,8 +35,8 @@ ui::Clipboard* ClipboardGetClipboard() { return clipboard.Pointer(); } -uint64 ClipboardGetSequenceNumber() { - return ClipboardGetClipboard()->GetSequenceNumber(); +uint64 ClipboardGetSequenceNumber(ui::Clipboard::Buffer buffer) { + return ClipboardGetClipboard()->GetSequenceNumber(buffer); } bool ClipboardIsFormatAvailable(const ui::Clipboard::FormatType& format, |