Index: chrome/browser/chromeos/extensions/file_browser_event_router.h |
diff --git a/chrome/browser/chromeos/extensions/file_browser_event_router.h b/chrome/browser/chromeos/extensions/file_browser_event_router.h |
index 9247bd8805498b2347991e52fb04b56cac1abe16..0dcc9a70ba5c017f5c4261a171be425678a47ce2 100644 |
--- a/chrome/browser/chromeos/extensions/file_browser_event_router.h |
+++ b/chrome/browser/chromeos/extensions/file_browser_event_router.h |
@@ -34,8 +34,7 @@ class DriveFileSystemInterface; |
// Monitors changes in disk mounts, network connection state and preferences |
// affecting File Manager. Dispatches appropriate File Browser events. |
class FileBrowserEventRouter |
- : public base::RefCountedThreadSafe<FileBrowserEventRouter>, |
- public chromeos::disks::DiskMountManager::Observer, |
+ : public chromeos::disks::DiskMountManager::Observer, |
public chromeos::ConnectivityStateHelperObserver, |
public chromeos::SystemKeyEventListener::ModifiersObserver, |
public drive::DriveFileSystemObserver, |
@@ -57,6 +56,9 @@ class FileBrowserEventRouter |
const chromeos::disks::DiskMountManager::Disk& disk) const = 0; |
}; |
+ explicit FileBrowserEventRouter(Profile* profile); |
+ virtual ~FileBrowserEventRouter(); |
+ |
void Shutdown(); |
// Starts observing file system change events. |
@@ -109,9 +111,6 @@ class FileBrowserEventRouter |
virtual void OnModifiersChange(int pressed_modifiers) OVERRIDE; |
private: |
- friend class FileBrowserPrivateAPI; |
- friend class base::RefCountedThreadSafe<FileBrowserEventRouter>; |
- |
typedef std::map<std::string, int> ExtensionUsageRegistry; |
class FileWatcherExtensions { |
@@ -146,9 +145,6 @@ class FileBrowserEventRouter |
typedef std::map<base::FilePath, FileWatcherExtensions*> WatcherMap; |
- explicit FileBrowserEventRouter(Profile* profile); |
- virtual ~FileBrowserEventRouter(); |
- |
// USB mount event handlers. |
void OnDiskAdded(const chromeos::disks::DiskMountManager::Disk* disk); |
void OnDiskRemoved(const chromeos::disks::DiskMountManager::Disk* disk); |
@@ -196,7 +192,6 @@ class FileBrowserEventRouter |
// zero. |
void HandleRemoteUpdateRequestOnUIThread(bool start); |
- base::WeakPtrFactory<FileBrowserEventRouter> weak_factory_; |
base::FilePathWatcher::Callback file_watcher_callback_; |
WatcherMap file_watchers_; |
scoped_ptr<FileBrowserNotifications> notifications_; |
@@ -212,6 +207,9 @@ class FileBrowserEventRouter |
// for power users. |
bool shift_pressed_; |
+ // Note: This should remain the last member so it'll be destroyed and |
+ // invalidate the weak pointers before any other members are destroyed. |
+ base::WeakPtrFactory<FileBrowserEventRouter> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(FileBrowserEventRouter); |
}; |