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 #include "content/renderer/pepper/pepper_file_chooser_host.h" | 5 #include "content/renderer/pepper/pepper_file_chooser_host.h" |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "content/public/renderer/renderer_ppapi_host.h" | 9 #include "content/public/renderer/renderer_ppapi_host.h" |
10 #include "content/renderer/pepper/pepper_file_ref_renderer_host.h" | 10 #include "content/renderer/pepper/pepper_file_ref_renderer_host.h" |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 return PP_ERROR_NOACCESS; | 159 return PP_ERROR_NOACCESS; |
160 } | 160 } |
161 | 161 |
162 reply_context_ = context->MakeReplyMessageContext(); | 162 reply_context_ = context->MakeReplyMessageContext(); |
163 return PP_OK_COMPLETIONPENDING; | 163 return PP_OK_COMPLETIONPENDING; |
164 } | 164 } |
165 | 165 |
166 void PepperFileChooserHost::DidCreateResourceHosts( | 166 void PepperFileChooserHost::DidCreateResourceHosts( |
167 const std::vector<base::FilePath>& file_paths, | 167 const std::vector<base::FilePath>& file_paths, |
168 const std::vector<std::string>& display_names, | 168 const std::vector<std::string>& display_names, |
169 const std::vector<int>& browser_ids) { | 169 const ppapi::proxy::CompletedBrowserResourceHosts& browser_hosts) { |
170 DCHECK(file_paths.size() == display_names.size()); | 170 DCHECK_EQ(file_paths.size(), display_names.size()); |
171 DCHECK(file_paths.size() == browser_ids.size()); | 171 DCHECK_EQ(file_paths.size(), browser_hosts.host_ids.size()); |
172 | 172 |
173 std::vector<ppapi::FileRefCreateInfo> chosen_files; | 173 std::vector<ppapi::FileRefCreateInfo> chosen_files; |
174 for (size_t i = 0; i < browser_ids.size(); ++i) { | 174 for (size_t i = 0; i < browser_hosts.host_ids.size(); ++i) { |
175 PepperFileRefRendererHost* renderer_host = new PepperFileRefRendererHost( | 175 PepperFileRefRendererHost* renderer_host = new PepperFileRefRendererHost( |
176 renderer_ppapi_host_, pp_instance(), 0, file_paths[i]); | 176 renderer_ppapi_host_, pp_instance(), 0, file_paths[i]); |
177 int renderer_id = | 177 int renderer_id = |
178 renderer_ppapi_host_->GetPpapiHost()->AddPendingResourceHost( | 178 renderer_ppapi_host_->GetPpapiHost()->AddPendingResourceHost( |
179 scoped_ptr<ppapi::host::ResourceHost>(renderer_host)); | 179 scoped_ptr<ppapi::host::ResourceHost>(renderer_host)); |
180 ppapi::FileRefCreateInfo info = ppapi::MakeExternalFileRefCreateInfo( | 180 ppapi::FileRefCreateInfo info = ppapi::MakeExternalFileRefCreateInfo( |
181 file_paths[i], display_names[i], browser_ids[i], renderer_id); | 181 file_paths[i], |
| 182 display_names[i], |
| 183 browser_hosts.host_ids[i], |
| 184 renderer_id); |
182 chosen_files.push_back(info); | 185 chosen_files.push_back(info); |
183 } | 186 } |
184 | 187 |
185 reply_context_.params.set_result(PP_OK); | 188 reply_context_.params.set_result(PP_OK); |
186 host()->SendReply(reply_context_, | 189 host()->SendReply(reply_context_, |
187 PpapiPluginMsg_FileChooser_ShowReply(chosen_files)); | 190 PpapiPluginMsg_FileChooser_ShowReply(chosen_files)); |
188 reply_context_ = ppapi::host::ReplyMessageContext(); | 191 reply_context_ = ppapi::host::ReplyMessageContext(); |
189 handler_ = NULL; // Handler deletes itself. | 192 handler_ = NULL; // Handler deletes itself. |
190 } | 193 } |
191 | 194 |
192 } // namespace content | 195 } // namespace content |
OLD | NEW |