| 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..2679990003541f321cc3a63e5c66c2ae59a6b98c 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, std::string(),
|
| + 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(
|
|
|