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

Unified Diff: chrome/browser/media_galleries/linux/mtp_device_task_helper.cc

Issue 377383002: Media Galleries: Access MTP devices by file ids rather than file paths. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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/media_galleries/linux/mtp_device_task_helper.cc
diff --git a/chrome/browser/media_galleries/linux/mtp_device_task_helper.cc b/chrome/browser/media_galleries/linux/mtp_device_task_helper.cc
index be0f0c04029b5bd08b0759881cd4d73a3e1884ea..ca46ac53ef30fb292ab0879cb3407fca54124342 100644
--- a/chrome/browser/media_galleries/linux/mtp_device_task_helper.cc
+++ b/chrome/browser/media_galleries/linux/mtp_device_task_helper.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/numerics/safe_conversions.h"
+#include "base/strings/string_number_conversions.h"
#include "chrome/browser/media_galleries/linux/mtp_device_object_enumerator.h"
#include "chrome/browser/media_galleries/linux/mtp_read_file_worker.h"
#include "chrome/browser/media_galleries/linux/snapshot_file_details.h"
@@ -74,33 +75,33 @@ void MTPDeviceTaskHelper::OpenStorage(const std::string& storage_name,
callback));
}
-void MTPDeviceTaskHelper::GetFileInfoByPath(
- const std::string& file_path,
+void MTPDeviceTaskHelper::GetFileInfoById(
+ uint32 file_id,
const GetFileInfoSuccessCallback& success_callback,
const ErrorCallback& error_callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (device_handle_.empty())
return HandleDeviceError(error_callback, base::File::FILE_ERROR_FAILED);
- GetMediaTransferProtocolManager()->GetFileInfoByPath(
- device_handle_, file_path,
+ GetMediaTransferProtocolManager()->GetFileInfoById(
+ device_handle_, file_id,
base::Bind(&MTPDeviceTaskHelper::OnGetFileInfo,
weak_ptr_factory_.GetWeakPtr(),
success_callback,
error_callback));
}
-void MTPDeviceTaskHelper::ReadDirectoryByPath(
- const std::string& dir_path,
+void MTPDeviceTaskHelper::ReadDirectoryById(
+ uint32 dir_id,
const ReadDirectorySuccessCallback& success_callback,
const ErrorCallback& error_callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (device_handle_.empty())
return HandleDeviceError(error_callback, base::File::FILE_ERROR_FAILED);
- GetMediaTransferProtocolManager()->ReadDirectoryByPath(
- device_handle_, dir_path,
- base::Bind(&MTPDeviceTaskHelper::OnDidReadDirectoryByPath,
+ GetMediaTransferProtocolManager()->ReadDirectoryById(
+ device_handle_, dir_id,
+ base::Bind(&MTPDeviceTaskHelper::OnDidReadDirectoryById,
weak_ptr_factory_.GetWeakPtr(),
success_callback,
error_callback));
@@ -129,8 +130,8 @@ void MTPDeviceTaskHelper::ReadBytes(
base::File::FILE_ERROR_FAILED);
}
- GetMediaTransferProtocolManager()->GetFileInfoByPath(
- device_handle_, request.device_file_relative_path,
+ GetMediaTransferProtocolManager()->GetFileInfoById(
+ device_handle_, request.file_id,
base::Bind(&MTPDeviceTaskHelper::OnGetFileInfoToReadBytes,
weak_ptr_factory_.GetWeakPtr(), request));
}
@@ -171,7 +172,7 @@ void MTPDeviceTaskHelper::OnGetFileInfo(
base::Bind(success_callback, FileInfoFromMTPFileEntry(file_entry)));
}
-void MTPDeviceTaskHelper::OnDidReadDirectoryByPath(
+void MTPDeviceTaskHelper::OnDidReadDirectoryById(
const ReadDirectorySuccessCallback& success_callback,
const ErrorCallback& error_callback,
const std::vector<MtpFileEntry>& file_entries,
@@ -186,6 +187,11 @@ void MTPDeviceTaskHelper::OnDidReadDirectoryByPath(
while (!(current = file_enum.Next()).empty()) {
fileapi::DirectoryEntry entry;
entry.name = fileapi::VirtualPath::BaseName(current).value();
+ uint32 file_id = 0;
+ bool ret = file_enum.GetEntryId(&file_id);
+ DCHECK(ret);
+ entry.name.push_back(',');
+ entry.name += base::UintToString(file_id);
entry.is_directory = file_enum.IsDirectory();
entry.size = file_enum.Size();
entry.last_modified_time = file_enum.LastModifiedTime();
@@ -202,7 +208,7 @@ void MTPDeviceTaskHelper::OnGetFileInfoToReadBytes(
bool error) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(request.buf);
- DCHECK(request.buf_len >= 0);
+ DCHECK_GE(request.buf_len, 0);
DCHECK_GE(request.offset, 0);
if (error) {
return HandleDeviceError(request.error_callback,
@@ -229,9 +235,9 @@ void MTPDeviceTaskHelper::OnGetFileInfoToReadBytes(
base::checked_cast<uint32>(request.buf_len),
base::saturated_cast<uint32>(file_info.size - request.offset));
- GetMediaTransferProtocolManager()->ReadFileChunkByPath(
+ GetMediaTransferProtocolManager()->ReadFileChunkById(
device_handle_,
- request.device_file_relative_path,
+ request.file_id,
base::checked_cast<uint32>(request.offset),
bytes_to_read,
base::Bind(&MTPDeviceTaskHelper::OnDidReadBytes,

Powered by Google App Engine
This is Rietveld 408576698