summaryrefslogtreecommitdiffstats
path: root/remoting/host/desktop_session_agent.cc
diff options
context:
space:
mode:
authorerikchen <erikchen@chromium.org>2015-11-18 18:47:35 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-19 02:48:19 +0000
commit885da5130d948ba7f6d721888db7114a4f912789 (patch)
tree7fba90a6ef5626ce4389ab17a7630de57bd88c66 /remoting/host/desktop_session_agent.cc
parentafeecbf9c6549bdfb0e00492d206f47a3088b40f (diff)
downloadchromium_src-885da5130d948ba7f6d721888db7114a4f912789.zip
chromium_src-885da5130d948ba7f6d721888db7114a4f912789.tar.gz
chromium_src-885da5130d948ba7f6d721888db7114a4f912789.tar.bz2
mac: Some consumers of SharedMemory require a POSIX fd.
There are two implementations of SharedMemory on OSX: Mach and POSIX. Some consumers of SharedMemory currently require the POSIX implementation. The default is going to become Mach. This CL updates some consumers of SharedMemory to force the construction of a POSIX fd-backed SharedMemory region. BUG=466437 Review URL: https://codereview.chromium.org/1420503010 Cr-Commit-Position: refs/heads/master@{#360502}
Diffstat (limited to 'remoting/host/desktop_session_agent.cc')
-rw-r--r--remoting/host/desktop_session_agent.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/remoting/host/desktop_session_agent.cc b/remoting/host/desktop_session_agent.cc
index 23d05f2..2e486c5 100644
--- a/remoting/host/desktop_session_agent.cc
+++ b/remoting/host/desktop_session_agent.cc
@@ -74,8 +74,16 @@ class DesktopSessionAgent::SharedBuffer : public webrtc::SharedMemory {
size_t size,
int id) {
scoped_ptr<base::SharedMemory> memory(new base::SharedMemory());
+#if defined(OS_MACOSX) && !defined(OS_IOS)
+ // Remoting does not yet support Mach primitive backed SharedMemory, so
+ // force the underlying primitive to be a POSIX fd.
+ // https://crbug.com/547247.
+ if (!memory->CreateAndMapAnonymousPosix(size))
+ return nullptr;
+#else
if (!memory->CreateAndMapAnonymous(size))
return nullptr;
+#endif // defined(OS_MACOSX) && !defined(OS_IOS)
return make_scoped_ptr(new SharedBuffer(agent, memory.Pass(), size, id));
}