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

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

Issue 2011833003: Implement ui::ClipboardMus. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove static in test by creating forwarding clipboard subclass. Created 4 years, 6 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/BUILD.gn ('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 40af4df4f2fe2d1568227ee242f4118648c67d53..7826b2696df33c824865ea9caf85446bebb35153 100644
--- a/ui/base/clipboard/clipboard.h
+++ b/ui/base/clipboard/clipboard.h
@@ -9,6 +9,7 @@
#include <stdint.h>
#include <map>
+#include <memory>
#include <string>
#include <vector>
@@ -60,9 +61,13 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
static const char kMimeTypeText[];
static const char kMimeTypeURIList[];
static const char kMimeTypeDownloadURL[];
+ static const char kMimeTypeMozillaURL[];
static const char kMimeTypeHTML[];
static const char kMimeTypeRTF[];
static const char kMimeTypePNG[];
+ static const char kMimeTypeWebCustomData[];
+ static const char kMimeTypeWebkitSmartPaste[];
+ static const char kMimeTypePepperCustomData[];
// Platform neutral holder for native data representation of a clipboard type.
struct UI_BASE_EXPORT FormatType {
@@ -137,6 +142,13 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
static void SetAllowedThreads(
const std::vector<base::PlatformThreadId>& allowed_threads);
+ // Sets the clipboard for the current thread. Previously, there was only
+ // one clipboard implementation on a platform; now that mus exists, during
+ // mus app startup, we need to specifically initialize mus instead of the
+ // current platform clipboard. We take ownership of |platform_clipboard|.
+ static void SetClipboardForCurrentThread(
+ std::unique_ptr<Clipboard> platform_clipboard);
+
// Returns the clipboard object for the current thread.
//
// Most implementations will have at most one clipboard which will live on
@@ -308,8 +320,13 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
private:
// For access to WriteObjects().
+ friend class ForwardingTestingClipboard;
friend class ScopedClipboardWriter;
friend class TestClipboard;
+ // For SetClipboardForCurrentThread's argument.
+ friend struct std::default_delete<Clipboard>;
+
+ static base::PlatformThreadId GetAndValidateThreadID();
// A list of allowed threads. By default, this is empty and no thread checking
// is done (in the unit test case), but a user (like content) can set which
@@ -318,7 +335,8 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
static base::LazyInstance<AllowedThreadsVector> allowed_threads_;
// Mapping from threads to clipboard objects.
- typedef std::map<base::PlatformThreadId, Clipboard*> ClipboardMap;
+ typedef std::map<base::PlatformThreadId, std::unique_ptr<Clipboard>>
+ ClipboardMap;
static base::LazyInstance<ClipboardMap> clipboard_map_;
// Mutex that controls access to |g_clipboard_map|.
« no previous file with comments | « ui/base/BUILD.gn ('k') | ui/base/clipboard/clipboard.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698