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

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

Issue 12588009: drive: Pass through AboutResouce from server among callbacks in ChangeListLoader. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix unittest, remove garbage. Created 7 years, 9 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_processor.cc
diff --git a/chrome/browser/chromeos/drive/change_list_processor.cc b/chrome/browser/chromeos/drive/change_list_processor.cc
index 5f38ce4655ecaf0c6e6478735905b26944f632de..1feff42805a20b9717c4ede9952eeb27fe370218 100644
--- a/chrome/browser/chromeos/drive/change_list_processor.cc
+++ b/chrome/browser/chromeos/drive/change_list_processor.cc
@@ -8,6 +8,7 @@
#include "base/metrics/histogram.h"
#include "chrome/browser/chromeos/drive/drive.pb.h"
+#include "chrome/browser/chromeos/drive/drive_file_system_util.h"
#include "chrome/browser/chromeos/drive/drive_resource_metadata.h"
#include "chrome/browser/chromeos/drive/resource_entry_conversion.h"
#include "chrome/browser/google_apis/gdata_wapi_parser.h"
@@ -69,20 +70,35 @@ ChangeListProcessor::~ChangeListProcessor() {
}
void ChangeListProcessor::ApplyFeeds(
+ scoped_ptr<google_apis::AboutResource> about_resource,
const ScopedVector<google_apis::ResourceList>& feed_list,
bool is_delta_feed,
- int64 root_feed_changestamp,
const base::Closure& on_complete_callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!on_complete_callback.is_null());
+ DCHECK(is_delta_feed || about_resource.get());
int64 delta_feed_changestamp = 0;
ChangeListToEntryProtoMapUMAStats uma_stats;
FeedToEntryProtoMap(feed_list, &delta_feed_changestamp, &uma_stats);
// Note FeedToEntryProtoMap calls Clear() which resets on_complete_callback_.
on_complete_callback_ = on_complete_callback;
- largest_changestamp_ =
- is_delta_feed ? delta_feed_changestamp : root_feed_changestamp;
+ largest_changestamp_ = 0;
+ if (is_delta_feed) {
+ largest_changestamp_ = delta_feed_changestamp;
+ } else if (about_resource.get()) {
+ largest_changestamp_ = about_resource->largest_change_id();
+
+ DVLOG(1) << "Root folder ID is " << about_resource->root_folder_id();
+ DCHECK(!about_resource->root_folder_id().empty());
+ } else {
+ // A full update without AboutResouce will have no effective changestamp.
+ NOTREACHED();
+ }
+
+ // TODO(haruki): Add pseudo tree structure for "drive"/root" and "drive/other"
+ // when we start using those namespaces. The root folder ID is necessary for
+ // full feed update.
ApplyEntryProtoMap(is_delta_feed);
// Shouldn't record histograms when processing delta feeds.

Powered by Google App Engine
This is Rietveld 408576698