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

Unified Diff: chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_delegate.cc

Issue 2580713004: mediaview: Implement ArcDocumentsProviderBackendDelegate. (Closed)
Patch Set: Removed unused #include. Created 3 years, 11 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/chromeos/arc/fileapi/arc_documents_provider_backend_delegate.cc
diff --git a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_delegate.cc b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_delegate.cc
index 6572b4c6050203801703db1a3bd0d5399d0cbcd8..f4b09093f1bcc1ac4be2a351927d05afae76b794 100644
--- a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_delegate.cc
+++ b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_delegate.cc
@@ -7,6 +7,9 @@
#include <utility>
#include "base/logging.h"
+#include "base/memory/ptr_util.h"
+#include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_file_stream_reader.h"
+#include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.h"
#include "content/public/browser/browser_thread.h"
#include "storage/browser/fileapi/file_stream_reader.h"
#include "storage/browser/fileapi/file_stream_writer.h"
@@ -17,7 +20,7 @@ using content::BrowserThread;
namespace arc {
ArcDocumentsProviderBackendDelegate::ArcDocumentsProviderBackendDelegate()
- : async_file_util_(&roots_) {}
+ : async_file_util_(&roots_), weak_ptr_factory_(this) {}
ArcDocumentsProviderBackendDelegate::~ArcDocumentsProviderBackendDelegate() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -37,8 +40,20 @@ ArcDocumentsProviderBackendDelegate::CreateFileStreamReader(
const base::Time& expected_modification_time,
storage::FileSystemContext* context) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- NOTIMPLEMENTED(); // TODO(crbug.com/671511): Implement this function.
- return nullptr;
+
+ auto reader = base::MakeUnique<ArcDocumentsProviderFileStreamReader>(offset);
+
+ base::FilePath path;
+ ArcDocumentsProviderRoot* root = roots_.ParseAndLookup(url, &path);
+ if (!root) {
+ reader->SetContentUrl(GURL());
+ return std::move(reader);
+ }
+
+ root->ResolveToContentUrl(
+ path, base::Bind(&ArcDocumentsProviderFileStreamReader::SetContentUrl,
+ reader->GetWeakPtr()));
+ return std::move(reader);
}
std::unique_ptr<storage::FileStreamWriter>
@@ -62,7 +77,7 @@ void ArcDocumentsProviderBackendDelegate::GetRedirectURLForContents(
const storage::FileSystemURL& url,
const storage::URLCallback& callback) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- NOTIMPLEMENTED(); // TODO(crbug.com/671511): Implement this function.
+ NOTREACHED(); // Never called by chromeos::FileSystemBackend.
callback.Run(GURL());
}

Powered by Google App Engine
This is Rietveld 408576698