Chromium Code Reviews| Index: chrome/browser/sync_file_system/drive_file_sync_client.cc |
| diff --git a/chrome/browser/sync_file_system/drive_file_sync_client.cc b/chrome/browser/sync_file_system/drive_file_sync_client.cc |
| index 0edf661a9f6855a1f7598a262854f7d78fd15e59..9a95c5a61b5f9f9ce366dbb1d8a795be5a246b4a 100644 |
| --- a/chrome/browser/sync_file_system/drive_file_sync_client.cc |
| +++ b/chrome/browser/sync_file_system/drive_file_sync_client.cc |
| @@ -185,11 +185,9 @@ void DriveFileSyncClient::GetDriveDirectoryForSyncRoot( |
| DVLOG(2) << "Getting Drive directory for SyncRoot"; |
| std::string directory_name(kSyncRootDirectoryName); |
| - drive_service_->Search( |
| - FormatTitleQuery(directory_name), |
| - base::Bind(&DriveFileSyncClient::DidGetResourceList, AsWeakPtr(), |
| - base::Bind(&DriveFileSyncClient::DidGetDirectory, AsWeakPtr(), |
| - std::string(), directory_name, callback))); |
| + SearchByTitle(directory_name, "", |
|
tzik
2013/04/18 14:26:23
s/""/std::string()/ ?
hidehiko
2013/04/22 04:24:45
Done.
|
| + base::Bind(&DriveFileSyncClient::DidGetDirectory, AsWeakPtr(), |
| + std::string(), directory_name, callback)); |
| } |
| void DriveFileSyncClient::GetDriveDirectoryForOrigin( |
| @@ -200,9 +198,8 @@ void DriveFileSyncClient::GetDriveDirectoryForOrigin( |
| DVLOG(2) << "Getting Drive directory for Origin: " << origin; |
| std::string directory_name(OriginToDirectoryTitle(origin)); |
| - SearchFilesInDirectory( |
| - sync_root_resource_id, |
| - FormatTitleQuery(directory_name), |
| + SearchByTitle( |
| + directory_name, sync_root_resource_id, |
| base::Bind(&DriveFileSyncClient::DidGetDirectory, AsWeakPtr(), |
| sync_root_resource_id, directory_name, callback)); |
| } |
| @@ -352,17 +349,17 @@ void DriveFileSyncClient::DidGetAboutResource( |
| callback.Run(error, largest_change_id); |
| } |
| -void DriveFileSyncClient::SearchFilesInDirectory( |
| +void DriveFileSyncClient::SearchByTitle( |
| + const std::string& title, |
| const std::string& directory_resource_id, |
| - const std::string& search_query, |
| const ResourceListCallback& callback) { |
| DCHECK(CalledOnValidThread()); |
| - DCHECK(!directory_resource_id.empty()); |
| + DCHECK(!title.empty()); |
| DVLOG(2) << "Searching resources in the directory [" << directory_resource_id |
| - << "] with query [" << search_query << "]"; |
| + << "] with title [" << title << "]"; |
| - drive_service_->SearchInDirectory( |
| - search_query, |
| + drive_service_->SearchByTitle( |
| + title, |
| directory_resource_id, |
| base::Bind(&DriveFileSyncClient::DidGetResourceList, |
| AsWeakPtr(), callback)); |
| @@ -570,33 +567,6 @@ void DriveFileSyncClient::DidGetResourceEntry( |
| callback.Run(error, entry.Pass()); |
| } |
| -// static |
| -std::string DriveFileSyncClient::FormatTitleQuery(const std::string& title) { |
| - // TODO(tzik): This pattern matches partial and case-insensitive, |
| - // and also matches files in subdirectories. |
| - // Refine the query after we migrate to Drive API. |
| - std::ostringstream out; |
| - out << "title:"; |
| - |
| - // Escape single quote and back slash with '\\'. |
| - // https://developers.google.com/drive/search-parameters |
| - out << '\''; |
| - for (std::string::const_iterator itr = title.begin(); |
| - itr != title.end(); ++itr) { |
| - switch (*itr) { |
| - case '\'': |
| - case '\\': |
| - out << '\\' << *itr; |
| - break; |
| - default: |
| - out << *itr; |
| - break; |
| - } |
| - } |
| - out << '\''; |
| - return out.str(); |
| -} |
| - |
| void DriveFileSyncClient::DownloadFileInternal( |
| const std::string& local_file_md5, |
| const base::FilePath& local_file_path, |
| @@ -819,24 +789,7 @@ void DriveFileSyncClient::EnsureTitleUniqueness( |
| base::Bind(&DriveFileSyncClient::DidListEntriesToEnsureUniqueness, |
| AsWeakPtr(), parent_resource_id, expected_title, callback); |
| - if (parent_resource_id.empty()) { |
| - // Here, it is a part of process to create a sync root directory. |
| - // The sync root directory may be orphan or be under mydrive directory, |
| - // due to historical reason. So, it is necessary to search both just orphan |
| - // resources and ones under mydrive. |
| - // Unfortunately there is no way to search only from orphan resources, |
| - // so here search all the resources. Unreleated results will be filtered |
| - // out below. |
| - drive_service_->Search( |
| - FormatTitleQuery(expected_title), |
| - base::Bind(&DriveFileSyncClient::DidGetResourceList, AsWeakPtr(), |
| - bound_callback)); |
| - } else { |
| - SearchFilesInDirectory( |
| - parent_resource_id, |
| - FormatTitleQuery(expected_title), |
| - bound_callback); |
| - } |
| + SearchByTitle(expected_title, parent_resource_id, bound_callback); |
| } |
| void DriveFileSyncClient::DidListEntriesToEnsureUniqueness( |