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 "chrome/utility/chrome_content_utility_client.h" | 5 #include "chrome/utility/chrome_content_utility_client.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
222 decoded_image.reset(); | 222 decoded_image.reset(); |
223 LOG(ERROR) << "Decoded image too large for IPC message"; | 223 LOG(ERROR) << "Decoded image too large for IPC message"; |
224 } | 224 } |
225 } | 225 } |
226 | 226 |
227 return decoded_image; | 227 return decoded_image; |
228 } | 228 } |
229 | 229 |
230 // static | 230 // static |
231 void ChromeContentUtilityClient::DecodeImageAndSend( | 231 void ChromeContentUtilityClient::DecodeImageAndSend( |
232 const std::vector<unsigned char>& encoded_data, bool shrink_to_fit){ | 232 const std::vector<unsigned char>& encoded_data, bool shrink_to_fit, int id){ |
dcheng
2015/03/23 11:52:09
Nit: space between ) and {.
Theresa
2015/03/23 17:33:11
Done.
| |
233 SkBitmap decoded_image = DecodeImage(encoded_data, shrink_to_fit); | 233 SkBitmap decoded_image = DecodeImage(encoded_data, shrink_to_fit); |
234 | 234 |
235 if (decoded_image.empty()) { | 235 if (decoded_image.empty()) { |
236 Send(new ChromeUtilityHostMsg_DecodeImage_Failed()); | 236 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(id)); |
237 } else { | 237 } else { |
238 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(decoded_image)); | 238 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(decoded_image, id)); |
239 } | 239 } |
240 ReleaseProcessIfNeeded(); | 240 ReleaseProcessIfNeeded(); |
241 } | 241 } |
242 | 242 |
243 void ChromeContentUtilityClient::OnDecodeImage( | 243 void ChromeContentUtilityClient::OnDecodeImage( |
244 const std::vector<unsigned char>& encoded_data, bool shrink_to_fit) { | 244 const std::vector<unsigned char>& encoded_data, bool shrink_to_fit, int id){ |
dcheng
2015/03/23 11:52:09
Ditto.
Theresa
2015/03/23 17:33:10
Done.
Theresa
2015/03/23 17:33:11
Done.
| |
245 DecodeImageAndSend(encoded_data, shrink_to_fit); | 245 DecodeImageAndSend(encoded_data, shrink_to_fit, id); |
246 } | 246 } |
247 | 247 |
248 #if defined(OS_CHROMEOS) | 248 #if defined(OS_CHROMEOS) |
249 void ChromeContentUtilityClient::OnCreateZipFile( | 249 void ChromeContentUtilityClient::OnCreateZipFile( |
250 const base::FilePath& src_dir, | 250 const base::FilePath& src_dir, |
251 const std::vector<base::FilePath>& src_relative_paths, | 251 const std::vector<base::FilePath>& src_relative_paths, |
252 const base::FileDescriptor& dest_fd) { | 252 const base::FileDescriptor& dest_fd) { |
253 // dest_fd should be closed in the function. See ipc/ipc_message_util.h for | 253 // dest_fd should be closed in the function. See ipc/ipc_message_util.h for |
254 // details. | 254 // details. |
255 base::ScopedFD fd_closer(dest_fd.fd); | 255 base::ScopedFD fd_closer(dest_fd.fd); |
(...skipping 15 matching lines...) Expand all Loading... | |
271 | 271 |
272 if (succeeded) | 272 if (succeeded) |
273 Send(new ChromeUtilityHostMsg_CreateZipFile_Succeeded()); | 273 Send(new ChromeUtilityHostMsg_CreateZipFile_Succeeded()); |
274 else | 274 else |
275 Send(new ChromeUtilityHostMsg_CreateZipFile_Failed()); | 275 Send(new ChromeUtilityHostMsg_CreateZipFile_Failed()); |
276 ReleaseProcessIfNeeded(); | 276 ReleaseProcessIfNeeded(); |
277 } | 277 } |
278 #endif // defined(OS_CHROMEOS) | 278 #endif // defined(OS_CHROMEOS) |
279 | 279 |
280 void ChromeContentUtilityClient::OnRobustJPEGDecodeImage( | 280 void ChromeContentUtilityClient::OnRobustJPEGDecodeImage( |
281 const std::vector<unsigned char>& encoded_data) { | 281 const std::vector<unsigned char>& encoded_data, int id) { |
282 // Our robust jpeg decoding is using IJG libjpeg. | 282 // Our robust jpeg decoding is using IJG libjpeg. |
283 if (gfx::JPEGCodec::JpegLibraryVariant() == gfx::JPEGCodec::IJG_LIBJPEG && | 283 if (gfx::JPEGCodec::JpegLibraryVariant() == gfx::JPEGCodec::IJG_LIBJPEG && |
284 !encoded_data.empty()) { | 284 !encoded_data.empty()) { |
285 scoped_ptr<SkBitmap> decoded_image(gfx::JPEGCodec::Decode( | 285 scoped_ptr<SkBitmap> decoded_image(gfx::JPEGCodec::Decode( |
286 &encoded_data[0], encoded_data.size())); | 286 &encoded_data[0], encoded_data.size())); |
287 if (!decoded_image.get() || decoded_image->empty()) { | 287 if (!decoded_image.get() || decoded_image->empty()) { |
288 Send(new ChromeUtilityHostMsg_DecodeImage_Failed()); | 288 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(id)); |
289 } else { | 289 } else { |
290 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(*decoded_image)); | 290 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(*decoded_image, id)); |
291 } | 291 } |
292 } else { | 292 } else { |
293 Send(new ChromeUtilityHostMsg_DecodeImage_Failed()); | 293 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(id)); |
294 } | 294 } |
295 ReleaseProcessIfNeeded(); | 295 ReleaseProcessIfNeeded(); |
296 } | 296 } |
297 | 297 |
298 void ChromeContentUtilityClient::OnParseJSON(const std::string& json) { | 298 void ChromeContentUtilityClient::OnParseJSON(const std::string& json) { |
299 int error_code; | 299 int error_code; |
300 std::string error; | 300 std::string error; |
301 base::Value* value = base::JSONReader::ReadAndReturnError( | 301 base::Value* value = base::JSONReader::ReadAndReturnError( |
302 json, base::JSON_PARSE_RFC, &error_code, &error); | 302 json, base::JSON_PARSE_RFC, &error_code, &error); |
303 if (value) { | 303 if (value) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
365 const std::string& mime_type, int64 total_size, bool get_attached_images) { | 365 const std::string& mime_type, int64 total_size, bool get_attached_images) { |
366 // Only one IPCDataSource may be created and added to the list of handlers. | 366 // Only one IPCDataSource may be created and added to the list of handlers. |
367 metadata::IPCDataSource* source = new metadata::IPCDataSource(total_size); | 367 metadata::IPCDataSource* source = new metadata::IPCDataSource(total_size); |
368 handlers_.push_back(source); | 368 handlers_.push_back(source); |
369 | 369 |
370 metadata::MediaMetadataParser* parser = new metadata::MediaMetadataParser( | 370 metadata::MediaMetadataParser* parser = new metadata::MediaMetadataParser( |
371 source, mime_type, get_attached_images); | 371 source, mime_type, get_attached_images); |
372 parser->Start(base::Bind(&FinishParseMediaMetadata, base::Owned(parser))); | 372 parser->Start(base::Bind(&FinishParseMediaMetadata, base::Owned(parser))); |
373 } | 373 } |
374 #endif | 374 #endif |
OLD | NEW |