summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/drive/drive_file_system.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/drive/drive_file_system.cc')
-rw-r--r--chrome/browser/chromeos/drive/drive_file_system.cc32
1 files changed, 25 insertions, 7 deletions
diff --git a/chrome/browser/chromeos/drive/drive_file_system.cc b/chrome/browser/chromeos/drive/drive_file_system.cc
index 6a97489..e4d19e4 100644
--- a/chrome/browser/chromeos/drive/drive_file_system.cc
+++ b/chrome/browser/chromeos/drive/drive_file_system.cc
@@ -386,18 +386,26 @@ DriveFileSystem::DriveFileSystem(
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
}
+void DriveFileSystem::Reload() {
+ InitializeResourceMetadtaAndFeedLoader();
+
+ resource_metadata_->set_origin(INITIALIZING);
+ feed_loader_->ReloadFromServerIfNeeded(
+ UNINITIALIZED,
+ resource_metadata_->largest_changestamp(),
+ base::Bind(&DriveFileSystem::NotifyInitialLoadFinishedAndRun,
+ ui_weak_ptr_,
+ base::Bind(&DriveFileSystem::OnUpdateChecked,
+ ui_weak_ptr_,
+ UNINITIALIZED)));
+}
+
void DriveFileSystem::Initialize() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
drive_service_->Initialize(profile_);
- resource_metadata_.reset(new DriveResourceMetadata);
- feed_loader_.reset(new DriveFeedLoader(resource_metadata_.get(),
- drive_service_,
- webapps_registry_,
- cache_,
- blocking_task_runner_));
- feed_loader_->AddObserver(this);
+ InitializeResourceMetadtaAndFeedLoader();
// Allocate the drive operation handlers.
drive_operations_.Init(drive_service_,
@@ -416,6 +424,16 @@ void DriveFileSystem::Initialize() {
InitializePreferenceObserver();
}
+void DriveFileSystem::InitializeResourceMetadtaAndFeedLoader() {
+ resource_metadata_.reset(new DriveResourceMetadata);
+ feed_loader_.reset(new DriveFeedLoader(resource_metadata_.get(),
+ drive_service_,
+ webapps_registry_,
+ cache_,
+ blocking_task_runner_));
+ feed_loader_->AddObserver(this);
+}
+
void DriveFileSystem::CheckForUpdates() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DVLOG(1) << "CheckForUpdates";