diff options
author | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-20 18:00:36 +0000 |
---|---|---|
committer | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-20 18:00:36 +0000 |
commit | ae849ea693102dd66d5f01d9ad6799e0bde070d0 (patch) | |
tree | 2fdafb8dd84f96c9e61a6b5831860e4ba8406aba /chrome/browser/renderer_host/render_process_host.h | |
parent | d62b5fc77d374524bed3752950f268851b8585c6 (diff) | |
download | chromium_src-ae849ea693102dd66d5f01d9ad6799e0bde070d0.zip chromium_src-ae849ea693102dd66d5f01d9ad6799e0bde070d0.tar.gz chromium_src-ae849ea693102dd66d5f01d9ad6799e0bde070d0.tar.bz2 |
On Windows, create a new TransportDIB::Handle struct which includes the file
mapping HANDLE and the source process ID. Duplicating the handle for the
remote process is done in TransportDIB::Map, instead of in various #ifdefs
scattered across the code. Also on windows, remove the struct for the
TransportDIB::Id which contained both the sequence number and the HANDLE and
replace it with just the sequence number.
Fix ThumbnailGenerator by mapping the TransportDIB on Windows and adding
a method to duplicate the file mapping handle before sending across the
channel.
Also, add a ScopedHandle and fix some handle leaks.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3834003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63232 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/render_process_host.h')
-rw-r--r-- | chrome/browser/renderer_host/render_process_host.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/chrome/browser/renderer_host/render_process_host.h b/chrome/browser/renderer_host/render_process_host.h index a5fd378..38cb5f2 100644 --- a/chrome/browser/renderer_host/render_process_host.h +++ b/chrome/browser/renderer_host/render_process_host.h @@ -216,12 +216,12 @@ class RenderProcessHost : public IPC::Channel::Sender, // Transport DIB functions --------------------------------------------------- - // Return the TransportDIB for the given id. On Linux, this can involve - // mapping shared memory. On Mac, the shared memory is created in the browser - // process and the cached metadata is returned. On Windows, this involves - // duplicating the handle from the remote process. The RenderProcessHost - // still owns the returned DIB. - virtual TransportDIB* GetTransportDIB(TransportDIB::Id dib_id) = 0; + // Return the TransportDIB for the given id. On Windows and Linux, this may + // involve mapping the TransportDIB. On Mac, the shared memory is created in + // the browser process and the cached metadata is returned. The + // RenderProcessHost still owns the returned DIB. + virtual TransportDIB* GetTransportDIB(TransportDIB::Id dib_id, + TransportDIB::Handle dib_handle) = 0; // Static management functions ----------------------------------------------- |