summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/browser/renderer_host/clipboard_message_filter.cc5
-rw-r--r--content/browser/renderer_host/clipboard_message_filter.h3
-rw-r--r--content/common/clipboard_messages.h3
-rw-r--r--content/renderer/renderer_glue.cc9
-rw-r--r--ui/base/clipboard/clipboard.h13
-rw-r--r--ui/base/clipboard/clipboard_gtk.cc2
-rw-r--r--ui/base/clipboard/clipboard_mac.mm12
-rw-r--r--ui/base/clipboard/clipboard_win.cc9
-rw-r--r--webkit/glue/webclipboard_impl.cc12
-rw-r--r--webkit/glue/webclipboard_impl.h15
-rw-r--r--webkit/glue/webkit_glue.h2
-rw-r--r--webkit/tools/test_shell/simple_clipboard_impl.cc4
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,