Index: chrome/browser/chromeos/gdata/gdata_file_system.cc |
diff --git a/chrome/browser/chromeos/gdata/gdata_file_system.cc b/chrome/browser/chromeos/gdata/gdata_file_system.cc |
index 2932ec083fb97358c9c4a4648bf74e32dda854a5..ea62ae804e2908ac49edcd7a42b96ca5e7bd9d45 100644 |
--- a/chrome/browser/chromeos/gdata/gdata_file_system.cc |
+++ b/chrome/browser/chromeos/gdata/gdata_file_system.cc |
@@ -832,6 +832,14 @@ CallbackType CreateRelayCallback(const CallbackType& callback) { |
callback); |
} |
+// Callback used to find a directory element for file system updates. |
+void ReadOnlyFindEntryCallback(GDataEntry** out, |
+ base::PlatformFileError error, |
+ GDataEntry* entry) { |
+ if (error == base::PLATFORM_FILE_OK) |
+ *out = entry; |
+} |
+ |
} // namespace |
// GDataFileSystem::GetDocumentsParams struct implementation. |
@@ -1048,11 +1056,23 @@ void GDataFileSystem::Authenticate(const AuthStatusCallback& callback) { |
documents_service_->Authenticate(callback); |
} |
-void GDataFileSystem::FindEntryByResourceIdSync( |
+void GDataFileSystem::FindEntryByResourceId(const std::string& resource_id, |
+ const FindEntryCallback& callback) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || |
+ BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ RunTaskOnUIThread( |
+ base::Bind(&GDataFileSystem::FindEntryByResourceIdOnUIThread, |
+ ui_weak_ptr_, |
+ resource_id, |
+ CreateRelayCallback(callback))); |
+} |
+ |
+void GDataFileSystem::FindEntryByResourceIdOnUIThread( |
const std::string& resource_id, |
const FindEntryCallback& callback) { |
- base::AutoLock lock(lock_); // To access root. |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ base::AutoLock lock(lock_); // To access root. |
GDataFile* file = NULL; |
GDataEntry* entry = root_->GetEntryByResourceId(resource_id); |
if (entry) |