Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: content/renderer/render_thread_impl.cc

Issue 17859002: Allow WebExternalTextureLayers to receive a bitmap along with a mailbox (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use ShareMemory path Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698