summaryrefslogtreecommitdiffstats
path: root/base/clipboard.h
diff options
context:
space:
mode:
authorrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-31 01:19:57 +0000
committerrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-31 01:19:57 +0000
commita92d2fd9d1fe0e74f6ca7d540858a4711b46367e (patch)
tree3ec4bb1ee681af04ee6757fa65e47b2abd5dff04 /base/clipboard.h
parent69b43bdc17d84729fca4e34595e51a88cec099af (diff)
downloadchromium_src-a92d2fd9d1fe0e74f6ca7d540858a4711b46367e.zip
chromium_src-a92d2fd9d1fe0e74f6ca7d540858a4711b46367e.tar.gz
chromium_src-a92d2fd9d1fe0e74f6ca7d540858a4711b46367e.tar.bz2
Make sure that Clipboard operations that require dispatching
of windows messages are performed on the UI thread. SetClipboardData requires the clipboard to be open with a handle to a window that will be notified when the contents are going to change again. If Windows messages are not processed, any other app writing to the clipboard will be locked while we acknowledge their request (by processing the message). The IO thread doesn't pump windows messages anymore so write clipboard operations cannot be performed from that thread and have to be posted to another thread. BUG=5823 Review URL: http://codereview.chromium.org/19733 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9003 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/clipboard.h')
-rw-r--r--base/clipboard.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/base/clipboard.h b/base/clipboard.h
index 64f9e3a..abaaa1b 100644
--- a/base/clipboard.h
+++ b/base/clipboard.h
@@ -130,6 +130,11 @@ class Clipboard {
static FormatType GetCFHDropFormatType();
static FormatType GetFileDescriptorFormatType();
static FormatType GetFileContentFormatZeroType();
+
+ // Duplicates any remote shared memory handle embedded inside |objects| that
+ // was created by |process| so that it can be used by this process.
+ static void DuplicateRemoteHandles(base::ProcessHandle process,
+ ObjectMap* objects);
#endif
private:
@@ -181,6 +186,9 @@ class Clipboard {
// Mark this as mutable so const methods can still do lazy initialization.
mutable HWND clipboard_owner_;
+
+ // True if we can create a window.
+ bool create_window_;
#elif defined(OS_LINUX)
// Data is stored in the |clipboard_data_| map until it is saved to the system
// clipboard. The Store* functions save data to the |clipboard_data_| map. The