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

Unified Diff: chrome/browser/chromeos/extensions/file_browser_event_router.cc

Issue 10352004: gdata: Implement periodic file system update checks. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Use base timer class and other miscellaneous fixes Created 8 years, 8 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/extensions/file_browser_event_router.cc
diff --git a/chrome/browser/chromeos/extensions/file_browser_event_router.cc b/chrome/browser/chromeos/extensions/file_browser_event_router.cc
index c3479feb361e067385b3f48596832237c6bd1297..a5672061cbf0d9de767a804aa893a04b72bbde59 100644
--- a/chrome/browser/chromeos/extensions/file_browser_event_router.cc
+++ b/chrome/browser/chromeos/extensions/file_browser_event_router.cc
@@ -166,6 +166,11 @@ bool FileBrowserEventRouter::AddFileWatch(
} else {
iter->second->AddExtension(extension_id);
}
+ if (is_remote_watch) {
+ gdata::GDataFileSystem* file_system = GetFileSystem();
satorux1 2012/05/03 19:41:34 Per your comment, we are not on UI thread here? If
hshi 2012/05/03 21:17:49 Done.
+ if (file_system)
+ file_system->RequestStartUpdates();
satorux1 2012/05/03 19:44:54 I have another idea. Wouldn't it be simpler just
satorux1 2012/05/03 19:47:41 I was assuming that FileBrowserEventRouter is crea
zel 2012/05/03 19:54:30 Lifetime of FileBrowserEventRouter is RefcountedPr
hshi 2012/05/03 21:17:49 I have moved this logic out to a separate task on
+ }
return true;
}
@@ -179,6 +184,9 @@ void FileBrowserEventRouter::RemoveFileWatch(
// their change notifications.
if (gdata::util::GetSpecialRemoteRootPath().IsParent(watch_path)) {
watch_path = gdata::util::ExtractGDataPath(watch_path);
+ gdata::GDataFileSystem* file_system = GetFileSystem();
+ if (file_system)
+ file_system->RequestStopUpdates();
}
WatcherMap::iterator iter = file_watchers_.find(watch_path);
if (iter == file_watchers_.end())
@@ -255,10 +263,7 @@ void FileBrowserEventRouter::MountCompleted(
if ((event_type == DiskMountManager::MOUNTING) !=
(error_code == chromeos::MOUNT_ERROR_NONE)) {
FilePath source_path(mount_info.source_path);
- gdata::GDataSystemService* system_service =
- gdata::GDataSystemServiceFactory::GetForProfile(profile_);
- gdata::GDataFileSystem* file_system =
- system_service ? system_service->file_system() : NULL;
+ gdata::GDataFileSystem* file_system = GetFileSystem();
if (file_system && file_system->IsUnderGDataCacheDirectory(source_path))
file_system->SetMountedState(source_path, false,
gdata::SetMountedStateCallback());
@@ -601,6 +606,12 @@ FileBrowserEventRouter::FileWatcherExtensions::GetVirtualPath() const {
return virtual_path_;
}
+gdata::GDataFileSystem* FileBrowserEventRouter::GetFileSystem() const {
+ gdata::GDataSystemService* system_service =
+ gdata::GDataSystemServiceFactory::GetForProfile(profile_);
+ return (system_service ? system_service->file_system() : NULL);
+}
+
bool FileBrowserEventRouter::FileWatcherExtensions::Watch
(const FilePath& path, FileWatcherDelegate* delegate) {
if (is_remote_file_system_)

Powered by Google App Engine
This is Rietveld 408576698