summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-07 22:39:31 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-07 22:39:31 +0000
commit00614a87478e404184cab3a521ec6fd1cdbd5b8e (patch)
tree942a0e06f02abbbc2403fe5b6e34241631e1164d
parent8585f5c478e5d716a31f444330f3590a0702be6f (diff)
downloadchromium_src-00614a87478e404184cab3a521ec6fd1cdbd5b8e.zip
chromium_src-00614a87478e404184cab3a521ec6fd1cdbd5b8e.tar.gz
chromium_src-00614a87478e404184cab3a521ec6fd1cdbd5b8e.tar.bz2
Move HostAllocateSharedMemoryBuffer to content::RenderThread now that we have an interface.
BUG=98716 Review URL: http://codereview.chromium.org/8199018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104585 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/renderer/mock_render_thread.cc25
-rw-r--r--chrome/renderer/mock_render_thread.h5
-rw-r--r--chrome/renderer/print_web_view_helper.cc3
-rw-r--r--chrome/renderer/print_web_view_helper_linux.cc3
-rw-r--r--content/public/renderer/render_thread.h6
-rw-r--r--content/renderer/render_thread_impl.cc7
-rw-r--r--content/renderer/render_thread_impl.h3
-rw-r--r--content/renderer/render_view.cc7
-rw-r--r--content/renderer/render_view.h5
9 files changed, 33 insertions, 31 deletions
diff --git a/chrome/renderer/mock_render_thread.cc b/chrome/renderer/mock_render_thread.cc
index e20e7cc..e36047e 100644
--- a/chrome/renderer/mock_render_thread.cc
+++ b/chrome/renderer/mock_render_thread.cc
@@ -116,6 +116,18 @@ void MockRenderThread::EnsureWebKitInitialized() {
void MockRenderThread::RecordUserMetrics(const std::string& action) {
}
+base::SharedMemoryHandle MockRenderThread::HostAllocateSharedMemoryBuffer(
+ uint32 buffer_size) {
+ base::SharedMemory shared_buf;
+ if (!shared_buf.CreateAndMapAnonymous(buffer_size)) {
+ NOTREACHED() << "Cannot map shared memory buffer";
+ return base::SharedMemory::NULLHandle();
+ }
+ base::SharedMemoryHandle handle;
+ shared_buf.GiveToProcess(base::GetCurrentProcessHandle(), &handle);
+ return handle;
+}
+
void MockRenderThread::RegisterExtension(v8::Extension* extension) {
}
@@ -177,8 +189,6 @@ bool MockRenderThread::OnMessageReceived(const IPC::Message& msg) {
#if defined(OS_WIN)
IPC_MESSAGE_HANDLER(PrintHostMsg_DuplicateSection, OnDuplicateSection)
#endif
- IPC_MESSAGE_HANDLER(ViewHostMsg_AllocateSharedMemoryBuffer,
- OnAllocateSharedMemoryBuffer)
#if defined(OS_CHROMEOS)
IPC_MESSAGE_HANDLER(PrintHostMsg_AllocateTempFileForPrinting,
OnAllocateTempFileForPrinting)
@@ -215,17 +225,6 @@ void MockRenderThread::OnDuplicateSection(
}
#endif // defined(OS_WIN)
-void MockRenderThread::OnAllocateSharedMemoryBuffer(
- uint32 buffer_size, base::SharedMemoryHandle* handle) {
- base::SharedMemory shared_buf;
- if (!shared_buf.CreateAndMapAnonymous(buffer_size)) {
- *handle = base::SharedMemory::NULLHandle();
- NOTREACHED() << "Cannot map shared memory buffer";
- return;
- }
- shared_buf.GiveToProcess(base::GetCurrentProcessHandle(), handle);
-}
-
#if defined(OS_CHROMEOS)
void MockRenderThread::OnAllocateTempFileForPrinting(
base::FileDescriptor* renderer_fd,
diff --git a/chrome/renderer/mock_render_thread.h b/chrome/renderer/mock_render_thread.h
index b697f2b..b0beefd 100644
--- a/chrome/renderer/mock_render_thread.h
+++ b/chrome/renderer/mock_render_thread.h
@@ -62,6 +62,8 @@ class MockRenderThread : public content::RenderThread {
virtual void WidgetRestored() OVERRIDE;
virtual void EnsureWebKitInitialized() OVERRIDE;
virtual void RecordUserMetrics(const std::string& action) OVERRIDE;
+ virtual base::SharedMemoryHandle HostAllocateSharedMemoryBuffer(
+ uint32 buffer_size) OVERRIDE;
virtual void RegisterExtension(v8::Extension* extension) OVERRIDE;
virtual bool IsRegisteredExtension(
const std::string& v8_extension_name) const OVERRIDE;
@@ -128,9 +130,6 @@ class MockRenderThread : public content::RenderThread {
base::SharedMemoryHandle* browser_handle);
#endif
- void OnAllocateSharedMemoryBuffer(uint32 buffer_size,
- base::SharedMemoryHandle* handle);
-
#if defined(OS_CHROMEOS)
void OnAllocateTempFileForPrinting(base::FileDescriptor* renderer_fd,
int* browser_fd);
diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc
index f278ef8..775c3b9 100644
--- a/chrome/renderer/print_web_view_helper.cc
+++ b/chrome/renderer/print_web_view_helper.cc
@@ -16,6 +16,7 @@
#include "chrome/common/render_messages.h"
#include "chrome/common/url_constants.h"
#include "chrome/renderer/prerender/prerender_helper.h"
+#include "content/public/renderer/render_thread.h"
#include "content/renderer/render_view.h"
#include "grit/generated_resources.h"
#include "printing/metafile_impl.h"
@@ -1250,7 +1251,7 @@ bool PrintWebViewHelper::CopyMetafileDataToSharedMem(
base::SharedMemoryHandle* shared_mem_handle) {
uint32 buf_size = metafile->GetDataSize();
base::SharedMemoryHandle mem_handle =
- render_view()->HostAllocateSharedMemoryBuffer(buf_size);
+ content::RenderThread::Get()->HostAllocateSharedMemoryBuffer(buf_size);
if (base::SharedMemory::IsHandleValid(mem_handle)) {
base::SharedMemory shared_buf(mem_handle, false);
if (shared_buf.Map(buf_size)) {
diff --git a/chrome/renderer/print_web_view_helper_linux.cc b/chrome/renderer/print_web_view_helper_linux.cc
index 4d03b35..964dcdf 100644
--- a/chrome/renderer/print_web_view_helper_linux.cc
+++ b/chrome/renderer/print_web_view_helper_linux.cc
@@ -9,6 +9,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/metrics/histogram.h"
#include "chrome/common/print_messages.h"
+#include "content/public/renderer/render_thread.h"
#include "content/renderer/render_view.h"
#include "printing/metafile.h"
#include "printing/metafile_impl.h"
@@ -95,7 +96,7 @@ bool PrintWebViewHelper::PrintPages(const PrintMsg_PrintPages_Params& params,
printed_page_params.document_cookie = params.params.document_cookie;
base::SharedMemoryHandle shared_mem_handle =
- render_view()->HostAllocateSharedMemoryBuffer(buf_size);
+ content::RenderThread::Get()->HostAllocateSharedMemoryBuffer(buf_size);
if (!base::SharedMemory::IsHandleValid(shared_mem_handle)) {
NOTREACHED() << "AllocateSharedMemoryBuffer returned bad handle";
return false;
diff --git a/content/public/renderer/render_thread.h b/content/public/renderer/render_thread.h
index 3f1e964..a7659e4 100644
--- a/content/public/renderer/render_thread.h
+++ b/content/public/renderer/render_thread.h
@@ -6,6 +6,7 @@
#define CONTENT_PUBLIC_RENDERER_RENDER_THREAD_H_
#include "base/basictypes.h"
+#include "base/shared_memory.h"
#include "content/common/content_export.h"
#include "ipc/ipc_channel_proxy.h"
@@ -68,6 +69,11 @@ class CONTENT_EXPORT RenderThread : public IPC::Message::Sender {
// Helper function to send over a string to be recorded by user metrics
virtual void RecordUserMetrics(const std::string& action) = 0;
+ // Asks the host to create a block of shared memory for the renderer.
+ // The shared memory handle allocated by the host is returned back.
+ virtual base::SharedMemoryHandle HostAllocateSharedMemoryBuffer(
+ uint32 buffer_size) = 0;
+
// Registers the given V8 extension with WebKit.
virtual void RegisterExtension(v8::Extension* extension) = 0;
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 556ffaa..7ffa01f 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -517,6 +517,13 @@ void RenderThreadImpl::RecordUserMetrics(const std::string& action) {
Send(new ViewHostMsg_UserMetricsRecordAction(action));
}
+base::SharedMemoryHandle RenderThreadImpl::HostAllocateSharedMemoryBuffer(
+ uint32 buffer_size) {
+ base::SharedMemoryHandle mem_handle;
+ Send(new ViewHostMsg_AllocateSharedMemoryBuffer(buffer_size, &mem_handle));
+ return mem_handle;
+}
+
void RenderThreadImpl::RegisterExtension(v8::Extension* extension) {
WebScriptController::registerExtension(extension);
v8_extensions_.insert(extension->name());
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 7da8d30..092dcb4 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -11,7 +11,6 @@
#include <vector>
#include "base/observer_list.h"
-#include "base/shared_memory.h"
#include "base/time.h"
#include "base/timer.h"
#include "build/build_config.h"
@@ -110,6 +109,8 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
virtual void WidgetRestored() OVERRIDE;
virtual void EnsureWebKitInitialized() OVERRIDE;
virtual void RecordUserMetrics(const std::string& action) OVERRIDE;
+ virtual base::SharedMemoryHandle HostAllocateSharedMemoryBuffer(
+ uint32 buffer_size) OVERRIDE;
virtual void RegisterExtension(v8::Extension* extension) OVERRIDE;
virtual bool IsRegisteredExtension(
const std::string& v8_extension_name) const OVERRIDE;
diff --git a/content/renderer/render_view.cc b/content/renderer/render_view.cc
index e482ac4..a9bcb65 100644
--- a/content/renderer/render_view.cc
+++ b/content/renderer/render_view.cc
@@ -567,13 +567,6 @@ bool RenderView::GetPluginInfo(const GURL& url,
return found;
}
-base::SharedMemoryHandle RenderView::HostAllocateSharedMemoryBuffer(
- uint32 buffer_size) {
- base::SharedMemoryHandle mem_handle;
- Send(new ViewHostMsg_AllocateSharedMemoryBuffer(buffer_size, &mem_handle));
- return mem_handle;
-}
-
bool RenderView::OnMessageReceived(const IPC::Message& message) {
WebFrame* main_frame = webview() ? webview()->mainFrame() : NULL;
if (main_frame)
diff --git a/content/renderer/render_view.h b/content/renderer/render_view.h
index 682707b..4f229d34 100644
--- a/content/renderer/render_view.h
+++ b/content/renderer/render_view.h
@@ -350,11 +350,6 @@ class RenderView : public RenderWidget,
webkit::WebPluginInfo* plugin_info,
std::string* actual_mime_type);
- // Asks the host to create a block of shared memory for the renderer.
- // The shared memory handle allocated by the host is returned back.
- CONTENT_EXPORT base::SharedMemoryHandle HostAllocateSharedMemoryBuffer(
- uint32 buffer_size);
-
// IPC::Channel::Listener implementation -------------------------------------
virtual bool OnMessageReceived(const IPC::Message& msg);