Chromium Code Reviews| Index: chrome/browser/chromeos/drive/fileapi/file_system_backend_delegate.cc |
| diff --git a/chrome/browser/chromeos/drive/fileapi/file_system_backend_delegate.cc b/chrome/browser/chromeos/drive/fileapi/file_system_backend_delegate.cc |
| index a191e75f4e9f3b19e12e49205a8734264116145e..ce8e263acbe0e7ec38d0f0b5fb53cfd04c107330 100644 |
| --- a/chrome/browser/chromeos/drive/fileapi/file_system_backend_delegate.cc |
| +++ b/chrome/browser/chromeos/drive/fileapi/file_system_backend_delegate.cc |
| @@ -7,6 +7,7 @@ |
| #include "base/bind.h" |
| #include "base/files/file_path.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "chrome/browser/chromeos/drive/file_system_interface.h" |
| #include "chrome/browser/chromeos/drive/file_system_util.h" |
| #include "chrome/browser/chromeos/drive/fileapi/async_file_util.h" |
| #include "chrome/browser/chromeos/drive/fileapi/fileapi_worker.h" |
| @@ -22,6 +23,40 @@ |
| using content::BrowserThread; |
| namespace drive { |
| +namespace { |
| + |
| +void GetURLForBrowserTabOnUIThreadWithResourceEntry( |
|
mtomasz
2014/09/04 05:30:01
nit: Comments are missing. Especially we should co
hirono
2014/09/04 06:10:58
Done.
|
| + const FileSystemBackendDelegate::URLCallback& callback, |
| + FileError error, |
| + scoped_ptr<ResourceEntry> entry) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + GURL url; |
| + if (error == FILE_ERROR_OK && entry->has_file_specific_info() && |
| + entry->file_specific_info().is_hosted_document()) { |
| + url = GURL(entry->file_specific_info().alternate_url()); |
| + } |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, FROM_HERE, base::Bind(callback, url)); |
| +} |
| + |
| +void GetURLForBrowserTabOnUIThread( |
| + const storage::FileSystemURL& url, |
| + const FileSystemBackendDelegate::URLCallback& callback) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + FileSystemInterface* const file_system = |
| + fileapi_internal::GetFileSystemFromUrl(url); |
| + if (!file_system) { |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, FROM_HERE, base::Bind(callback, GURL())); |
| + return; |
| + } |
| + const base::FilePath file_path = util::ExtractDrivePathFromFileSystemUrl(url); |
| + file_system->GetResourceEntry( |
| + file_path, |
| + base::Bind(&GetURLForBrowserTabOnUIThreadWithResourceEntry, callback)); |
| + |
|
mtomasz
2014/09/04 05:30:01
nit: The empty line should be one line lower?
hirono
2014/09/04 06:10:58
Done.
|
| +} |
| +} // namespace |
| FileSystemBackendDelegate::FileSystemBackendDelegate() |
| : async_file_util_(new internal::AsyncFileUtil) { |
| @@ -86,4 +121,14 @@ storage::WatcherManager* FileSystemBackendDelegate::GetWatcherManager( |
| return NULL; |
| } |
| +void FileSystemBackendDelegate::GetURLForBrowserTab( |
| + const storage::FileSystemURL& url, |
| + const URLCallback& callback) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + BrowserThread::PostTask( |
| + BrowserThread::UI, |
| + FROM_HERE, |
| + base::Bind(&GetURLForBrowserTabOnUIThread, url, callback)); |
| +} |
| + |
| } // namespace drive |