Chromium Code Reviews| 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 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 175 } | 175 } |
| 176 | 176 |
| 177 bool ChromeContentUtilityClient::OnMessageReceived( | 177 bool ChromeContentUtilityClient::OnMessageReceived( |
| 178 const IPC::Message& message) { | 178 const IPC::Message& message) { |
| 179 if (filter_messages_ && !ContainsKey(message_id_whitelist_, message.type())) | 179 if (filter_messages_ && !ContainsKey(message_id_whitelist_, message.type())) |
| 180 return false; | 180 return false; |
| 181 | 181 |
| 182 bool handled = true; | 182 bool handled = true; |
| 183 IPC_BEGIN_MESSAGE_MAP(ChromeContentUtilityClient, message) | 183 IPC_BEGIN_MESSAGE_MAP(ChromeContentUtilityClient, message) |
| 184 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DecodeImage, OnDecodeImage) | 184 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DecodeImage, OnDecodeImage) |
| 185 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DecodeImageByHandle, | |
| 186 OnDecodeImageByHandle) | |
| 185 #if defined(OS_CHROMEOS) | 187 #if defined(OS_CHROMEOS) |
| 186 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RobustJPEGDecodeImage, | 188 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RobustJPEGDecodeImage, |
| 187 OnRobustJPEGDecodeImage) | 189 OnRobustJPEGDecodeImage) |
| 188 #endif // defined(OS_CHROMEOS) | 190 #endif // defined(OS_CHROMEOS) |
| 189 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseJSON, OnParseJSON) | 191 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseJSON, OnParseJSON) |
| 190 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileBsdiff, | 192 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileBsdiff, |
| 191 OnPatchFileBsdiff) | 193 OnPatchFileBsdiff) |
| 192 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileCourgette, | 194 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileCourgette, |
| 193 OnPatchFileCourgette) | 195 OnPatchFileCourgette) |
| 194 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_StartupPing, OnStartupPing) | 196 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_StartupPing, OnStartupPing) |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 287 | 289 |
| 288 if (decoded_image.empty()) { | 290 if (decoded_image.empty()) { |
| 289 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); | 291 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); |
| 290 } else { | 292 } else { |
| 291 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(decoded_image, | 293 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(decoded_image, |
| 292 request_id)); | 294 request_id)); |
| 293 } | 295 } |
| 294 ReleaseProcessIfNeeded(); | 296 ReleaseProcessIfNeeded(); |
| 295 } | 297 } |
| 296 | 298 |
| 299 void ChromeContentUtilityClient::OnDecodeImageByHandle( | |
| 300 const IPC::PlatformFileForTransit& image_file, | |
| 301 bool shrink_to_fit, | |
| 302 int request_id) { | |
| 303 base::File file = IPC::PlatformFileForTransitToFile(image_file); | |
| 304 | |
| 305 std::vector<unsigned char> image_data(file.GetLength()); | |
| 306 file.Read(0, reinterpret_cast<char*>(image_data.data()), file.GetLength()); | |
|
asanka
2015/06/11 03:30:52
Fail early if reading failed.
yoshiki
2015/06/11 08:22:09
Done.
| |
| 307 DecodeImageAndSend(image_data, shrink_to_fit, request_id); | |
| 308 } | |
| 309 | |
| 297 void ChromeContentUtilityClient::OnDecodeImage( | 310 void ChromeContentUtilityClient::OnDecodeImage( |
| 298 const std::vector<unsigned char>& encoded_data, | 311 const std::vector<unsigned char>& encoded_data, |
| 299 bool shrink_to_fit, | 312 bool shrink_to_fit, |
| 300 int request_id) { | 313 int request_id) { |
| 301 DecodeImageAndSend(encoded_data, shrink_to_fit, request_id); | 314 DecodeImageAndSend(encoded_data, shrink_to_fit, request_id); |
| 302 } | 315 } |
| 303 | 316 |
| 304 #if defined(OS_CHROMEOS) | 317 #if defined(OS_CHROMEOS) |
| 305 void ChromeContentUtilityClient::OnCreateZipFile( | 318 void ChromeContentUtilityClient::OnCreateZipFile( |
| 306 const base::FilePath& src_dir, | 319 const base::FilePath& src_dir, |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 441 const std::string& mime_type, int64 total_size, bool get_attached_images) { | 454 const std::string& mime_type, int64 total_size, bool get_attached_images) { |
| 442 // Only one IPCDataSource may be created and added to the list of handlers. | 455 // Only one IPCDataSource may be created and added to the list of handlers. |
| 443 metadata::IPCDataSource* source = new metadata::IPCDataSource(total_size); | 456 metadata::IPCDataSource* source = new metadata::IPCDataSource(total_size); |
| 444 handlers_.push_back(source); | 457 handlers_.push_back(source); |
| 445 | 458 |
| 446 metadata::MediaMetadataParser* parser = new metadata::MediaMetadataParser( | 459 metadata::MediaMetadataParser* parser = new metadata::MediaMetadataParser( |
| 447 source, mime_type, get_attached_images); | 460 source, mime_type, get_attached_images); |
| 448 parser->Start(base::Bind(&FinishParseMediaMetadata, base::Owned(parser))); | 461 parser->Start(base::Bind(&FinishParseMediaMetadata, base::Owned(parser))); |
| 449 } | 462 } |
| 450 #endif | 463 #endif |
| OLD | NEW |