Chromium Code Reviews| Index: content/renderer/render_thread_impl.cc |
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
| index 67cd0eb351c6fd4153c3eaf5bc94f2a80b6e6c38..286fffea1b4f71b9e9927d9f8a7f4463aee3330b 100644 |
| --- a/content/renderer/render_thread_impl.cc |
| +++ b/content/renderer/render_thread_impl.cc |
| @@ -100,6 +100,7 @@ |
| #include "v8/include/v8.h" |
| #include "webkit/glue/webkit_glue.h" |
| #include "webkit/renderer/appcache/appcache_frontend_impl.h" |
| +#include "webkit/renderer/compositor_bindings/web_external_bitmap_impl.h" |
| #if defined(OS_WIN) |
| #include <windows.h> |
| @@ -235,6 +236,10 @@ void AddTraceEvent(char phase, |
| } |
| #endif |
| +scoped_ptr<base::SharedMemory> AllocateSharedMemoryFunction(size_t size) { |
| + return RenderThreadImpl::Get()->HostAllocateSharedMemoryBuffer(size); |
| +} |
| + |
| } // namespace |
| class RenderThreadImpl::GpuVDAContextLostCallback |
| @@ -726,6 +731,8 @@ void RenderThreadImpl::EnsureWebKitInitialized() { |
| if (GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) |
| ScheduleIdleHandler(kLongIdleHandlerDelayMs); |
| + |
| + webkit::SetSharedMemoryAllocationFunction(AllocateSharedMemoryFunction); |
| } |
| void RenderThreadImpl::RegisterSchemes() { |
| @@ -745,6 +752,7 @@ scoped_ptr<base::SharedMemory> |
| if (size > static_cast<size_t>(std::numeric_limits<int>::max())) |
| return scoped_ptr<base::SharedMemory>(); |
| +#if defined(OS_POSIX) |
|
piman
2013/07/01 22:45:01
Why the ifdef? This method was sucessfully used on
jbauman
2013/07/02 00:00:40
Sure, but I'd prefer not to have a round-trip to t
piman
2013/07/02 04:00:09
I see, that's an optimization. Maybe worth separat
jbauman
2013/07/02 20:16:19
Ok, I've removed this change and I'll do that in a
|
| base::SharedMemoryHandle handle; |
| bool success; |
| IPC::Message* message = |
| @@ -763,6 +771,13 @@ scoped_ptr<base::SharedMemory> |
| return scoped_ptr<base::SharedMemory>(); |
| return scoped_ptr<base::SharedMemory>(new base::SharedMemory(handle, false)); |
| +#else |
| + scoped_ptr<base::SharedMemory> memory(new base::SharedMemory); |
| + |
| + if (!memory->CreateAndMapAnonymous(size)) |
| + return scoped_ptr<base::SharedMemory>(); |
| + return memory.Pass(); |
| +#endif |
| } |
| void RenderThreadImpl::RegisterExtension(v8::Extension* extension) { |