Index: chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc |
diff --git a/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc b/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc |
index 78718fdee09d1e41a3ce392f57db6072901cc5ec..3461bc0166f891fbb96ec09f26118eb129d36f09 100644 |
--- a/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc |
+++ b/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc |
@@ -239,6 +239,12 @@ void GDataWapiFeedLoader::ReloadFromServerIfNeeded( |
local_changestamp, |
search_file_path, |
callback)); |
+ // Drive v2 needs a separate application list fetch operation. |
+ // TODO(kochi): Application list rarely changes and do not necessarily |
+ // refresed as often as files. |
+ documents_service_->GetApplicationList( |
+ base::Bind(&GDataWapiFeedLoader::OnGetApplicationList, |
+ weak_ptr_factory_.GetWeakPtr())); |
return; |
} |
@@ -430,6 +436,24 @@ void GDataWapiFeedLoader::OnGetAboutResource( |
weak_ptr_factory_.GetWeakPtr())); |
} |
+void GDataWapiFeedLoader::OnGetApplicationList( |
+ GDataErrorCode status, |
+ scoped_ptr<base::Value> json) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ GDataFileError error = util::GDataToGDataFileError(status); |
+ if (error != GDATA_FILE_OK) |
+ return; |
+ |
+ if (json.get()) { |
+ scoped_ptr<AppList> applist(AppList::CreateFrom(*json)); |
+ if (applist.get()) { |
+ VLOG(1) << "applist get success"; |
+ webapps_registry_->UpdateFromApplicationList(applist.get()); |
+ } |
+ } |
+} |
+ |
// TODO(kochi): Fix too many parameters. http://crbug.com/141359 |
void GDataWapiFeedLoader::LoadFromServer( |
ContentOrigin initial_origin, |