OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "chrome/browser/chromeos/extensions/file_manager/private_api_dialog.h" | 5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_dialog.h" |
6 | 6 |
7 #include "chrome/browser/chromeos/extensions/file_manager/private_api_util.h" | 7 #include "chrome/browser/chromeos/extensions/file_manager/private_api_util.h" |
8 #include "chrome/browser/ui/views/select_file_dialog_extension.h" | 8 #include "chrome/browser/ui/views/select_file_dialog_extension.h" |
9 #include "content/public/browser/browser_thread.h" | 9 #include "content/public/browser/browser_thread.h" |
10 #include "ui/shell_dialogs/selected_file_info.h" | 10 #include "ui/shell_dialogs/selected_file_info.h" |
11 | 11 |
12 using content::BrowserThread; | 12 using content::BrowserThread; |
13 | 13 |
14 namespace file_manager { | 14 namespace extensions { |
15 | 15 |
16 CancelFileDialogFunction::CancelFileDialogFunction() { | 16 CancelFileDialogFunction::CancelFileDialogFunction() { |
17 } | 17 } |
18 | 18 |
19 CancelFileDialogFunction::~CancelFileDialogFunction() { | 19 CancelFileDialogFunction::~CancelFileDialogFunction() { |
20 } | 20 } |
21 | 21 |
22 bool CancelFileDialogFunction::RunImpl() { | 22 bool CancelFileDialogFunction::RunImpl() { |
23 int32 tab_id = util::GetTabId(dispatcher()); | 23 int32 tab_id = file_manager::util::GetTabId(dispatcher()); |
24 SelectFileDialogExtension::OnFileSelectionCanceled(tab_id); | 24 SelectFileDialogExtension::OnFileSelectionCanceled(tab_id); |
25 SendResponse(true); | 25 SendResponse(true); |
26 return true; | 26 return true; |
27 } | 27 } |
28 | 28 |
29 SelectFileFunction::SelectFileFunction() { | 29 SelectFileFunction::SelectFileFunction() { |
30 } | 30 } |
31 | 31 |
32 SelectFileFunction::~SelectFileFunction() { | 32 SelectFileFunction::~SelectFileFunction() { |
33 } | 33 } |
34 | 34 |
35 bool SelectFileFunction::RunImpl() { | 35 bool SelectFileFunction::RunImpl() { |
36 if (args_->GetSize() != 4) { | 36 if (args_->GetSize() != 4) { |
37 return false; | 37 return false; |
38 } | 38 } |
39 std::string file_url; | 39 std::string file_url; |
40 args_->GetString(0, &file_url); | 40 args_->GetString(0, &file_url); |
41 std::vector<GURL> file_paths; | 41 std::vector<GURL> file_paths; |
42 file_paths.push_back(GURL(file_url)); | 42 file_paths.push_back(GURL(file_url)); |
43 bool for_opening = false; | 43 bool for_opening = false; |
44 args_->GetBoolean(2, &for_opening); | 44 args_->GetBoolean(2, &for_opening); |
45 bool need_local_path = false; | 45 bool need_local_path = false; |
46 args_->GetBoolean(3, &need_local_path); | 46 args_->GetBoolean(3, &need_local_path); |
47 | 47 |
48 util::GetSelectedFileInfoLocalPathOption option = | 48 file_manager::util::GetSelectedFileInfoLocalPathOption option = |
49 util::NO_LOCAL_PATH_RESOLUTION; | 49 file_manager::util::NO_LOCAL_PATH_RESOLUTION; |
50 if (need_local_path) { | 50 if (need_local_path) { |
51 option = for_opening ? | 51 option = for_opening ? |
52 util::NEED_LOCAL_PATH_FOR_OPENING : util::NEED_LOCAL_PATH_FOR_SAVING; | 52 file_manager::util::NEED_LOCAL_PATH_FOR_OPENING : |
| 53 file_manager::util::NEED_LOCAL_PATH_FOR_SAVING; |
53 } | 54 } |
54 | 55 |
55 util::GetSelectedFileInfo( | 56 file_manager::util::GetSelectedFileInfo( |
56 render_view_host(), | 57 render_view_host(), |
57 profile(), | 58 profile(), |
58 file_paths, | 59 file_paths, |
59 option, | 60 option, |
60 base::Bind(&SelectFileFunction::GetSelectedFileInfoResponse, this)); | 61 base::Bind(&SelectFileFunction::GetSelectedFileInfoResponse, this)); |
61 return true; | 62 return true; |
62 } | 63 } |
63 | 64 |
64 void SelectFileFunction::GetSelectedFileInfoResponse( | 65 void SelectFileFunction::GetSelectedFileInfoResponse( |
65 const std::vector<ui::SelectedFileInfo>& files) { | 66 const std::vector<ui::SelectedFileInfo>& files) { |
66 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 67 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
67 if (files.size() != 1) { | 68 if (files.size() != 1) { |
68 SendResponse(false); | 69 SendResponse(false); |
69 return; | 70 return; |
70 } | 71 } |
71 int index; | 72 int index; |
72 args_->GetInteger(1, &index); | 73 args_->GetInteger(1, &index); |
73 int32 tab_id = util::GetTabId(dispatcher()); | 74 int32 tab_id = file_manager::util::GetTabId(dispatcher()); |
74 SelectFileDialogExtension::OnFileSelected(tab_id, files[0], index); | 75 SelectFileDialogExtension::OnFileSelected(tab_id, files[0], index); |
75 SendResponse(true); | 76 SendResponse(true); |
76 } | 77 } |
77 | 78 |
78 SelectFilesFunction::SelectFilesFunction() { | 79 SelectFilesFunction::SelectFilesFunction() { |
79 } | 80 } |
80 | 81 |
81 SelectFilesFunction::~SelectFilesFunction() { | 82 SelectFilesFunction::~SelectFilesFunction() { |
82 } | 83 } |
83 | 84 |
(...skipping 11 matching lines...) Expand all Loading... |
95 std::vector<GURL> file_urls; | 96 std::vector<GURL> file_urls; |
96 file_urls.reserve(len); | 97 file_urls.reserve(len); |
97 for (size_t i = 0; i < len; ++i) { | 98 for (size_t i = 0; i < len; ++i) { |
98 path_list->GetString(i, &virtual_path); | 99 path_list->GetString(i, &virtual_path); |
99 file_urls.push_back(GURL(virtual_path)); | 100 file_urls.push_back(GURL(virtual_path)); |
100 } | 101 } |
101 | 102 |
102 bool need_local_path = false; | 103 bool need_local_path = false; |
103 args_->GetBoolean(1, &need_local_path); | 104 args_->GetBoolean(1, &need_local_path); |
104 | 105 |
105 util::GetSelectedFileInfo( | 106 file_manager::util::GetSelectedFileInfo( |
106 render_view_host(), | 107 render_view_host(), |
107 profile(), | 108 profile(), |
108 file_urls, | 109 file_urls, |
109 need_local_path ? | 110 need_local_path ? |
110 util::NEED_LOCAL_PATH_FOR_OPENING : util::NO_LOCAL_PATH_RESOLUTION, | 111 file_manager::util::NEED_LOCAL_PATH_FOR_OPENING : |
| 112 file_manager::util::NO_LOCAL_PATH_RESOLUTION, |
111 base::Bind(&SelectFilesFunction::GetSelectedFileInfoResponse, this)); | 113 base::Bind(&SelectFilesFunction::GetSelectedFileInfoResponse, this)); |
112 return true; | 114 return true; |
113 } | 115 } |
114 | 116 |
115 void SelectFilesFunction::GetSelectedFileInfoResponse( | 117 void SelectFilesFunction::GetSelectedFileInfoResponse( |
116 const std::vector<ui::SelectedFileInfo>& files) { | 118 const std::vector<ui::SelectedFileInfo>& files) { |
117 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 119 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
118 int32 tab_id = util::GetTabId(dispatcher()); | 120 int32 tab_id = file_manager::util::GetTabId(dispatcher()); |
119 SelectFileDialogExtension::OnMultiFilesSelected(tab_id, files); | 121 SelectFileDialogExtension::OnMultiFilesSelected(tab_id, files); |
120 SendResponse(true); | 122 SendResponse(true); |
121 } | 123 } |
122 | 124 |
123 } // namespace file_manager | 125 } // namespace extensions |
OLD | NEW |