Index: chrome/browser/drive/drive_api_service.cc |
diff --git a/chrome/browser/drive/drive_api_service.cc b/chrome/browser/drive/drive_api_service.cc |
index 2d01d1d98a4455184dc28fbd1a3612ca4a844697..38f737a5c8c697bc4663b5fd4fe3459343c5457b 100644 |
--- a/chrome/browser/drive/drive_api_service.cc |
+++ b/chrome/browser/drive/drive_api_service.cc |
@@ -78,6 +78,8 @@ namespace { |
const char kDriveScope[] = "https://www.googleapis.com/auth/drive"; |
const char kDriveAppsReadonlyScope[] = |
"https://www.googleapis.com/auth/drive.apps.readonly"; |
+const char kDriveAppsScope[] = "https://www.googleapis.com/auth/drive.apps"; |
+const char kDocsListScope[] = "https://docs.google.com/feeds/"; |
// Mime type to create a directory. |
const char kFolderMimeType[] = "application/vnd.google-apps.folder"; |
@@ -196,10 +198,12 @@ void DriveAPIService::Initialize(const std::string& account_id) { |
std::vector<std::string> scopes; |
scopes.push_back(kDriveScope); |
scopes.push_back(kDriveAppsReadonlyScope); |
- scopes.push_back(util::kDriveAppsScope); |
+ scopes.push_back(kDriveAppsScope); |
- // GData WAPI token for GetShareUrl(). |
- scopes.push_back(util::kDocsListScope); |
+ // Note: The following scope is used to support GetShareUrl on Drive API v2. |
+ // Unfortunately, there is no support on Drive API v2, so we need to fall back |
+ // to GData WAPI for the GetShareUrl. |
+ scopes.push_back(kDocsListScope); |
sender_.reset(new RequestSender( |
new google_apis::AuthService(oauth2_token_service_, |
@@ -262,7 +266,7 @@ CancelCallback DriveAPIService::GetFileListInDirectory( |
request->set_max_results(kMaxNumFilesResourcePerRequest); |
request->set_q(base::StringPrintf( |
"'%s' in parents and trashed = false", |
- drive::util::EscapeQueryStringValue(directory_resource_id).c_str())); |
+ util::EscapeQueryStringValue(directory_resource_id).c_str())); |
request->set_fields(kFileListFields); |
return sender_->StartRequestWithRetry(request); |
} |
@@ -277,7 +281,7 @@ CancelCallback DriveAPIService::Search( |
FilesListRequest* request = new FilesListRequest( |
sender_.get(), url_generator_, callback); |
request->set_max_results(kMaxNumFilesResourcePerRequestForSearch); |
- request->set_q(drive::util::TranslateQuery(search_query)); |
+ request->set_q(util::TranslateQuery(search_query)); |
request->set_fields(kFileListFields); |
return sender_->StartRequestWithRetry(request); |
} |
@@ -292,11 +296,11 @@ CancelCallback DriveAPIService::SearchByTitle( |
std::string query; |
base::StringAppendF(&query, "title = '%s'", |
- drive::util::EscapeQueryStringValue(title).c_str()); |
+ util::EscapeQueryStringValue(title).c_str()); |
if (!directory_resource_id.empty()) { |
base::StringAppendF( |
&query, " and '%s' in parents", |
- drive::util::EscapeQueryStringValue(directory_resource_id).c_str()); |
+ util::EscapeQueryStringValue(directory_resource_id).c_str()); |
} |
query += " and trashed = false"; |