| 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);
|
| };
|
|
|
|
|