summaryrefslogtreecommitdiffstats
path: root/content/browser/service_worker
diff options
context:
space:
mode:
authorjsbell@chromium.org <jsbell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-02 18:13:25 +0000
committerjsbell@chromium.org <jsbell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-02 18:13:25 +0000
commit7b47eec88cd017d1a202a2a34309c855cf3b0639 (patch)
tree0f8ae12188a7f56eedb609ba4874c050a116ecb5 /content/browser/service_worker
parent8814a7a9781d8a0ba026665f44aa6395a60d9d97 (diff)
downloadchromium_src-7b47eec88cd017d1a202a2a34309c855cf3b0639.zip
chromium_src-7b47eec88cd017d1a202a2a34309c855cf3b0639.tar.gz
chromium_src-7b47eec88cd017d1a202a2a34309c855cf3b0639.tar.bz2
Revert 267850 "ServiceWorker: Create sequenced task runner for d..."
unit_tests failing a DCHECK, e.g.: out/Debug/unit_tests --gtest_filter='*BrowsingData*.*' [32145:32145:0502/110725:1563688322251:FATAL:ref_counted.cc(32)] Check failed: !in_dtor_. #0 0x7f45e6b227de base::debug::StackTrace::StackTrace() #1 0x7f45e6bb0a85 logging::LogMessage::~LogMessage() #2 0x7f45e6bcc063 base::subtle::RefCountedThreadSafeBase::AddRef() #3 0x7f45da6ad895 base::RefCountedThreadSafe<>::AddRef() #4 0x7f45daec3be2 scoped_refptr<>::scoped_refptr() #5 0x7f45daf0048b content::ServiceWorkerStorage::ServiceWorkerStorage() #6 0x7f45daea61e8 content::ServiceWorkerContextCore::ServiceWorkerContextCore() ... > ServiceWorker: Create sequenced task runner for database > > > BUG=369464 > TEST=pass all existing tests (no behavioral change) > NOTRY=true > > Review URL: https://codereview.chromium.org/265743012 TBR=nhiroki@chromium.org Review URL: https://codereview.chromium.org/262973002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267870 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/service_worker')
-rw-r--r--content/browser/service_worker/embedded_worker_test_helper.cc4
-rw-r--r--content/browser/service_worker/service_worker_context_core.cc5
-rw-r--r--content/browser/service_worker/service_worker_context_core.h2
-rw-r--r--content/browser/service_worker/service_worker_context_wrapper.cc54
-rw-r--r--content/browser/service_worker/service_worker_context_wrapper.h9
-rw-r--r--content/browser/service_worker/service_worker_provider_host_unittest.cc1
-rw-r--r--content/browser/service_worker/service_worker_registration_unittest.cc1
-rw-r--r--content/browser/service_worker/service_worker_storage.cc4
-rw-r--r--content/browser/service_worker/service_worker_storage.h6
-rw-r--r--content/browser/service_worker/service_worker_storage_unittest.cc1
10 files changed, 19 insertions, 68 deletions
diff --git a/content/browser/service_worker/embedded_worker_test_helper.cc b/content/browser/service_worker/embedded_worker_test_helper.cc
index e6f8ce5..698e260d 100644
--- a/content/browser/service_worker/embedded_worker_test_helper.cc
+++ b/content/browser/service_worker/embedded_worker_test_helper.cc
@@ -23,9 +23,7 @@ EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(int mock_render_process_id)
: wrapper_(new ServiceWorkerContextWrapper(NULL)),
next_thread_id_(0),
weak_factory_(this) {
- wrapper_->InitForTesting(base::FilePath(),
- base::MessageLoopProxy::current(),
- NULL);
+ wrapper_->Init(base::FilePath(), NULL);
scoped_ptr<ServiceWorkerProcessManager> process_manager(
new ServiceWorkerProcessManager(wrapper_));
process_manager->SetProcessRefcountOpsForTest(base::Bind(AlwaysTrue),
diff --git a/content/browser/service_worker/service_worker_context_core.cc b/content/browser/service_worker/service_worker_context_core.cc
index 7a8e386..d654661 100644
--- a/content/browser/service_worker/service_worker_context_core.cc
+++ b/content/browser/service_worker/service_worker_context_core.cc
@@ -77,12 +77,11 @@ void ServiceWorkerContextCore::ProviderHostIterator::Initialize() {
ServiceWorkerContextCore::ServiceWorkerContextCore(
const base::FilePath& path,
- base::SequencedTaskRunner* database_task_runner,
quota::QuotaManagerProxy* quota_manager_proxy,
ObserverListThreadSafe<ServiceWorkerContextObserver>* observer_list,
scoped_ptr<ServiceWorkerProcessManager> process_manager)
- : storage_(new ServiceWorkerStorage(
- path, AsWeakPtr(), database_task_runner, quota_manager_proxy)),
+ : storage_(
+ new ServiceWorkerStorage(path, AsWeakPtr(), quota_manager_proxy)),
embedded_worker_registry_(new EmbeddedWorkerRegistry(AsWeakPtr())),
job_coordinator_(new ServiceWorkerJobCoordinator(AsWeakPtr())),
process_manager_(process_manager.Pass()),
diff --git a/content/browser/service_worker/service_worker_context_core.h b/content/browser/service_worker/service_worker_context_core.h
index 54dcc9d..55d64ae 100644
--- a/content/browser/service_worker/service_worker_context_core.h
+++ b/content/browser/service_worker/service_worker_context_core.h
@@ -25,7 +25,6 @@ class GURL;
namespace base {
class FilePath;
-class SequencedTaskRunner;
}
namespace quota {
@@ -87,7 +86,6 @@ class CONTENT_EXPORT ServiceWorkerContextCore
// be called on the thread which called AddObserver() of |observer_list|.
ServiceWorkerContextCore(
const base::FilePath& user_data_directory,
- base::SequencedTaskRunner* database_task_runner,
quota::QuotaManagerProxy* quota_manager_proxy,
ObserverListThreadSafe<ServiceWorkerContextObserver>* observer_list,
scoped_ptr<ServiceWorkerProcessManager> process_manager);
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
index 4acbed5..e6a9004 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.cc
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -5,7 +5,6 @@
#include "content/browser/service_worker/service_worker_context_wrapper.h"
#include "base/files/file_path.h"
-#include "base/threading/sequenced_worker_pool.h"
#include "content/browser/service_worker/service_worker_context_core.h"
#include "content/browser/service_worker/service_worker_context_observer.h"
#include "content/browser/service_worker/service_worker_process_manager.h"
@@ -27,12 +26,22 @@ ServiceWorkerContextWrapper::~ServiceWorkerContextWrapper() {
void ServiceWorkerContextWrapper::Init(
const base::FilePath& user_data_directory,
quota::QuotaManagerProxy* quota_manager_proxy) {
- base::SequencedTaskRunner* database_task_runner =
- BrowserThread::GetBlockingPool()->
- GetSequencedTaskRunnerWithShutdownBehavior(
- BrowserThread::GetBlockingPool()->GetSequenceToken(),
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
- InitInternal(user_data_directory, database_task_runner, quota_manager_proxy);
+ if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
+ BrowserThread::PostTask(
+ BrowserThread::IO,
+ FROM_HERE,
+ base::Bind(&ServiceWorkerContextWrapper::Init,
+ this,
+ user_data_directory,
+ make_scoped_refptr(quota_manager_proxy)));
+ return;
+ }
+ DCHECK(!context_core_);
+ context_core_.reset(new ServiceWorkerContextCore(
+ user_data_directory,
+ quota_manager_proxy,
+ observer_list_,
+ make_scoped_ptr(new ServiceWorkerProcessManager(this))));
}
void ServiceWorkerContextWrapper::Shutdown() {
@@ -128,35 +137,4 @@ void ServiceWorkerContextWrapper::RemoveObserver(
observer_list_->RemoveObserver(observer);
}
-void ServiceWorkerContextWrapper::InitForTesting(
- const base::FilePath& user_data_directory,
- base::SequencedTaskRunner* database_task_runner,
- quota::QuotaManagerProxy* quota_manager_proxy) {
- InitInternal(user_data_directory, database_task_runner, quota_manager_proxy);
-}
-
-void ServiceWorkerContextWrapper::InitInternal(
- const base::FilePath& user_data_directory,
- base::SequencedTaskRunner* database_task_runner,
- quota::QuotaManagerProxy* quota_manager_proxy) {
- if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
- BrowserThread::PostTask(
- BrowserThread::IO,
- FROM_HERE,
- base::Bind(&ServiceWorkerContextWrapper::InitInternal,
- this,
- user_data_directory,
- make_scoped_refptr(database_task_runner),
- make_scoped_refptr(quota_manager_proxy)));
- return;
- }
- DCHECK(!context_core_);
- context_core_.reset(new ServiceWorkerContextCore(
- user_data_directory,
- database_task_runner,
- quota_manager_proxy,
- observer_list_,
- make_scoped_ptr(new ServiceWorkerProcessManager(this))));
-}
-
} // namespace content
diff --git a/content/browser/service_worker/service_worker_context_wrapper.h b/content/browser/service_worker/service_worker_context_wrapper.h
index 6b5b841..6d53549 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.h
+++ b/content/browser/service_worker/service_worker_context_wrapper.h
@@ -16,7 +16,6 @@
namespace base {
class FilePath;
-class SequencedTaskRunner;
}
namespace quota {
@@ -62,17 +61,9 @@ class CONTENT_EXPORT ServiceWorkerContextWrapper
private:
friend class base::RefCountedThreadSafe<ServiceWorkerContextWrapper>;
- friend class EmbeddedWorkerTestHelper;
friend class ServiceWorkerProcessManager;
virtual ~ServiceWorkerContextWrapper();
- void InitForTesting(const base::FilePath& user_data_directory,
- base::SequencedTaskRunner* database_task_runner,
- quota::QuotaManagerProxy* quota_manager_proxy);
- void InitInternal(const base::FilePath& user_data_directory,
- base::SequencedTaskRunner* database_task_runner,
- quota::QuotaManagerProxy* quota_manager_proxy);
-
const scoped_refptr<ObserverListThreadSafe<ServiceWorkerContextObserver> >
observer_list_;
// Cleared in Shutdown():
diff --git a/content/browser/service_worker/service_worker_provider_host_unittest.cc b/content/browser/service_worker/service_worker_provider_host_unittest.cc
index 5da54fb..03c513a 100644
--- a/content/browser/service_worker/service_worker_provider_host_unittest.cc
+++ b/content/browser/service_worker/service_worker_provider_host_unittest.cc
@@ -25,7 +25,6 @@ class ServiceWorkerProviderHostTest : public testing::Test {
virtual void SetUp() OVERRIDE {
context_.reset(new ServiceWorkerContextCore(
base::FilePath(),
- base::MessageLoopProxy::current(),
NULL,
NULL,
scoped_ptr<ServiceWorkerProcessManager>()));
diff --git a/content/browser/service_worker/service_worker_registration_unittest.cc b/content/browser/service_worker/service_worker_registration_unittest.cc
index f0c546f..d1015b2 100644
--- a/content/browser/service_worker/service_worker_registration_unittest.cc
+++ b/content/browser/service_worker/service_worker_registration_unittest.cc
@@ -23,7 +23,6 @@ class ServiceWorkerRegistrationTest : public testing::Test {
virtual void SetUp() OVERRIDE {
context_.reset(new ServiceWorkerContextCore(
base::FilePath(),
- base::MessageLoopProxy::current(),
NULL,
NULL,
scoped_ptr<ServiceWorkerProcessManager>()));
diff --git a/content/browser/service_worker/service_worker_storage.cc b/content/browser/service_worker/service_worker_storage.cc
index 692e9be..7d1712f 100644
--- a/content/browser/service_worker/service_worker_storage.cc
+++ b/content/browser/service_worker/service_worker_storage.cc
@@ -5,9 +5,7 @@
#include "content/browser/service_worker/service_worker_storage.h"
#include <string>
-
#include "base/message_loop/message_loop.h"
-#include "base/sequenced_task_runner.h"
#include "content/browser/service_worker/service_worker_context_core.h"
#include "content/browser/service_worker/service_worker_info.h"
#include "content/browser/service_worker/service_worker_registration.h"
@@ -48,14 +46,12 @@ const base::FilePath::CharType kServiceWorkerDirectory[] =
ServiceWorkerStorage::ServiceWorkerStorage(
const base::FilePath& path,
base::WeakPtr<ServiceWorkerContextCore> context,
- base::SequencedTaskRunner* database_task_runner,
quota::QuotaManagerProxy* quota_manager_proxy)
: last_registration_id_(0),
last_version_id_(0),
last_resource_id_(0),
simulated_lazy_initted_(false),
context_(context),
- database_task_runner_(database_task_runner),
quota_manager_proxy_(quota_manager_proxy) {
if (!path.empty())
path_ = path.Append(kServiceWorkerDirectory);
diff --git a/content/browser/service_worker/service_worker_storage.h b/content/browser/service_worker/service_worker_storage.h
index ee524e0..3932a72 100644
--- a/content/browser/service_worker/service_worker_storage.h
+++ b/content/browser/service_worker/service_worker_storage.h
@@ -18,10 +18,6 @@
#include "content/common/service_worker/service_worker_status_code.h"
#include "url/gurl.h"
-namespace base {
-class SequencedTaskRunner;
-}
-
namespace quota {
class QuotaManagerProxy;
}
@@ -50,7 +46,6 @@ class CONTENT_EXPORT ServiceWorkerStorage {
ServiceWorkerStorage(const base::FilePath& path,
base::WeakPtr<ServiceWorkerContextCore> context,
- base::SequencedTaskRunner* database_task_runner,
quota::QuotaManagerProxy* quota_manager_proxy);
~ServiceWorkerStorage();
@@ -142,7 +137,6 @@ class CONTENT_EXPORT ServiceWorkerStorage {
base::FilePath path_;
base::WeakPtr<ServiceWorkerContextCore> context_;
- scoped_refptr<base::SequencedTaskRunner> database_task_runner_;
scoped_refptr<quota::QuotaManagerProxy> quota_manager_proxy_;
DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStorage);
diff --git a/content/browser/service_worker/service_worker_storage_unittest.cc b/content/browser/service_worker/service_worker_storage_unittest.cc
index 6d8b30f..80ee8af 100644
--- a/content/browser/service_worker/service_worker_storage_unittest.cc
+++ b/content/browser/service_worker/service_worker_storage_unittest.cc
@@ -74,7 +74,6 @@ class ServiceWorkerStorageTest : public testing::Test {
virtual void SetUp() OVERRIDE {
context_.reset(new ServiceWorkerContextCore(
base::FilePath(),
- base::MessageLoopProxy::current(),
NULL,
NULL,
scoped_ptr<ServiceWorkerProcessManager>()));