| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Multiply-included message file, so no include guard. | |
| 6 | |
| 7 #include <string> | |
| 8 #include <vector> | |
| 9 | |
| 10 #include "base/basictypes.h" | |
| 11 #include "base/file_path.h" | |
| 12 #include "base/platform_file.h" | |
| 13 #include "base/values.h" | |
| 14 #include "chrome/common/extensions/update_manifest.h" | |
| 15 #include "content/common/common_param_traits.h" | |
| 16 #include "content/common/indexed_db_key.h" | |
| 17 #include "content/common/indexed_db_param_traits.h" | |
| 18 #include "content/common/serialized_script_value.h" | |
| 19 #include "ipc/ipc_message_macros.h" | |
| 20 #include "ipc/ipc_message_utils.h" | |
| 21 #include "printing/backend/print_backend.h" | |
| 22 #include "printing/page_range.h" | |
| 23 #include "third_party/skia/include/core/SkBitmap.h" | |
| 24 #include "ui/gfx/rect.h" | |
| 25 | |
| 26 #define IPC_MESSAGE_START UtilityMsgStart | |
| 27 | |
| 28 IPC_STRUCT_TRAITS_BEGIN(printing::PageRange) | |
| 29 IPC_STRUCT_TRAITS_MEMBER(from) | |
| 30 IPC_STRUCT_TRAITS_MEMBER(to) | |
| 31 IPC_STRUCT_TRAITS_END() | |
| 32 | |
| 33 IPC_STRUCT_TRAITS_BEGIN(printing::PrinterCapsAndDefaults) | |
| 34 IPC_STRUCT_TRAITS_MEMBER(printer_capabilities) | |
| 35 IPC_STRUCT_TRAITS_MEMBER(caps_mime_type) | |
| 36 IPC_STRUCT_TRAITS_MEMBER(printer_defaults) | |
| 37 IPC_STRUCT_TRAITS_MEMBER(defaults_mime_type) | |
| 38 IPC_STRUCT_TRAITS_END() | |
| 39 | |
| 40 IPC_STRUCT_TRAITS_BEGIN(UpdateManifest::Result) | |
| 41 IPC_STRUCT_TRAITS_MEMBER(extension_id) | |
| 42 IPC_STRUCT_TRAITS_MEMBER(version) | |
| 43 IPC_STRUCT_TRAITS_MEMBER(browser_min_version) | |
| 44 IPC_STRUCT_TRAITS_MEMBER(package_hash) | |
| 45 IPC_STRUCT_TRAITS_MEMBER(crx_url) | |
| 46 IPC_STRUCT_TRAITS_END() | |
| 47 | |
| 48 IPC_STRUCT_TRAITS_BEGIN(UpdateManifest::Results) | |
| 49 IPC_STRUCT_TRAITS_MEMBER(list) | |
| 50 IPC_STRUCT_TRAITS_MEMBER(daystart_elapsed_seconds) | |
| 51 IPC_STRUCT_TRAITS_END() | |
| 52 | |
| 53 //------------------------------------------------------------------------------ | |
| 54 // Utility process messages: | |
| 55 // These are messages from the browser to the utility process. | |
| 56 // Tell the utility process to unpack the given extension file in its | |
| 57 // directory and verify that it is valid. | |
| 58 IPC_MESSAGE_CONTROL1(UtilityMsg_UnpackExtension, | |
| 59 FilePath /* extension_filename */) | |
| 60 | |
| 61 // Tell the utility process to parse the given JSON data and verify its | |
| 62 // validity. | |
| 63 IPC_MESSAGE_CONTROL1(UtilityMsg_UnpackWebResource, | |
| 64 std::string /* JSON data */) | |
| 65 | |
| 66 // Tell the utility process to parse the given xml document. | |
| 67 IPC_MESSAGE_CONTROL1(UtilityMsg_ParseUpdateManifest, | |
| 68 std::string /* xml document contents */) | |
| 69 | |
| 70 // Tell the utility process to decode the given image data. | |
| 71 IPC_MESSAGE_CONTROL1(UtilityMsg_DecodeImage, | |
| 72 std::vector<unsigned char>) // encoded image contents | |
| 73 | |
| 74 // Tell the utility process to decode the given image data, which is base64 | |
| 75 // encoded. | |
| 76 IPC_MESSAGE_CONTROL1(UtilityMsg_DecodeImageBase64, | |
| 77 std::string) // base64 encoded image contents | |
| 78 | |
| 79 // Tell the utility process to render the given PDF into a metafile. | |
| 80 IPC_MESSAGE_CONTROL5(UtilityMsg_RenderPDFPagesToMetafile, | |
| 81 base::PlatformFile, // PDF file | |
| 82 FilePath, // Location for output metafile | |
| 83 gfx::Rect, // Render Area | |
| 84 int, // DPI | |
| 85 std::vector<printing::PageRange>) | |
| 86 | |
| 87 // Tell the utility process to extract the given IDBKeyPath from the | |
| 88 // SerializedScriptValue vector and reply with the corresponding IDBKeys. | |
| 89 IPC_MESSAGE_CONTROL3(UtilityMsg_IDBKeysFromValuesAndKeyPath, | |
| 90 int, // id | |
| 91 std::vector<SerializedScriptValue>, | |
| 92 string16) // IDBKeyPath | |
| 93 | |
| 94 IPC_MESSAGE_CONTROL3(UtilityMsg_InjectIDBKey, | |
| 95 IndexedDBKey /* key */, | |
| 96 SerializedScriptValue /* value */, | |
| 97 string16 /* key path*/) | |
| 98 | |
| 99 // Tell the utility process to parse a JSON string into a Value object. | |
| 100 IPC_MESSAGE_CONTROL1(UtilityMsg_ParseJSON, | |
| 101 std::string /* JSON to parse */) | |
| 102 | |
| 103 // Tells the utility process that it's running in batch mode. | |
| 104 IPC_MESSAGE_CONTROL0(UtilityMsg_BatchMode_Started) | |
| 105 | |
| 106 // Tells the utility process that it can shutdown. | |
| 107 IPC_MESSAGE_CONTROL0(UtilityMsg_BatchMode_Finished) | |
| 108 | |
| 109 // Tells the utility process to get capabilities and defaults for the specified | |
| 110 // printer. Used on Windows to isolate the service process from printer driver | |
| 111 // crashes by executing this in a separate process. This does not run in a | |
| 112 // sandbox. | |
| 113 IPC_MESSAGE_CONTROL1(UtilityMsg_GetPrinterCapsAndDefaults, | |
| 114 std::string /* printer name */) | |
| 115 | |
| 116 //------------------------------------------------------------------------------ | |
| 117 // Utility process host messages: | |
| 118 // These are messages from the utility process to the browser. | |
| 119 // Reply when the utility process is done unpacking an extension. |manifest| | |
| 120 // is the parsed manifest.json file. | |
| 121 // The unpacker should also have written out files containing the decoded | |
| 122 // images and message catalogs from the extension. See ExtensionUnpacker for | |
| 123 // details. | |
| 124 IPC_MESSAGE_CONTROL1(UtilityHostMsg_UnpackExtension_Succeeded, | |
| 125 DictionaryValue /* manifest */) | |
| 126 | |
| 127 // Reply when the utility process has failed while unpacking an extension. | |
| 128 // |error_message| is a user-displayable explanation of what went wrong. | |
| 129 IPC_MESSAGE_CONTROL1(UtilityHostMsg_UnpackExtension_Failed, | |
| 130 std::string /* error_message, if any */) | |
| 131 | |
| 132 // Reply when the utility process is done unpacking and parsing JSON data | |
| 133 // from a web resource. | |
| 134 IPC_MESSAGE_CONTROL1(UtilityHostMsg_UnpackWebResource_Succeeded, | |
| 135 DictionaryValue /* json data */) | |
| 136 | |
| 137 // Reply when the utility process has failed while unpacking and parsing a | |
| 138 // web resource. |error_message| is a user-readable explanation of what | |
| 139 // went wrong. | |
| 140 IPC_MESSAGE_CONTROL1(UtilityHostMsg_UnpackWebResource_Failed, | |
| 141 std::string /* error_message, if any */) | |
| 142 | |
| 143 // Reply when the utility process has succeeded in parsing an update manifest | |
| 144 // xml document. | |
| 145 IPC_MESSAGE_CONTROL1(UtilityHostMsg_ParseUpdateManifest_Succeeded, | |
| 146 UpdateManifest::Results /* updates */) | |
| 147 | |
| 148 // Reply when an error occured parsing the update manifest. |error_message| | |
| 149 // is a description of what went wrong suitable for logging. | |
| 150 IPC_MESSAGE_CONTROL1(UtilityHostMsg_ParseUpdateManifest_Failed, | |
| 151 std::string /* error_message, if any */) | |
| 152 | |
| 153 // Reply when the utility process has succeeded in decoding the image. | |
| 154 IPC_MESSAGE_CONTROL1(UtilityHostMsg_DecodeImage_Succeeded, | |
| 155 SkBitmap) // decoded image | |
| 156 | |
| 157 // Reply when an error occured decoding the image. | |
| 158 IPC_MESSAGE_CONTROL0(UtilityHostMsg_DecodeImage_Failed) | |
| 159 | |
| 160 // Reply when the utility process has succeeded in rendering the PDF. | |
| 161 IPC_MESSAGE_CONTROL1(UtilityHostMsg_RenderPDFPagesToMetafile_Succeeded, | |
| 162 int) // Highest rendered page number | |
| 163 | |
| 164 // Reply when an error occured rendering the PDF. | |
| 165 IPC_MESSAGE_CONTROL0(UtilityHostMsg_RenderPDFPagesToMetafile_Failed) | |
| 166 | |
| 167 #if defined(OS_WIN) | |
| 168 // Request that the given font be loaded by the host so it's cached by the | |
| 169 // OS. Please see ChildProcessHost::PreCacheFont for details. | |
| 170 IPC_SYNC_MESSAGE_CONTROL1_0(UtilityHostMsg_PreCacheFont, | |
| 171 LOGFONT /* font data */) | |
| 172 #endif // defined(OS_WIN) | |
| 173 | |
| 174 // Reply when the utility process has succeeded in obtaining the value for | |
| 175 // IDBKeyPath. | |
| 176 IPC_MESSAGE_CONTROL2(UtilityHostMsg_IDBKeysFromValuesAndKeyPath_Succeeded, | |
| 177 int /* id */, | |
| 178 std::vector<IndexedDBKey> /* value */) | |
| 179 | |
| 180 // Reply when the utility process has failed in obtaining the value for | |
| 181 // IDBKeyPath. | |
| 182 IPC_MESSAGE_CONTROL1(UtilityHostMsg_IDBKeysFromValuesAndKeyPath_Failed, | |
| 183 int /* id */) | |
| 184 | |
| 185 // Reply when the utility process has finished injecting an IDBKey into | |
| 186 // a SerializedScriptValue. | |
| 187 IPC_MESSAGE_CONTROL1(UtilityHostMsg_InjectIDBKey_Finished, | |
| 188 SerializedScriptValue /* new value */) | |
| 189 | |
| 190 // Reply when the utility process successfully parsed a JSON string. | |
| 191 // | |
| 192 // WARNING: The result can be of any Value subclass type, but we can't easily | |
| 193 // pass indeterminate value types by const object reference with our IPC macros, | |
| 194 // so we put the result Value into a ListValue. Handlers should examine the | |
| 195 // first (and only) element of the ListValue for the actual result. | |
| 196 IPC_MESSAGE_CONTROL1(UtilityHostMsg_ParseJSON_Succeeded, | |
| 197 ListValue) | |
| 198 | |
| 199 // Reply when the utility process failed in parsing a JSON string. | |
| 200 IPC_MESSAGE_CONTROL1(UtilityHostMsg_ParseJSON_Failed, | |
| 201 std::string /* error message, if any*/) | |
| 202 | |
| 203 // Reply when the utility process has succeeded in obtaining the printer | |
| 204 // capabilities and defaults. | |
| 205 IPC_MESSAGE_CONTROL2(UtilityHostMsg_GetPrinterCapsAndDefaults_Succeeded, | |
| 206 std::string /* printer name */, | |
| 207 printing::PrinterCapsAndDefaults) | |
| 208 | |
| 209 // Reply when the utility process has failed to obtain the printer | |
| 210 // capabilities and defaults. | |
| 211 IPC_MESSAGE_CONTROL1(UtilityHostMsg_GetPrinterCapsAndDefaults_Failed, | |
| 212 std::string /* printer name */) | |
| OLD | NEW |