| Index: chrome/renderer/render_thread.cc
|
| ===================================================================
|
| --- chrome/renderer/render_thread.cc (revision 10468)
|
| +++ chrome/renderer/render_thread.cc (working copy)
|
| @@ -29,10 +29,10 @@
|
| #include "chrome/renderer/net/render_dns_master.h"
|
| #include "chrome/renderer/render_process.h"
|
| #include "chrome/renderer/render_view.h"
|
| +#include "chrome/renderer/renderer_webkitclient_impl.h"
|
| #include "chrome/renderer/user_script_slave.h"
|
| #include "chrome/renderer/visitedlink_slave.h"
|
| #include "webkit/glue/cache_manager.h"
|
| -#include "webkit/glue/webkit_client_impl.h"
|
|
|
| #include "WebKit.h"
|
|
|
| @@ -49,20 +49,13 @@
|
| RenderThread::RenderThread()
|
| : ChildThread(
|
| base::Thread::Options(RenderProcess::InProcessPlugins() ?
|
| - MessageLoop::TYPE_UI : MessageLoop::TYPE_DEFAULT, kStackSize)),
|
| - visited_link_slave_(NULL),
|
| - user_script_slave_(NULL),
|
| - render_dns_master_(NULL) {
|
| + MessageLoop::TYPE_UI : MessageLoop::TYPE_DEFAULT, kStackSize)) {
|
| }
|
|
|
| RenderThread::RenderThread(const std::wstring& channel_name)
|
| : ChildThread(
|
| base::Thread::Options(RenderProcess::InProcessPlugins() ?
|
| - MessageLoop::TYPE_UI : MessageLoop::TYPE_DEFAULT, kStackSize)),
|
| - visited_link_slave_(NULL),
|
| - user_script_slave_(NULL),
|
| - render_dns_master_(NULL),
|
| - renderer_histogram_snapshots_(NULL) {
|
| + MessageLoop::TYPE_UI : MessageLoop::TYPE_DEFAULT, kStackSize)) {
|
| SetChannelName(channel_name);
|
| }
|
|
|
| @@ -83,50 +76,54 @@
|
| }
|
|
|
| void RenderThread::Resolve(const char* name, size_t length) {
|
| - return render_dns_master_->Resolve(name, length);
|
| + return dns_master_->Resolve(name, length);
|
| }
|
|
|
| void RenderThread::SendHistograms() {
|
| - return renderer_histogram_snapshots_->SendHistograms();
|
| + return histogram_snapshots_->SendHistograms();
|
| }
|
|
|
| void RenderThread::Init() {
|
| - ChildThread::Init();
|
| - notification_service_.reset(new NotificationService);
|
| - cache_stats_factory_.reset(
|
| - new ScopedRunnableMethodFactory<RenderThread>(this));
|
| -
|
| + // TODO(darin): Why do we need COM here? This is probably bogus.
|
| #if defined(OS_WIN)
|
| // The renderer thread should wind-up COM.
|
| CoInitialize(0);
|
| #endif
|
|
|
| - webkit_client_impl_.reset(new webkit_glue::WebKitClientImpl);
|
| + ChildThread::Init();
|
| + notification_service_.reset(new NotificationService);
|
| + cache_stats_factory_.reset(
|
| + new ScopedRunnableMethodFactory<RenderThread>(this));
|
| +
|
| + webkit_client_impl_.reset(new RendererWebKitClientImpl);
|
| WebKit::initialize(webkit_client_impl_.get());
|
|
|
| - visited_link_slave_ = new VisitedLinkSlave();
|
| - user_script_slave_ = new UserScriptSlave();
|
| - render_dns_master_.reset(new RenderDnsMaster());
|
| - renderer_histogram_snapshots_.reset(new RendererHistogramSnapshots());
|
| + visited_link_slave_.reset(new VisitedLinkSlave());
|
| + user_script_slave_.reset(new UserScriptSlave());
|
| + dns_master_.reset(new RenderDnsMaster());
|
| + histogram_snapshots_.reset(new RendererHistogramSnapshots());
|
| }
|
|
|
| void RenderThread::CleanUp() {
|
| + // Shutdown in reverse of the initialization order.
|
| +
|
| + histogram_snapshots_.reset();
|
| + dns_master_.reset();
|
| + user_script_slave_.reset();
|
| + visited_link_slave_.reset();
|
| +
|
| + WebKit::shutdown();
|
| +
|
| + notification_service_.reset();
|
| +
|
| ChildThread::CleanUp();
|
|
|
| -// TODO(port)
|
| + // TODO(port)
|
| #if defined(OS_WIN)
|
| // Clean up plugin channels before this thread goes away.
|
| PluginChannelBase::CleanupChannels();
|
| #endif
|
|
|
| - notification_service_.reset();
|
| -
|
| - delete visited_link_slave_;
|
| - visited_link_slave_ = NULL;
|
| -
|
| - delete user_script_slave_;
|
| - user_script_slave_ = NULL;
|
| -
|
| #if defined(OS_WIN)
|
| CoUninitialize();
|
| #endif
|
|
|