Index: chrome/browser/sync/glue/password_model_worker.cc |
diff --git a/chrome/browser/sync/glue/password_model_worker.cc b/chrome/browser/sync/glue/password_model_worker.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..be7531b89fb8886b133e5f9d62acf4fc53dc4a60 |
--- /dev/null |
+++ b/chrome/browser/sync/glue/password_model_worker.cc |
@@ -0,0 +1,41 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/sync/glue/password_model_worker.h" |
+ |
+#include "base/logging.h" |
+#include "base/ref_counted.h" |
+#include "base/task.h" |
+#include "base/waitable_event.h" |
+#include "chrome/browser/password_manager/password_store.h" |
+#include "chrome/browser/sync/util/closure.h" |
+ |
+using base::WaitableEvent; |
+ |
+namespace browser_sync { |
+ |
+PasswordModelWorker::PasswordModelWorker(PasswordStore* password_store) |
+ : password_store_(password_store) { |
+} |
+ |
+void PasswordModelWorker::DoWorkAndWaitUntilDone(Closure* work) { |
+ WaitableEvent done(false, false); |
+ password_store_->ScheduleTask( |
+ NewRunnableMethod(this, &PasswordModelWorker::CallDoWorkAndSignalTask, |
+ work, &done)); |
+ done.Wait(); |
+} |
+ |
+void PasswordModelWorker::CallDoWorkAndSignalTask(Closure* work, |
+ WaitableEvent* done) { |
+ work->Run(); |
+ done->Signal(); |
+} |
+ |
+bool PasswordModelWorker::CurrentThreadIsWorkThread() { |
+ // TODO(ncarter): How to determine this? |
+ return true; |
+} |
+ |
+} // namespace browser_sync |