Index: ui/base/clipboard/clipboard.h |
diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h |
index afc875341ab4a748977bc700248efc8686ee579c..73c3aa2f98f472cdc5f67f99d5ce8e1c0cd865ba 100644 |
--- a/ui/base/clipboard/clipboard.h |
+++ b/ui/base/clipboard/clipboard.h |
@@ -11,7 +11,6 @@ |
#include "base/compiler_specific.h" |
#include "base/gtest_prod_util.h" |
-#include "base/memory/scoped_ptr.h" |
#include "base/memory/shared_memory.h" |
#include "base/process/process.h" |
#include "base/strings/string16.h" |
@@ -22,15 +21,6 @@ |
#if defined(OS_WIN) |
#include <objidl.h> |
-#elif defined(OS_ANDROID) |
-#include <jni.h> |
- |
-#include "base/android/jni_android.h" |
-#include "base/android/scoped_java_ref.h" |
-#endif |
- |
-#if defined(USE_AURA) && defined(USE_X11) |
-#include "base/memory/scoped_ptr.h" |
#endif |
namespace base { |
@@ -88,7 +78,7 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) { |
#if defined(OS_WIN) |
const FORMATETC& ToFormatEtc() const { return data_; } |
-#elif defined(USE_AURA) |
+#elif defined(USE_AURA) || defined(OS_ANDROID) |
const std::string& ToString() const { return data_; } |
#elif defined(OS_MACOSX) |
NSString* ToNSString() const { return data_; } |
@@ -113,19 +103,13 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) { |
#if defined(OS_WIN) |
explicit FormatType(UINT native_format); |
FormatType(UINT native_format, LONG index); |
- UINT ToUINT() const { return data_.cfFormat; } |
FORMATETC data_; |
-#elif defined(USE_AURA) |
+#elif defined(USE_AURA) || defined(OS_ANDROID) |
explicit FormatType(const std::string& native_format); |
- const std::string& data() const { return data_; } |
std::string data_; |
#elif defined(OS_MACOSX) |
explicit FormatType(NSString* native_format); |
NSString* data_; |
-#elif defined(OS_ANDROID) |
- explicit FormatType(const std::string& native_format); |
- const std::string& data() const { return data_; } |
- std::string data_; |
#else |
#error No FormatType definition. |
#endif |
@@ -211,51 +195,53 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) { |
// 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(ClipboardType type); |
+ virtual uint64 GetSequenceNumber(ClipboardType type) = 0; |
// Tests whether the clipboard contains a certain format |
- bool IsFormatAvailable(const FormatType& format, ClipboardType type) const; |
+ virtual bool IsFormatAvailable(const FormatType& format, |
+ ClipboardType type) const = 0; |
// Clear the clipboard data. |
- void Clear(ClipboardType type); |
+ virtual void Clear(ClipboardType type) = 0; |
- void ReadAvailableTypes(ClipboardType type, |
- std::vector<base::string16>* types, |
- bool* contains_filenames) const; |
+ virtual void ReadAvailableTypes(ClipboardType type, |
+ std::vector<base::string16>* types, |
+ bool* contains_filenames) const = 0; |
// Reads UNICODE text from the clipboard, if available. |
- void ReadText(ClipboardType type, base::string16* result) const; |
+ virtual void ReadText(ClipboardType type, base::string16* result) const = 0; |
// Reads ASCII text from the clipboard, if available. |
- void ReadAsciiText(ClipboardType type, std::string* result) const; |
+ virtual void ReadAsciiText(ClipboardType type, std::string* result) const = 0; |
// Reads HTML from the clipboard, if available. If the HTML fragment requires |
// context to parse, |fragment_start| and |fragment_end| are indexes into |
// markup indicating the beginning and end of the actual fragment. Otherwise, |
// they will contain 0 and markup->size(). |
- void ReadHTML(ClipboardType type, |
- base::string16* markup, |
- std::string* src_url, |
- uint32* fragment_start, |
- uint32* fragment_end) const; |
+ virtual void ReadHTML(ClipboardType type, |
+ base::string16* markup, |
+ std::string* src_url, |
+ uint32* fragment_start, |
+ uint32* fragment_end) const = 0; |
// Reads RTF from the clipboard, if available. Stores the result as a byte |
// vector. |
- void ReadRTF(ClipboardType type, std::string* result) const; |
+ virtual void ReadRTF(ClipboardType type, std::string* result) const = 0; |
// Reads an image from the clipboard, if available. |
- SkBitmap ReadImage(ClipboardType type) const; |
+ virtual SkBitmap ReadImage(ClipboardType type) const = 0; |
- void ReadCustomData(ClipboardType clipboard_type, |
- const base::string16& type, |
- base::string16* result) const; |
+ virtual void ReadCustomData(ClipboardType clipboard_type, |
+ const base::string16& type, |
+ base::string16* result) const = 0; |
// Reads a bookmark from the clipboard, if available. |
- void ReadBookmark(base::string16* title, std::string* url) const; |
+ virtual void ReadBookmark(base::string16* title, std::string* url) const = 0; |
// Reads raw data from the clipboard with the given format type. Stores result |
// as a byte vector. |
- void ReadData(const FormatType& format, std::string* result) const; |
+ virtual void ReadData(const FormatType& format, |
+ std::string* result) const = 0; |
// Gets the FormatType corresponding to an arbitrary format string, |
// registering it with the system if needed. Due to Windows/Linux |
@@ -298,73 +284,48 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) { |
static const FormatType& GetIDListFormatType(); |
#endif |
- private: |
- FRIEND_TEST_ALL_PREFIXES(ClipboardTest, SharedBitmapTest); |
- FRIEND_TEST_ALL_PREFIXES(ClipboardTest, EmptyHTMLTest); |
- friend class ClipboardTest; |
- // For access to WriteObjects(). |
- // TODO(dcheng): Remove the temporary exception for content. |
- friend class content::ClipboardMessageFilter; |
- friend class ScopedClipboardWriter; |
+ protected: |
+ static Clipboard* Create(); |
- Clipboard(); |
- ~Clipboard(); |
+ Clipboard() {} |
+ virtual ~Clipboard() {} |
// Write a bunch of objects to the system clipboard. Copies are made of the |
// contents of |objects|. |
- void WriteObjects(ClipboardType type, const ObjectMap& objects); |
+ virtual void WriteObjects(ClipboardType type, const ObjectMap& objects) = 0; |
void DispatchObject(ObjectType type, const ObjectMapParams& params); |
- void WriteText(const char* text_data, size_t text_len); |
+ virtual void WriteText(const char* text_data, size_t text_len) = 0; |
- void WriteHTML(const char* markup_data, |
- size_t markup_len, |
- const char* url_data, |
- size_t url_len); |
+ virtual void WriteHTML(const char* markup_data, |
+ size_t markup_len, |
+ const char* url_data, |
+ size_t url_len) = 0; |
- void WriteRTF(const char* rtf_data, size_t data_len); |
+ virtual void WriteRTF(const char* rtf_data, size_t data_len) = 0; |
- void WriteBookmark(const char* title_data, |
- size_t title_len, |
- const char* url_data, |
- size_t url_len); |
+ virtual void WriteBookmark(const char* title_data, |
+ size_t title_len, |
+ const char* url_data, |
+ size_t url_len) = 0; |
- void WriteWebSmartPaste(); |
+ virtual void WriteWebSmartPaste() = 0; |
- void WriteBitmap(const SkBitmap& bitmap); |
+ virtual void WriteBitmap(const SkBitmap& bitmap) = 0; |
- void WriteData(const FormatType& format, |
- const char* data_data, |
- size_t data_len); |
-#if defined(OS_WIN) |
- void WriteBitmapFromHandle(HBITMAP source_hbitmap, |
- const gfx::Size& size); |
+ virtual void WriteData(const FormatType& format, |
+ const char* data_data, |
+ size_t data_len) = 0; |
- // Safely write to system clipboard. Free |handle| on failure. |
- void WriteToClipboard(unsigned int format, HANDLE handle); |
- |
- static void ParseBookmarkClipboardFormat(const base::string16& bookmark, |
- base::string16* title, |
- std::string* url); |
- |
- // Free a handle depending on its type (as intuited from format) |
- static void FreeData(unsigned int format, HANDLE data); |
- |
- // Return the window that should be the clipboard owner, creating it |
- // if neccessary. Marked const for lazily initialization by const methods. |
- HWND GetClipboardWindow() const; |
- |
- // Mark this as mutable so const methods can still do lazy initialization. |
- mutable scoped_ptr<base::win::MessageWindow> clipboard_owner_; |
- |
-#elif defined(USE_CLIPBOARD_AURAX11) |
private: |
- // We keep our implementation details private because otherwise we bring in |
- // the X11 headers and break chrome compile. |
- class AuraX11Details; |
- scoped_ptr<AuraX11Details> aurax11_details_; |
-#endif |
+ FRIEND_TEST_ALL_PREFIXES(ClipboardTest, SharedBitmapTest); |
+ FRIEND_TEST_ALL_PREFIXES(ClipboardTest, EmptyHTMLTest); |
+ friend class ClipboardTest; |
+ // For access to WriteObjects(). |
+ // TODO(dcheng): Remove the temporary exception for content. |
+ friend class content::ClipboardMessageFilter; |
+ friend class ScopedClipboardWriter; |
DISALLOW_COPY_AND_ASSIGN(Clipboard); |
}; |