| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "courgette/courgette.h" | 25 #include "courgette/courgette.h" |
| 26 #include "courgette/third_party/bsdiff.h" | 26 #include "courgette/third_party/bsdiff.h" |
| 27 #include "ipc/ipc_channel.h" | 27 #include "ipc/ipc_channel.h" |
| 28 #include "skia/ext/image_operations.h" | 28 #include "skia/ext/image_operations.h" |
| 29 #include "third_party/skia/include/core/SkBitmap.h" | 29 #include "third_party/skia/include/core/SkBitmap.h" |
| 30 #include "third_party/zlib/google/zip.h" | 30 #include "third_party/zlib/google/zip.h" |
| 31 #include "ui/gfx/geometry/size.h" | 31 #include "ui/gfx/geometry/size.h" |
| 32 | 32 |
| 33 #if defined(OS_CHROMEOS) | 33 #if defined(OS_CHROMEOS) |
| 34 #include "ui/gfx/chromeos/codec/jpeg_codec_robust_slow.h" | 34 #include "ui/gfx/chromeos/codec/jpeg_codec_robust_slow.h" |
| 35 #include "ui/gfx/codec/png_codec.h" |
| 35 #endif | 36 #endif |
| 36 | 37 |
| 37 #if !defined(OS_ANDROID) | 38 #if !defined(OS_ANDROID) |
| 38 #include "chrome/common/resource_usage_reporter.mojom.h" | 39 #include "chrome/common/resource_usage_reporter.mojom.h" |
| 39 #include "chrome/utility/profile_import_handler.h" | 40 #include "chrome/utility/profile_import_handler.h" |
| 40 #include "mojo/public/cpp/bindings/strong_binding.h" | 41 #include "mojo/public/cpp/bindings/strong_binding.h" |
| 41 #include "net/proxy/mojo_proxy_resolver_factory_impl.h" | 42 #include "net/proxy/mojo_proxy_resolver_factory_impl.h" |
| 42 #include "net/proxy/proxy_resolver_v8.h" | 43 #include "net/proxy/proxy_resolver_v8.h" |
| 43 #endif | 44 #endif |
| 44 | 45 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 const IPC::Message& message) { | 160 const IPC::Message& message) { |
| 160 if (filter_messages_ && !ContainsKey(message_id_whitelist_, message.type())) | 161 if (filter_messages_ && !ContainsKey(message_id_whitelist_, message.type())) |
| 161 return false; | 162 return false; |
| 162 | 163 |
| 163 bool handled = true; | 164 bool handled = true; |
| 164 IPC_BEGIN_MESSAGE_MAP(ChromeContentUtilityClient, message) | 165 IPC_BEGIN_MESSAGE_MAP(ChromeContentUtilityClient, message) |
| 165 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DecodeImage, OnDecodeImage) | 166 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DecodeImage, OnDecodeImage) |
| 166 #if defined(OS_CHROMEOS) | 167 #if defined(OS_CHROMEOS) |
| 167 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RobustJPEGDecodeImage, | 168 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RobustJPEGDecodeImage, |
| 168 OnRobustJPEGDecodeImage) | 169 OnRobustJPEGDecodeImage) |
| 170 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RobustPNGDecodeImage, |
| 171 OnRobustPNGDecodeImage) |
| 169 #endif // defined(OS_CHROMEOS) | 172 #endif // defined(OS_CHROMEOS) |
| 170 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileBsdiff, | 173 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileBsdiff, |
| 171 OnPatchFileBsdiff) | 174 OnPatchFileBsdiff) |
| 172 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileCourgette, | 175 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileCourgette, |
| 173 OnPatchFileCourgette) | 176 OnPatchFileCourgette) |
| 174 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_StartupPing, OnStartupPing) | 177 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_StartupPing, OnStartupPing) |
| 175 #if defined(FULL_SAFE_BROWSING) | 178 #if defined(FULL_SAFE_BROWSING) |
| 176 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_AnalyzeZipFileForDownloadProtection, | 179 IPC_MESSAGE_HANDLER(ChromeUtilityMsg_AnalyzeZipFileForDownloadProtection, |
| 177 OnAnalyzeZipFileForDownloadProtection) | 180 OnAnalyzeZipFileForDownloadProtection) |
| 178 #if defined(OS_MACOSX) | 181 #if defined(OS_MACOSX) |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); | 323 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); |
| 321 } else { | 324 } else { |
| 322 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(*decoded_image, | 325 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(*decoded_image, |
| 323 request_id)); | 326 request_id)); |
| 324 } | 327 } |
| 325 } else { | 328 } else { |
| 326 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); | 329 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); |
| 327 } | 330 } |
| 328 ReleaseProcessIfNeeded(); | 331 ReleaseProcessIfNeeded(); |
| 329 } | 332 } |
| 333 |
| 334 void ChromeContentUtilityClient::OnRobustPNGDecodeImage( |
| 335 const std::vector<unsigned char>& encoded_data, |
| 336 int request_id) { |
| 337 // Our robust PNG decoding is using libpng. |
| 338 if (!encoded_data.empty()) { |
| 339 SkBitmap decoded_image; |
| 340 if (gfx::PNGCodec::Decode(encoded_data.data(), |
| 341 encoded_data.size(), |
| 342 &decoded_image)) { |
| 343 Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(decoded_image, |
| 344 request_id)); |
| 345 } else { |
| 346 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); |
| 347 } |
| 348 } else { |
| 349 Send(new ChromeUtilityHostMsg_DecodeImage_Failed(request_id)); |
| 350 } |
| 351 ReleaseProcessIfNeeded(); |
| 352 } |
| 330 #endif // defined(OS_CHROMEOS) | 353 #endif // defined(OS_CHROMEOS) |
| 331 | 354 |
| 332 void ChromeContentUtilityClient::OnPatchFileBsdiff( | 355 void ChromeContentUtilityClient::OnPatchFileBsdiff( |
| 333 const base::FilePath& input_file, | 356 const base::FilePath& input_file, |
| 334 const base::FilePath& patch_file, | 357 const base::FilePath& patch_file, |
| 335 const base::FilePath& output_file) { | 358 const base::FilePath& output_file) { |
| 336 if (input_file.empty() || patch_file.empty() || output_file.empty()) { | 359 if (input_file.empty() || patch_file.empty() || output_file.empty()) { |
| 337 Send(new ChromeUtilityHostMsg_PatchFile_Finished(-1)); | 360 Send(new ChromeUtilityHostMsg_PatchFile_Finished(-1)); |
| 338 } else { | 361 } else { |
| 339 const int patch_status = courgette::ApplyBinaryPatch(input_file, | 362 const int patch_status = courgette::ApplyBinaryPatch(input_file, |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 safe_browsing::zip_analyzer::Results results; | 407 safe_browsing::zip_analyzer::Results results; |
| 385 safe_browsing::dmg::AnalyzeDMGFile( | 408 safe_browsing::dmg::AnalyzeDMGFile( |
| 386 IPC::PlatformFileForTransitToFile(dmg_file), &results); | 409 IPC::PlatformFileForTransitToFile(dmg_file), &results); |
| 387 Send(new ChromeUtilityHostMsg_AnalyzeDmgFileForDownloadProtection_Finished( | 410 Send(new ChromeUtilityHostMsg_AnalyzeDmgFileForDownloadProtection_Finished( |
| 388 results)); | 411 results)); |
| 389 ReleaseProcessIfNeeded(); | 412 ReleaseProcessIfNeeded(); |
| 390 } | 413 } |
| 391 #endif // defined(OS_MACOSX) | 414 #endif // defined(OS_MACOSX) |
| 392 | 415 |
| 393 #endif // defined(FULL_SAFE_BROWSING) | 416 #endif // defined(FULL_SAFE_BROWSING) |
| OLD | NEW |