summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjianli@chromium.org <jianli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-24 20:36:46 +0000
committerjianli@chromium.org <jianli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-24 20:36:46 +0000
commitedbfcaa99df9fce2d0f246217b118ee3e58d1146 (patch)
treebd22bd7d7a2fa50fc1fc5063cb6bcb112a5cb497
parent2250e2735b365e46112c0515cdaff4d338194e6f (diff)
downloadchromium_src-edbfcaa99df9fce2d0f246217b118ee3e58d1146.zip
chromium_src-edbfcaa99df9fce2d0f246217b118ee3e58d1146.tar.gz
chromium_src-edbfcaa99df9fce2d0f246217b118ee3e58d1146.tar.bz2
Fix the problem that BlobDispatcherHost is not hooked up in WorkerProcessHost.
BUG=none TEST=none Review URL: http://codereview.chromium.org/3472010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60513 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/worker_host/worker_process_host.cc10
-rw-r--r--chrome/browser/worker_host/worker_process_host.h2
-rw-r--r--chrome/common/webblobregistry_impl.cc1
-rw-r--r--webkit/tools/test_shell/test_shell_webblobregistry_impl.cc1
4 files changed, 11 insertions, 3 deletions
diff --git a/chrome/browser/worker_host/worker_process_host.cc b/chrome/browser/worker_host/worker_process_host.cc
index 1a9d167..32ce928 100644
--- a/chrome/browser/worker_host/worker_process_host.cc
+++ b/chrome/browser/worker_host/worker_process_host.cc
@@ -18,6 +18,7 @@
#include "chrome/browser/child_process_security_policy.h"
#include "chrome/browser/net/chrome_url_request_context.h"
#include "chrome/browser/profile.h"
+#include "chrome/browser/renderer_host/blob_dispatcher_host.h"
#include "chrome/browser/renderer_host/database_dispatcher_host.h"
#include "chrome/browser/renderer_host/render_view_host.h"
#include "chrome/browser/renderer_host/render_view_host_delegate.h"
@@ -63,7 +64,10 @@ WorkerProcessHost::WorkerProcessHost(
: BrowserChildProcessHost(WORKER_PROCESS, resource_dispatcher_host),
request_context_(request_context),
appcache_dispatcher_host_(
- new AppCacheDispatcherHost(request_context)) {
+ new AppCacheDispatcherHost(request_context)),
+ ALLOW_THIS_IN_INITIALIZER_LIST(blob_dispatcher_host_(
+ new BlobDispatcherHost(
+ this->id(), request_context->blob_storage_context()))) {
next_route_id_callback_.reset(NewCallbackWithReturnValue(
WorkerService::GetInstance(), &WorkerService::next_worker_route_id));
db_dispatcher_host_ = new DatabaseDispatcherHost(
@@ -76,6 +80,9 @@ WorkerProcessHost::~WorkerProcessHost() {
// Shut down the database dispatcher host.
db_dispatcher_host_->Shutdown();
+ // Shut down the blob dispatcher host.
+ blob_dispatcher_host_->Shutdown();
+
// Let interested observers know we are being deleted.
NotificationService::current()->Notify(
NotificationType::WORKER_PROCESS_HOST_SHUTDOWN,
@@ -233,6 +240,7 @@ void WorkerProcessHost::OnMessageReceived(const IPC::Message& message) {
bool handled =
appcache_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) ||
db_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) ||
+ blob_dispatcher_host_->OnMessageReceived(message, &msg_is_ok) ||
MessagePortDispatcher::GetInstance()->OnMessageReceived(
message, this, next_route_id_callback_.get(), &msg_is_ok);
diff --git a/chrome/browser/worker_host/worker_process_host.h b/chrome/browser/worker_host/worker_process_host.h
index 7845c92..e009813 100644
--- a/chrome/browser/worker_host/worker_process_host.h
+++ b/chrome/browser/worker_host/worker_process_host.h
@@ -18,6 +18,7 @@
#include "ipc/ipc_channel.h"
class AppCacheDispatcherHost;
+class BlobDispatcherHost;
class ChromeURLRequestContext;
class ChromeURLRequestContextGetter;
class DatabaseDispatcherHost;
@@ -195,6 +196,7 @@ class WorkerProcessHost : public BrowserChildProcessHost {
scoped_refptr<ChromeURLRequestContext> request_context_;
scoped_ptr<AppCacheDispatcherHost> appcache_dispatcher_host_;
scoped_refptr<DatabaseDispatcherHost> db_dispatcher_host_;
+ scoped_ptr<BlobDispatcherHost> blob_dispatcher_host_;
// A callback to create a routing id for the associated worker process.
scoped_ptr<CallbackWithReturnValue<int>::Type> next_route_id_callback_;
diff --git a/chrome/common/webblobregistry_impl.cc b/chrome/common/webblobregistry_impl.cc
index 90bfcbf..c28f168 100644
--- a/chrome/common/webblobregistry_impl.cc
+++ b/chrome/common/webblobregistry_impl.cc
@@ -7,7 +7,6 @@
#include "base/ref_counted.h"
#include "chrome/common/render_messages.h"
#include "third_party/WebKit/WebKit/chromium/public/WebBlobData.h"
-#include "third_party/WebKit/WebKit/chromium/public/WebBlobStorageData.h"
#include "third_party/WebKit/WebKit/chromium/public/WebString.h"
#include "third_party/WebKit/WebKit/chromium/public/WebURL.h"
#include "webkit/blob/blob_data.h"
diff --git a/webkit/tools/test_shell/test_shell_webblobregistry_impl.cc b/webkit/tools/test_shell/test_shell_webblobregistry_impl.cc
index a21a108..6a08252 100644
--- a/webkit/tools/test_shell/test_shell_webblobregistry_impl.cc
+++ b/webkit/tools/test_shell/test_shell_webblobregistry_impl.cc
@@ -7,7 +7,6 @@
#include "base/message_loop.h"
#include "googleurl/src/gurl.h"
#include "third_party/WebKit/WebKit/chromium/public/WebBlobData.h"
-#include "third_party/WebKit/WebKit/chromium/public/WebBlobStorageData.h"
#include "third_party/WebKit/WebKit/chromium/public/WebString.h"
#include "third_party/WebKit/WebKit/chromium/public/WebURL.h"
#include "webkit/blob/blob_data.h"