| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/common/common_param_traits.h" | 5 #include "chrome/common/common_param_traits.h" |
| 6 | 6 |
| 7 #include "base/time.h" | 7 #include "base/time.h" |
| 8 #include "chrome/common/chrome_constants.h" | 8 #include "chrome/common/chrome_constants.h" |
| 9 #include "chrome/common/content_settings.h" | 9 #include "chrome/common/content_settings.h" |
| 10 #include "chrome/common/thumbnail_score.h" | 10 #include "chrome/common/thumbnail_score.h" |
| 11 #include "chrome/common/web_apps.h" | 11 #include "chrome/common/web_apps.h" |
| 12 #include "content/common/common_param_traits.h" | 12 #include "content/common/common_param_traits.h" |
| 13 #include "googleurl/src/gurl.h" | 13 #include "googleurl/src/gurl.h" |
| 14 #include "printing/backend/print_backend.h" | 14 #include "printing/backend/print_backend.h" |
| 15 #include "printing/native_metafile.h" | 15 #include "printing/native_metafile.h" |
| 16 #include "printing/page_range.h" | 16 #include "printing/page_range.h" |
| 17 | |
| 18 #ifndef EXCLUDE_SKIA_DEPENDENCIES | |
| 19 #include "third_party/skia/include/core/SkBitmap.h" | |
| 20 #endif | |
| 21 #include "webkit/glue/password_form.h" | 17 #include "webkit/glue/password_form.h" |
| 22 | 18 |
| 23 namespace IPC { | 19 namespace IPC { |
| 24 | 20 |
| 25 #ifndef EXCLUDE_SKIA_DEPENDENCIES | |
| 26 | |
| 27 namespace { | |
| 28 | |
| 29 struct SkBitmap_Data { | |
| 30 // The configuration for the bitmap (bits per pixel, etc). | |
| 31 SkBitmap::Config fConfig; | |
| 32 | |
| 33 // The width of the bitmap in pixels. | |
| 34 uint32 fWidth; | |
| 35 | |
| 36 // The height of the bitmap in pixels. | |
| 37 uint32 fHeight; | |
| 38 | |
| 39 void InitSkBitmapDataForTransfer(const SkBitmap& bitmap) { | |
| 40 fConfig = bitmap.config(); | |
| 41 fWidth = bitmap.width(); | |
| 42 fHeight = bitmap.height(); | |
| 43 } | |
| 44 | |
| 45 // Returns whether |bitmap| successfully initialized. | |
| 46 bool InitSkBitmapFromData(SkBitmap* bitmap, const char* pixels, | |
| 47 size_t total_pixels) const { | |
| 48 if (total_pixels) { | |
| 49 bitmap->setConfig(fConfig, fWidth, fHeight, 0); | |
| 50 if (!bitmap->allocPixels()) | |
| 51 return false; | |
| 52 if (total_pixels != bitmap->getSize()) | |
| 53 return false; | |
| 54 memcpy(bitmap->getPixels(), pixels, total_pixels); | |
| 55 } | |
| 56 return true; | |
| 57 } | |
| 58 }; | |
| 59 | |
| 60 } // namespace | |
| 61 | |
| 62 | |
| 63 void ParamTraits<SkBitmap>::Write(Message* m, const SkBitmap& p) { | |
| 64 size_t fixed_size = sizeof(SkBitmap_Data); | |
| 65 SkBitmap_Data bmp_data; | |
| 66 bmp_data.InitSkBitmapDataForTransfer(p); | |
| 67 m->WriteData(reinterpret_cast<const char*>(&bmp_data), | |
| 68 static_cast<int>(fixed_size)); | |
| 69 size_t pixel_size = p.getSize(); | |
| 70 SkAutoLockPixels p_lock(p); | |
| 71 m->WriteData(reinterpret_cast<const char*>(p.getPixels()), | |
| 72 static_cast<int>(pixel_size)); | |
| 73 } | |
| 74 | |
| 75 bool ParamTraits<SkBitmap>::Read(const Message* m, void** iter, SkBitmap* r) { | |
| 76 const char* fixed_data; | |
| 77 int fixed_data_size = 0; | |
| 78 if (!m->ReadData(iter, &fixed_data, &fixed_data_size) || | |
| 79 (fixed_data_size <= 0)) { | |
| 80 NOTREACHED(); | |
| 81 return false; | |
| 82 } | |
| 83 if (fixed_data_size != sizeof(SkBitmap_Data)) | |
| 84 return false; // Message is malformed. | |
| 85 | |
| 86 const char* variable_data; | |
| 87 int variable_data_size = 0; | |
| 88 if (!m->ReadData(iter, &variable_data, &variable_data_size) || | |
| 89 (variable_data_size < 0)) { | |
| 90 NOTREACHED(); | |
| 91 return false; | |
| 92 } | |
| 93 const SkBitmap_Data* bmp_data = | |
| 94 reinterpret_cast<const SkBitmap_Data*>(fixed_data); | |
| 95 return bmp_data->InitSkBitmapFromData(r, variable_data, variable_data_size); | |
| 96 } | |
| 97 | |
| 98 void ParamTraits<SkBitmap>::Log(const SkBitmap& p, std::string* l) { | |
| 99 l->append("<SkBitmap>"); | |
| 100 } | |
| 101 | |
| 102 #endif // EXCLUDE_SKIA_DEPENDENCIES | |
| 103 | |
| 104 void ParamTraits<ContentSetting>::Write(Message* m, const param_type& p) { | 21 void ParamTraits<ContentSetting>::Write(Message* m, const param_type& p) { |
| 105 WriteParam(m, static_cast<int>(p)); | 22 WriteParam(m, static_cast<int>(p)); |
| 106 } | 23 } |
| 107 | 24 |
| 108 bool ParamTraits<ContentSetting>::Read(const Message* m, void** iter, | 25 bool ParamTraits<ContentSetting>::Read(const Message* m, void** iter, |
| 109 param_type* r) { | 26 param_type* r) { |
| 110 int value; | 27 int value; |
| 111 if (!ReadParam(m, iter, &value)) | 28 if (!ReadParam(m, iter, &value)) |
| 112 return false; | 29 return false; |
| 113 if (value < 0 || value >= static_cast<int>(CONTENT_SETTING_NUM_SETTINGS)) | 30 if (value < 0 || value >= static_cast<int>(CONTENT_SETTING_NUM_SETTINGS)) |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 l->append(","); | 255 l->append(","); |
| 339 LogParam(p.caps_mime_type, l); | 256 LogParam(p.caps_mime_type, l); |
| 340 l->append(","); | 257 l->append(","); |
| 341 LogParam(p.printer_defaults, l); | 258 LogParam(p.printer_defaults, l); |
| 342 l->append(","); | 259 l->append(","); |
| 343 LogParam(p.defaults_mime_type, l); | 260 LogParam(p.defaults_mime_type, l); |
| 344 l->append(")"); | 261 l->append(")"); |
| 345 } | 262 } |
| 346 | 263 |
| 347 } // namespace IPC | 264 } // namespace IPC |
| OLD | NEW |