Index: content/browser/service_worker/embedded_worker_test_helper.cc |
diff --git a/content/browser/service_worker/embedded_worker_test_helper.cc b/content/browser/service_worker/embedded_worker_test_helper.cc |
index 67ca05af7263a6eb494457df9c369c179e4eb098..7501f5a942628c5ef3eede71485f032f6a3dc55d 100644 |
--- a/content/browser/service_worker/embedded_worker_test_helper.cc |
+++ b/content/browser/service_worker/embedded_worker_test_helper.cc |
@@ -8,22 +8,33 @@ |
#include "content/browser/service_worker/embedded_worker_instance.h" |
#include "content/browser/service_worker/embedded_worker_registry.h" |
#include "content/browser/service_worker/service_worker_context_core.h" |
+#include "content/browser/service_worker/service_worker_context_wrapper.h" |
#include "content/common/service_worker/embedded_worker_messages.h" |
#include "content/common/service_worker/service_worker_messages.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace content { |
-EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( |
- ServiceWorkerContextCore* context, |
- int mock_render_process_id) |
- : context_(context->AsWeakPtr()), |
+static bool AlwaysTrue(int process_id) { |
+ return true; |
+} |
+ |
+EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(int mock_render_process_id) |
+ : wrapper_(new ServiceWorkerContextWrapper(NULL)), |
next_thread_id_(0), |
weak_factory_(this) { |
+ wrapper_->Init(base::FilePath(), NULL); |
+ scoped_ptr<ServiceWorkerProcessManager> process_manager( |
+ new ServiceWorkerProcessManager(wrapper_)); |
+ process_manager->SetProcessRefcountOpsForTest(base::Bind(AlwaysTrue), |
+ base::Bind(AlwaysTrue)); |
+ wrapper_->context()->SetProcessManagerForTest(process_manager.Pass()); |
registry()->AddChildProcessSender(mock_render_process_id, this); |
} |
EmbeddedWorkerTestHelper::~EmbeddedWorkerTestHelper() { |
+ if (wrapper_) |
+ wrapper_->Shutdown(); |
} |
void EmbeddedWorkerTestHelper::SimulateAddProcessToWorker( |
@@ -58,6 +69,15 @@ bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) { |
return handled; |
} |
+ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() { |
+ return wrapper_->context(); |
+} |
+ |
+void EmbeddedWorkerTestHelper::ShutdownContext() { |
+ wrapper_->Shutdown(); |
+ wrapper_ = NULL; |
+} |
+ |
void EmbeddedWorkerTestHelper::OnStartWorker( |
int embedded_worker_id, |
int64 service_worker_version_id, |
@@ -219,8 +239,8 @@ void EmbeddedWorkerTestHelper::OnFetchEventStub( |
} |
EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { |
- DCHECK(context_); |
- return context_->embedded_worker_registry(); |
+ DCHECK(context()); |
+ return context()->embedded_worker_registry(); |
} |
} // namespace content |