diff options
author | jrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-27 19:04:50 +0000 |
---|---|---|
committer | jrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-27 19:04:50 +0000 |
commit | 2c62b561f63579ac835af49ba233c56ca03417ca (patch) | |
tree | 83db5b274cfc8d90b126f473268eb78fcfb97e8d /chrome/renderer/render_thread.cc | |
parent | 3bfd411d26d35f46fd0b2b11e0849f0acc174e39 (diff) | |
download | chromium_src-2c62b561f63579ac835af49ba233c56ca03417ca.zip chromium_src-2c62b561f63579ac835af49ba233c56ca03417ca.tar.gz chromium_src-2c62b561f63579ac835af49ba233c56ca03417ca.tar.bz2 |
render_* work.
Review URL: http://codereview.chromium.org/18650
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8732 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/render_thread.cc')
-rw-r--r-- | chrome/renderer/render_thread.cc | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc index 08ccd27..d39800f 100644 --- a/chrome/renderer/render_thread.cc +++ b/chrome/renderer/render_thread.cc @@ -2,7 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#if defined(OS_WIN) #include <windows.h> +#endif #include <algorithm> #include "chrome/renderer/render_thread.h" @@ -11,7 +13,15 @@ #include "chrome/common/chrome_plugin_lib.h" #include "chrome/common/ipc_logging.h" #include "chrome/common/notification_service.h" +// TODO(port) +#if defined(OS_WIN) #include "chrome/plugin/plugin_channel.h" +#else +#include <vector> +#include "base/scoped_handle.h" +#include "chrome/plugin/plugin_channel_base.h" +#include "webkit/glue/weburlrequest.h" +#endif #include "chrome/renderer/net/render_dns_master.h" #include "chrome/renderer/render_process.h" #include "chrome/renderer/render_view.h" @@ -19,6 +29,7 @@ #include "chrome/renderer/visitedlink_slave.h" #include "webkit/glue/cache_manager.h" + RenderThread* g_render_thread; static const unsigned int kCacheStatsDelayMS = 2000 /* milliseconds */; @@ -31,8 +42,8 @@ static const size_t kStackSize = 1024 * 1024; RenderThread::RenderThread(const std::wstring& channel_name) : Thread("Chrome_RenderThread"), - channel_name_(channel_name), owner_loop_(MessageLoop::current()), + channel_name_(channel_name), visited_link_slave_(NULL), user_script_slave_(NULL), render_dns_master_(NULL), @@ -71,7 +82,12 @@ void RenderThread::RemoveFilter(IPC::ChannelProxy::MessageFilter* filter) { } void RenderThread::Resolve(const char* name, size_t length) { +// TODO(port) +#if defined(OS_WIN) return render_dns_master_->Resolve(name, length); +#else + NOTIMPLEMENTED(); +#endif } void RenderThread::AddRoute(int32 routing_id, @@ -101,13 +117,20 @@ void RenderThread::Init() { IPC::Channel::MODE_CLIENT, this, NULL, owner_loop_, true, RenderProcess::GetShutDownEvent())); +#if defined(OS_WIN) // The renderer thread should wind-up COM. CoInitialize(0); +#endif visited_link_slave_ = new VisitedLinkSlave(); user_script_slave_ = new UserScriptSlave(); +// TODO(port) +#if defined(OS_WIN) render_dns_master_.reset(new RenderDnsMaster()); +#else + NOTIMPLEMENTED(); +#endif #ifdef IPC_MESSAGE_LOG_ENABLED IPC::Logging::current()->SetIPCSender(this); @@ -122,8 +145,11 @@ void RenderThread::CleanUp() { // it caches a pointer to this thread. channel_.reset(); +// TODO(port) +#if defined(OS_WIN) // Clean up plugin channels before this thread goes away. PluginChannelBase::CleanupChannels(); +#endif #ifdef IPC_MESSAGE_LOG_ENABLED IPC::Logging::current()->SetIPCSender(NULL); @@ -137,7 +163,9 @@ void RenderThread::CleanUp() { delete user_script_slave_; user_script_slave_ = NULL; +#if defined(OS_WIN) CoUninitialize(); +#endif } void RenderThread::OnUpdateVisitedLinks(base::SharedMemoryHandle table) { @@ -160,7 +188,11 @@ void RenderThread::OnMessageReceived(const IPC::Message& msg) { IPC_BEGIN_MESSAGE_MAP(RenderThread, msg) IPC_MESSAGE_HANDLER(ViewMsg_VisitedLink_NewTable, OnUpdateVisitedLinks) IPC_MESSAGE_HANDLER(ViewMsg_SetNextPageID, OnSetNextPageID) + // TODO(port): removed from render_messages_internal.h; + // is there a new non-windows message I should add here? +#if defined(OS_WIN) IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) +#endif IPC_MESSAGE_HANDLER(ViewMsg_SetCacheCapacities, OnSetCacheCapacities) IPC_MESSAGE_HANDLER(ViewMsg_GetCacheResourceStats, OnGetCacheResourceStats) @@ -192,9 +224,14 @@ void RenderThread::OnPluginMessage(const FilePath& plugin_path, void RenderThread::OnSetNextPageID(int32 next_page_id) { // This should only be called at process initialization time, so we shouldn't // have to worry about thread-safety. + // TODO(port) +#if defined(OS_WIN) RenderView::SetNextPageID(next_page_id); +#endif } +// TODO(port) +#if defined(OS_WIN) void RenderThread::OnCreateNewView(HWND parent_hwnd, HANDLE modal_dialog_event, const WebPreferences& webkit_prefs, @@ -207,23 +244,39 @@ void RenderThread::OnCreateNewView(HWND parent_hwnd, this, parent_hwnd, waitable_event, MSG_ROUTING_NONE, webkit_prefs, new SharedRenderViewCounter(0), view_id); } +#endif void RenderThread::OnSetCacheCapacities(size_t min_dead_capacity, size_t max_dead_capacity, size_t capacity) { +#if defined(OS_WIN) CacheManager::SetCapacities(min_dead_capacity, max_dead_capacity, capacity); +#else + // TODO(port) + NOTIMPLEMENTED(); +#endif } void RenderThread::OnGetCacheResourceStats() { +#if defined(OS_WIN) CacheManager::ResourceTypeStats stats; CacheManager::GetResourceTypeStats(&stats); Send(new ViewHostMsg_ResourceTypeStats(stats)); +#else + // TODO(port) + NOTIMPLEMENTED(); +#endif } void RenderThread::InformHostOfCacheStats() { +#if defined(OS_WIN) CacheManager::UsageStats stats; CacheManager::GetUsageStats(&stats); Send(new ViewHostMsg_UpdatedCacheStats(stats)); +#else + // TODO(port) + NOTIMPLEMENTED(); +#endif } void RenderThread::InformHostOfCacheStatsLater() { |