OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_FILE_SELECT_HELPER_H_ | 5 #ifndef CHROME_BROWSER_FILE_SELECT_HELPER_H_ |
6 #define CHROME_BROWSER_FILE_SELECT_HELPER_H_ | 6 #define CHROME_BROWSER_FILE_SELECT_HELPER_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <vector> | 10 #include <vector> |
(...skipping 11 matching lines...) Expand all Loading... |
22 | 22 |
23 | 23 |
24 // This class handles file-selection requests coming from WebUI elements | 24 // This class handles file-selection requests coming from WebUI elements |
25 // (via the ExtensionHost class). It implements both the initialisation | 25 // (via the ExtensionHost class). It implements both the initialisation |
26 // and listener functions for file-selection dialogs. | 26 // and listener functions for file-selection dialogs. |
27 class FileSelectHelper | 27 class FileSelectHelper |
28 : public SelectFileDialog::Listener, | 28 : public SelectFileDialog::Listener, |
29 public NotificationObserver { | 29 public NotificationObserver { |
30 public: | 30 public: |
31 explicit FileSelectHelper(Profile* profile); | 31 explicit FileSelectHelper(Profile* profile); |
32 ~FileSelectHelper(); | 32 virtual ~FileSelectHelper(); |
33 | 33 |
34 // Show the file chooser dialog. | 34 // Show the file chooser dialog. |
35 void RunFileChooser(RenderViewHost* render_view_host, | 35 void RunFileChooser(RenderViewHost* render_view_host, |
36 TabContents* tab_contents, | 36 TabContents* tab_contents, |
37 const ViewHostMsg_RunFileChooser_Params& params); | 37 const ViewHostMsg_RunFileChooser_Params& params); |
38 | 38 |
39 // Enumerates all the files in directory. | 39 // Enumerates all the files in directory. |
40 void EnumerateDirectory(int request_id, | 40 void EnumerateDirectory(int request_id, |
41 RenderViewHost* render_view_host, | 41 RenderViewHost* render_view_host, |
42 const FilePath& path); | 42 const FilePath& path); |
43 | 43 |
44 private: | 44 private: |
45 // Utility class which can listen for directory lister events and relay | 45 // Utility class which can listen for directory lister events and relay |
46 // them to the main object with the correct tracking id. | 46 // them to the main object with the correct tracking id. |
47 class DirectoryListerDispatchDelegate | 47 class DirectoryListerDispatchDelegate |
48 : public net::DirectoryLister::DirectoryListerDelegate { | 48 : public net::DirectoryLister::DirectoryListerDelegate { |
49 public: | 49 public: |
50 DirectoryListerDispatchDelegate(FileSelectHelper* parent, int id) | 50 DirectoryListerDispatchDelegate(FileSelectHelper* parent, int id) |
51 : parent_(parent), | 51 : parent_(parent), |
52 id_(id) {} | 52 id_(id) {} |
53 ~DirectoryListerDispatchDelegate() {} | 53 virtual ~DirectoryListerDispatchDelegate() {} |
54 virtual void OnListFile( | 54 virtual void OnListFile( |
55 const net::DirectoryLister::DirectoryListerData& data) { | 55 const net::DirectoryLister::DirectoryListerData& data) { |
56 parent_->OnListFile(id_, data); | 56 parent_->OnListFile(id_, data); |
57 } | 57 } |
58 virtual void OnListDone(int error) { | 58 virtual void OnListDone(int error) { |
59 parent_->OnListDone(id_, error); | 59 parent_->OnListDone(id_, error); |
60 } | 60 } |
61 private: | 61 private: |
62 // This FileSelectHelper owns this object. | 62 // This FileSelectHelper owns this object. |
63 FileSelectHelper* parent_; | 63 FileSelectHelper* parent_; |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 | 116 |
117 // Registrar for notifications regarding our RenderViewHost. | 117 // Registrar for notifications regarding our RenderViewHost. |
118 NotificationRegistrar notification_registrar_; | 118 NotificationRegistrar notification_registrar_; |
119 | 119 |
120 DISALLOW_COPY_AND_ASSIGN(FileSelectHelper); | 120 DISALLOW_COPY_AND_ASSIGN(FileSelectHelper); |
121 }; | 121 }; |
122 | 122 |
123 class FileSelectObserver : public TabContentsObserver { | 123 class FileSelectObserver : public TabContentsObserver { |
124 public: | 124 public: |
125 explicit FileSelectObserver(TabContents* tab_contents); | 125 explicit FileSelectObserver(TabContents* tab_contents); |
126 ~FileSelectObserver(); | 126 virtual ~FileSelectObserver(); |
127 | 127 |
128 private: | 128 private: |
129 // TabContentsObserver overrides. | 129 // TabContentsObserver overrides. |
130 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; | 130 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
131 | 131 |
132 // Called when a file selection is to be done. | 132 // Called when a file selection is to be done. |
133 void OnRunFileChooser(const ViewHostMsg_RunFileChooser_Params& params); | 133 void OnRunFileChooser(const ViewHostMsg_RunFileChooser_Params& params); |
134 | 134 |
135 // Called when a direction enumeration is to be done. | 135 // Called when a direction enumeration is to be done. |
136 void OnEnumerateDirectory(int request_id, const FilePath& path); | 136 void OnEnumerateDirectory(int request_id, const FilePath& path); |
137 | 137 |
138 // FileSelectHelper, lazily created. | 138 // FileSelectHelper, lazily created. |
139 scoped_ptr<FileSelectHelper> file_select_helper_; | 139 scoped_ptr<FileSelectHelper> file_select_helper_; |
140 | 140 |
141 DISALLOW_COPY_AND_ASSIGN(FileSelectObserver); | 141 DISALLOW_COPY_AND_ASSIGN(FileSelectObserver); |
142 }; | 142 }; |
143 | 143 |
144 #endif // CHROME_BROWSER_FILE_SELECT_HELPER_H_ | 144 #endif // CHROME_BROWSER_FILE_SELECT_HELPER_H_ |
OLD | NEW |