Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1274)

Unified Diff: ui/base/clipboard/clipboard.h

Issue 658963003: Change Clipboard to use virtual methods for testing purposes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/android/ui_base_jni_registrar.cc ('k') | ui/base/clipboard/clipboard.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « ui/base/android/ui_base_jni_registrar.cc ('k') | ui/base/clipboard/clipboard.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698