OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // The file contains the implementation of | 5 // The file contains the implementation of |
6 // fileBrowserHandlerInternal.selectFile extension function. | 6 // fileBrowserHandlerInternal.selectFile extension function. |
7 // When invoked, the function does the following: | 7 // When invoked, the function does the following: |
8 // - Verifies that the extension function was invoked as a result of user | 8 // - Verifies that the extension function was invoked as a result of user |
9 // gesture. | 9 // gesture. |
10 // - Display 'save as' dialog using FileSelectorImpl which waits for the user | 10 // - Display 'save as' dialog using FileSelectorImpl which waits for the user |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 // SelectFile should be called only once, because the class instance takes | 92 // SelectFile should be called only once, because the class instance takes |
93 // ownership of itself after the first call. It will delete itself after the | 93 // ownership of itself after the first call. It will delete itself after the |
94 // extension function is notified of file selection result. | 94 // extension function is notified of file selection result. |
95 // Since the extension function object is ref counted, FileSelectorImpl holds | 95 // Since the extension function object is ref counted, FileSelectorImpl holds |
96 // a reference to it to ensure that the extension function doesn't go away while | 96 // a reference to it to ensure that the extension function doesn't go away while |
97 // waiting for user action. The reference is released after the function is | 97 // waiting for user action. The reference is released after the function is |
98 // notified of the selection result. | 98 // notified of the selection result. |
99 class FileSelectorImpl : public FileSelector, | 99 class FileSelectorImpl : public FileSelector, |
100 public ui::SelectFileDialog::Listener { | 100 public ui::SelectFileDialog::Listener { |
101 public: | 101 public: |
102 explicit FileSelectorImpl(); | 102 FileSelectorImpl(); |
103 virtual ~FileSelectorImpl() OVERRIDE; | 103 virtual ~FileSelectorImpl() OVERRIDE; |
104 | 104 |
105 protected: | 105 protected: |
106 // file_manager::FileSelectr overrides. | 106 // file_manager::FileSelectr overrides. |
107 // Shows save as dialog with suggested name in window bound to |browser|. | 107 // Shows save as dialog with suggested name in window bound to |browser|. |
108 // |allowed_extensions| specifies the file extensions allowed to be shown, | 108 // |allowed_extensions| specifies the file extensions allowed to be shown, |
109 // and selected. Extensions should not include '.'. | 109 // and selected. Extensions should not include '.'. |
110 // | 110 // |
111 // After this method is called, the selector implementation should not be | 111 // After this method is called, the selector implementation should not be |
112 // deleted by the caller. It will delete itself after it receives response | 112 // deleted by the caller. It will delete itself after it receives response |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 result->entry->file_system_name = entry_definition.file_system_name; | 365 result->entry->file_system_name = entry_definition.file_system_name; |
366 result->entry->file_system_root = entry_definition.file_system_root_url; | 366 result->entry->file_system_root = entry_definition.file_system_root_url; |
367 result->entry->file_full_path = | 367 result->entry->file_full_path = |
368 "/" + entry_definition.full_path.AsUTF8Unsafe(); | 368 "/" + entry_definition.full_path.AsUTF8Unsafe(); |
369 result->entry->file_is_directory = entry_definition.is_directory; | 369 result->entry->file_is_directory = entry_definition.is_directory; |
370 } | 370 } |
371 | 371 |
372 results_ = SelectFile::Results::Create(*result); | 372 results_ = SelectFile::Results::Create(*result); |
373 SendResponse(true); | 373 SendResponse(true); |
374 } | 374 } |
OLD | NEW |