Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Unified Diff: chrome/browser/extensions/test_extension_prefs.cc

Issue 11027070: Moved JsonPrefStore to use SequencedWorkerPool (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/test_extension_prefs.cc
diff --git a/chrome/browser/extensions/test_extension_prefs.cc b/chrome/browser/extensions/test_extension_prefs.cc
index 6df506a9da624091f1022c832177959b653ff929..ffefddab83a56bd08e0bcd174676f5c620e428d1 100644
--- a/chrome/browser/extensions/test_extension_prefs.cc
+++ b/chrome/browser/extensions/test_extension_prefs.cc
@@ -11,6 +11,7 @@
#include "base/message_loop.h"
#include "base/message_loop_proxy.h"
#include "base/synchronization/waitable_event.h"
+#include "base/threading/sequenced_worker_pool.h"
#include "base/values.h"
#include "chrome/browser/extensions/extension_pref_store.h"
#include "chrome/browser/extensions/extension_pref_value_map.h"
@@ -54,9 +55,10 @@ class MockExtensionPrefs : public ExtensionPrefs {
} // namespace
-TestExtensionPrefs::TestExtensionPrefs()
- : pref_service_(NULL),
- extensions_disabled_(false) {
+TestExtensionPrefs::TestExtensionPrefs(
+ base::SequencedWorkerPool* blocking_pool) : pref_service_(NULL),
+ extensions_disabled_(false) {
+ blocking_pool_ = blocking_pool;
EXPECT_TRUE(temp_dir_.CreateUniqueTempDir());
preferences_file_ = temp_dir_.path().AppendASCII("Preferences");
extensions_dir_ = temp_dir_.path().AppendASCII("Extensions");
@@ -65,36 +67,21 @@ TestExtensionPrefs::TestExtensionPrefs()
RecreateExtensionPrefs();
}
-TestExtensionPrefs::~TestExtensionPrefs() {}
+TestExtensionPrefs::~TestExtensionPrefs() {
+}
void TestExtensionPrefs::RecreateExtensionPrefs() {
// We persist and reload the PrefService's PrefStores because this process
// deletes all empty dictionaries. The ExtensionPrefs implementation
// needs to be able to handle this situation.
if (pref_service_.get()) {
- // The PrefService writes its persistent file on the file thread, so we
- // need to wait for any pending I/O to complete before creating a new
- // PrefService.
- base::WaitableEvent io_finished(false, false);
- pref_service_-> CommitPendingWrite();
- EXPECT_TRUE(BrowserThread::PostTask(
- BrowserThread::FILE,
- FROM_HERE,
- base::Bind(&base::WaitableEvent::Signal,
- base::Unretained(&io_finished))));
-
- // If the FILE thread is in fact the current thread (possible in testing
- // scenarios), we have to ensure the task has a chance to run. If the FILE
- // thread is a different thread, the test must ensure that thread is running
- // (otherwise the Wait below will hang).
- MessageLoop::current()->RunAllPending();
-
- io_finished.Wait();
+ pref_service_->CommitPendingWrite();
+ blocking_pool_->FlushForTesting();
akalin 2012/10/18 23:52:24 i think you can replace the FlushForTesting call w
zel 2012/10/19 01:20:32 Done.
}
extension_pref_value_map_.reset(new ExtensionPrefValueMap);
PrefServiceMockBuilder builder;
- builder.WithUserFilePrefs(preferences_file_);
+ builder.WithUserFilePrefs(preferences_file_, blocking_pool_.get());
builder.WithExtensionPrefs(
new ExtensionPrefStore(extension_pref_value_map_.get(), false));
pref_service_.reset(builder.Create());

Powered by Google App Engine
This is Rietveld 408576698