| Index: ui/base/clipboard/clipboard.h
|
| diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h
|
| index b98cfc4748953f32ad60eb5c45be673cd1afc771..82cdb9164d8ececbc3bb6bb1ce3a55b6a16b695e 100644
|
| --- a/ui/base/clipboard/clipboard.h
|
| +++ b/ui/base/clipboard/clipboard.h
|
| @@ -46,6 +46,7 @@ class NSString;
|
| #endif
|
|
|
| namespace ui {
|
| +class ClipboardTest;
|
|
|
| class UI_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
|
| public:
|
| @@ -182,8 +183,18 @@ class UI_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
|
| return static_cast<Buffer>(buffer);
|
| }
|
|
|
| - Clipboard();
|
| - ~Clipboard();
|
| + // Returns the clipboard object for the current thread.
|
| + //
|
| + // Most implementations will have at most one clipboard which will live on
|
| + // the main UI thread, but Windows has tricky semantics where there have to
|
| + // be two clipboards: one that lives on the UI thread and one that lives on
|
| + // the IO thread.
|
| + static Clipboard* GetForCurrentThread();
|
| +
|
| + // Destroys the clipboard for the current thread. Usually, this will clean up
|
| + // all clipboards, except on Windows. (Previous code leaks the IO thread
|
| + // clipboard, so it shouldn't be a problem.)
|
| + static void DestroyClipboardForCurrentThread();
|
|
|
| // Write a bunch of objects to the system clipboard. Copies are made of the
|
| // contents of |objects|. On Windows they are copied to the system clipboard.
|
| @@ -284,6 +295,10 @@ class UI_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
|
| private:
|
| FRIEND_TEST_ALL_PREFIXES(ClipboardTest, SharedBitmapTest);
|
| FRIEND_TEST_ALL_PREFIXES(ClipboardTest, EmptyHTMLTest);
|
| + friend class ClipboardTest;
|
| +
|
| + Clipboard();
|
| + ~Clipboard();
|
|
|
| void DispatchObject(ObjectType type, const ObjectMapParams& params);
|
|
|
|
|