diff options
author | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-31 01:19:57 +0000 |
---|---|---|
committer | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-31 01:19:57 +0000 |
commit | a92d2fd9d1fe0e74f6ca7d540858a4711b46367e (patch) | |
tree | 3ec4bb1ee681af04ee6757fa65e47b2abd5dff04 /base/clipboard.h | |
parent | 69b43bdc17d84729fca4e34595e51a88cec099af (diff) | |
download | chromium_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.h | 8 |
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 |