summaryrefslogtreecommitdiffstats
path: root/app/win_util.cc
diff options
context:
space:
mode:
authorkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-11 04:46:25 +0000
committerkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-11 04:46:25 +0000
commit45c6aad36e42c895c7353fab2f8f2e528874a354 (patch)
tree67f3846ce7eb51b512661da3b496a1b9d6c8a9fc /app/win_util.cc
parentba28247b5b97f0e7c11bb69bb48d82e556eb8ed2 (diff)
downloadchromium_src-45c6aad36e42c895c7353fab2f8f2e528874a354.zip
chromium_src-45c6aad36e42c895c7353fab2f8f2e528874a354.tar.gz
chromium_src-45c6aad36e42c895c7353fab2f8f2e528874a354.tar.bz2
Fix ThumbnailGenerator on Windows.
In the browser, duplicate the file mapping handle before sending to the renderer and map the TransportDIB before accessing the memory. In the renderer, do not map the file twice, which was happening when TransportDIB::Map and GetPlatformCanvas were both being called. BUG=none TEST=none Review URL: http://codereview.chromium.org/4569002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65775 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'app/win_util.cc')
-rw-r--r--app/win_util.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/app/win_util.cc b/app/win_util.cc
index 5232e34..be267af 100644
--- a/app/win_util.cc
+++ b/app/win_util.cc
@@ -269,6 +269,16 @@ HANDLE GetSectionFromProcess(HANDLE section, HANDLE process, bool read_only) {
return valid_section;
}
+HANDLE GetSectionForProcess(HANDLE section, HANDLE process, bool read_only) {
+ HANDLE valid_section = NULL;
+ DWORD access = STANDARD_RIGHTS_REQUIRED | FILE_MAP_READ;
+ if (!read_only)
+ access |= FILE_MAP_WRITE;
+ DuplicateHandle(GetCurrentProcess(), section, process, &valid_section, access,
+ FALSE, 0);
+ return valid_section;
+}
+
bool DoesWindowBelongToActiveWindow(HWND window) {
DCHECK(window);
HWND top_window = ::GetAncestor(window, GA_ROOT);