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

Unified Diff: chrome/browser/chromeos/drive/change_list_loader.cc

Issue 23670006: Use DriveService for proper resource id resolution in ChangeListLoader. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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/drive/change_list_loader.cc
diff --git a/chrome/browser/chromeos/drive/change_list_loader.cc b/chrome/browser/chromeos/drive/change_list_loader.cc
index 43ccbc9858c34ab0e5d7fe3568fc01217c960794..28af5d9df895d48fa9deb18650138f57fd06f96e 100644
--- a/chrome/browser/chromeos/drive/change_list_loader.cc
+++ b/chrome/browser/chromeos/drive/change_list_loader.cc
@@ -17,6 +17,7 @@
#include "chrome/browser/chromeos/drive/logging.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/drive/drive_api_util.h"
+#include "chrome/browser/drive/drive_service_interface.h"
#include "chrome/browser/google_apis/drive_api_parser.h"
#include "content/public/browser/browser_thread.h"
#include "url/gurl.h"
@@ -178,9 +179,11 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher {
class FastFetchFeedFetcher : public ChangeListLoader::FeedFetcher {
public:
FastFetchFeedFetcher(JobScheduler* scheduler,
+ DriveServiceInterface* drive_service,
const std::string& directory_resource_id,
const std::string& root_folder_id)
: scheduler_(scheduler),
+ drive_service_(drive_service),
directory_resource_id_(directory_resource_id),
root_folder_id_(root_folder_id),
weak_ptr_factory_(this) {
@@ -279,32 +282,31 @@ class FastFetchFeedFetcher : public ChangeListLoader::FeedFetcher {
callback.Run(FILE_ERROR_OK, change_lists_.Pass());
}
+ // Fixes resource IDs in |change_list| into the format that |drive_service_|
+ // can understand. Note that |change_list| contains IDs in GData WAPI format
+ // since currently we always use WAPI for fast fetch, regardless of the flag.
void FixResourceIdInChangeList(ChangeList* change_list) {
std::vector<ResourceEntry>* entries = change_list->mutable_entries();
for (size_t i = 0; i < entries->size(); ++i) {
ResourceEntry* entry = &(*entries)[i];
- if (entry->has_resource_id()) {
- entry->set_resource_id(UpgradeResourceIdFromGDataWapiToDriveApiV2(
- entry->resource_id()));
- }
+ if (entry->has_resource_id())
+ entry->set_resource_id(FixResourceId(entry->resource_id()));
// Currently parent local id is the parent's resource id.
// It will be replaced by actual local id. (crbug.com/260514).
- if (entry->has_parent_local_id()) {
- entry->set_parent_local_id(UpgradeResourceIdFromGDataWapiToDriveApiV2(
- entry->parent_local_id()));
- }
+ if (entry->has_parent_local_id())
+ entry->set_parent_local_id(FixResourceId(entry->parent_local_id()));
}
}
- std::string UpgradeResourceIdFromGDataWapiToDriveApiV2(
- const std::string& resource_id) {
+ std::string FixResourceId(const std::string& resource_id) {
if (resource_id == util::kWapiRootDirectoryResourceId)
return root_folder_id_;
- return drive::util::CanonicalizeResourceId(resource_id);
+ return drive_service_->CanonicalizeResourceId(resource_id);
}
JobScheduler* scheduler_;
+ DriveServiceInterface* drive_service_;
std::string directory_resource_id_;
std::string root_folder_id_;
ScopedVector<ChangeList> change_lists_;
@@ -317,10 +319,12 @@ class FastFetchFeedFetcher : public ChangeListLoader::FeedFetcher {
ChangeListLoader::ChangeListLoader(
base::SequencedTaskRunner* blocking_task_runner,
ResourceMetadata* resource_metadata,
- JobScheduler* scheduler)
+ JobScheduler* scheduler,
+ DriveServiceInterface* drive_service)
: blocking_task_runner_(blocking_task_runner),
resource_metadata_(resource_metadata),
scheduler_(scheduler),
+ drive_service_(drive_service),
last_known_remote_changestamp_(0),
loaded_(false),
weak_ptr_factory_(this) {
@@ -769,6 +773,7 @@ void ChangeListLoader::DoLoadDirectoryFromServer(
FastFetchFeedFetcher* fetcher = new FastFetchFeedFetcher(
scheduler_,
+ drive_service_,
directory_fetch_info.resource_id(),
root_folder_id_);
fast_fetch_feed_fetcher_set_.insert(fetcher);
« no previous file with comments | « chrome/browser/chromeos/drive/change_list_loader.h ('k') | chrome/browser/chromeos/drive/change_list_loader_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698