Chromium Code Reviews| Index: chrome/browser/extensions/test_extension_prefs.cc |
| =================================================================== |
| --- chrome/browser/extensions/test_extension_prefs.cc (revision 77440) |
| +++ chrome/browser/extensions/test_extension_prefs.cc (working copy) |
| @@ -9,6 +9,7 @@ |
| #include "base/message_loop_proxy.h" |
| #include "base/scoped_ptr.h" |
| #include "base/values.h" |
| +#include "base/synchronization/waitable_event.h" |
| #include "chrome/browser/extensions/extension_pref_store.h" |
| #include "chrome/browser/extensions/extension_pref_value_map.h" |
| #include "chrome/browser/extensions/extension_prefs.h" |
| @@ -18,6 +19,7 @@ |
| #include "chrome/common/extensions/extension.h" |
| #include "chrome/common/extensions/extension_constants.h" |
| #include "chrome/common/json_pref_store.h" |
| +#include "chrome/test/signaling_task.h" |
| #include "content/browser/browser_thread.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -65,10 +67,11 @@ |
| // 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. |
| - MessageLoop file_loop; |
| - BrowserThread file_thread(BrowserThread::FILE, &file_loop); |
| + base::WaitableEvent io_finished(false, false); |
| pref_service_->SavePersistentPrefs(); |
| - file_loop.RunAllPending(); |
| + BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
| + new SignalingTask(&io_finished)); |
| + EXPECT_TRUE(io_finished.Wait()); |
|
asargent_no_longer_on_chrome
2011/03/09 20:53:17
Nice, this looks much better.
|
| } |
| extension_pref_value_map_.reset(new ExtensionPrefValueMap); |