| Index: chrome/browser/file_select_helper.h
|
| diff --git a/chrome/browser/file_select_helper.h b/chrome/browser/file_select_helper.h
|
| index 5a2b4d640ae98b726e76e0132b1695fd5f9fe131..0aa29af292582402b3a21c61770f0fe1603fa681 100644
|
| --- a/chrome/browser/file_select_helper.h
|
| +++ b/chrome/browser/file_select_helper.h
|
| @@ -8,7 +8,9 @@
|
|
|
| #include <vector>
|
|
|
| +#include "base/compiler_specific.h"
|
| #include "chrome/browser/ui/shell_dialogs.h"
|
| +#include "content/browser/tab_contents/tab_contents_observer.h"
|
| #include "content/common/notification_observer.h"
|
| #include "content/common/notification_registrar.h"
|
| #include "net/base/directory_lister.h"
|
| @@ -25,26 +27,27 @@ class FileSelectHelper
|
| explicit FileSelectHelper(Profile* profile);
|
| ~FileSelectHelper();
|
|
|
| - // SelectFileDialog::Listener
|
| - virtual void FileSelected(const FilePath& path, int index, void* params);
|
| - virtual void MultiFilesSelected(const std::vector<FilePath>& files,
|
| - void* params);
|
| - virtual void FileSelectionCanceled(void* params);
|
| -
|
| - // net::DirectoryLister::DirectoryListerDelegate
|
| - virtual void OnListFile(
|
| - const net::DirectoryLister::DirectoryListerData& data);
|
| - virtual void OnListDone(int error);
|
| -
|
| // Show the file chooser dialog.
|
| void RunFileChooser(RenderViewHost* render_view_host,
|
| const ViewHostMsg_RunFileChooser_Params& params);
|
|
|
| private:
|
| - // NotificationObserver implementation.
|
| + // SelectFileDialog::Listener overrides.
|
| + virtual void FileSelected(
|
| + const FilePath& path, int index, void* params) OVERRIDE;
|
| + virtual void MultiFilesSelected(const std::vector<FilePath>& files,
|
| + void* params) OVERRIDE;
|
| + virtual void FileSelectionCanceled(void* params) OVERRIDE;
|
| +
|
| + // net::DirectoryLister::DirectoryListerDelegate overrides.
|
| + virtual void OnListFile(
|
| + const net::DirectoryLister::DirectoryListerData& data) OVERRIDE;
|
| + virtual void OnListDone(int error) OVERRIDE;
|
| +
|
| + // NotificationObserver overrides.
|
| virtual void Observe(NotificationType type,
|
| const NotificationSource& source,
|
| - const NotificationDetails& details);
|
| + const NotificationDetails& details) OVERRIDE;
|
|
|
| // Helper method for handling the SelectFileDialog::Listener callbacks.
|
| void DirectorySelected(const FilePath& path);
|
| @@ -80,4 +83,22 @@ class FileSelectHelper
|
| DISALLOW_COPY_AND_ASSIGN(FileSelectHelper);
|
| };
|
|
|
| +class FileSelectObserver : public TabContentsObserver {
|
| + public:
|
| + explicit FileSelectObserver(TabContents* tab_contents);
|
| + ~FileSelectObserver();
|
| +
|
| + private:
|
| + // TabContentsObserver overrides.
|
| + virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
|
| +
|
| + // Called when a file selection is to be done.
|
| + void OnRunFileChooser(const ViewHostMsg_RunFileChooser_Params& params);
|
| +
|
| + // FileSelectHelper, lazily created.
|
| + scoped_ptr<FileSelectHelper> file_select_helper_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(FileSelectObserver);
|
| +};
|
| +
|
| #endif // CHROME_BROWSER_FILE_SELECT_HELPER_H_
|
|
|