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, hence no include guard. 6 7 #include "ipc/ipc_message_macros.h" 8 #include "content/common/appcache_interfaces.h" 9 10 #define IPC_MESSAGE_START AppCacheMsgStart 11 12 IPC_ENUM_TRAITS_MAX_VALUE(content::AppCacheEventID, 13 content::APPCACHE_EVENT_ID_LAST) 14 IPC_ENUM_TRAITS_MAX_VALUE(content::AppCacheStatus, 15 content::APPCACHE_STATUS_LAST) 16 IPC_ENUM_TRAITS_MAX_VALUE(content::AppCacheErrorReason, 17 content::APPCACHE_ERROR_REASON_LAST) 18 19 IPC_STRUCT_TRAITS_BEGIN(content::AppCacheInfo) 20 IPC_STRUCT_TRAITS_MEMBER(manifest_url) 21 IPC_STRUCT_TRAITS_MEMBER(creation_time) 22 IPC_STRUCT_TRAITS_MEMBER(last_update_time) 23 IPC_STRUCT_TRAITS_MEMBER(last_access_time) 24 IPC_STRUCT_TRAITS_MEMBER(cache_id) 25 IPC_STRUCT_TRAITS_MEMBER(group_id) 26 IPC_STRUCT_TRAITS_MEMBER(status) 27 IPC_STRUCT_TRAITS_MEMBER(size) 28 IPC_STRUCT_TRAITS_MEMBER(is_complete) 29 IPC_STRUCT_TRAITS_END() 30 31 IPC_STRUCT_TRAITS_BEGIN(content::AppCacheResourceInfo) 32 IPC_STRUCT_TRAITS_MEMBER(url) 33 IPC_STRUCT_TRAITS_MEMBER(size) 34 IPC_STRUCT_TRAITS_MEMBER(is_master) 35 IPC_STRUCT_TRAITS_MEMBER(is_manifest) 36 IPC_STRUCT_TRAITS_MEMBER(is_fallback) 37 IPC_STRUCT_TRAITS_MEMBER(is_foreign) 38 IPC_STRUCT_TRAITS_MEMBER(is_explicit) 39 IPC_STRUCT_TRAITS_END() 40 41 IPC_STRUCT_TRAITS_BEGIN(content::AppCacheErrorDetails) 42 IPC_STRUCT_TRAITS_MEMBER(message) 43 IPC_STRUCT_TRAITS_MEMBER(reason) 44 IPC_STRUCT_TRAITS_MEMBER(url) 45 IPC_STRUCT_TRAITS_MEMBER(status) 46 IPC_STRUCT_TRAITS_MEMBER(is_cross_origin) 47 IPC_STRUCT_TRAITS_END() 48 49 // AppCache messages sent from the child process to the browser. 50 51 // Informs the browser of a new appcache host. 52 IPC_MESSAGE_CONTROL1(AppCacheHostMsg_RegisterHost, 53 int /* host_id */) 54 55 // Informs the browser of an appcache host being destroyed. 56 IPC_MESSAGE_CONTROL1(AppCacheHostMsg_UnregisterHost, 57 int /* host_id */) 58 59 // Informs the browser of which host caused another to be created. 60 // This can influence which appcache should be utilized for the main 61 // resource load into the newly created host, so it should be sent 62 // prior to the main resource request being initiated. 63 IPC_MESSAGE_CONTROL2(AppCacheHostMsg_SetSpawningHostId, 64 int /* host_id */, 65 int /* spawning_host_id */) 66 67 // Initiates the cache selection algorithm for the given host. 68 // This is sent prior to any subresource loads. An AppCacheMsg_CacheSelected 69 // message will be sent in response. 70 // 'host_id' indentifies a specific document or worker 71 // 'document_url' the url of the main resource 72 // 'appcache_document_was_loaded_from' the id of the appcache the main 73 // resource was loaded from or kAppCacheNoCacheId 74 // 'opt_manifest_url' the manifest url specified in the <html> tag if any 75 IPC_MESSAGE_CONTROL4(AppCacheHostMsg_SelectCache, 76 int /* host_id */, 77 GURL /* document_url */, 78 int64 /* appcache_document_was_loaded_from */, 79 GURL /* opt_manifest_url */) 80 81 // Initiates worker specific cache selection algorithm for the given host. 82 IPC_MESSAGE_CONTROL3(AppCacheHostMsg_SelectCacheForWorker, 83 int /* host_id */, 84 int /* parent_process_id */, 85 int /* parent_host_id */) 86 IPC_MESSAGE_CONTROL2(AppCacheHostMsg_SelectCacheForSharedWorker, 87 int /* host_id */, 88 int64 /* appcache_id */) 89 90 // Informs the browser of a 'foreign' entry in an appcache. 91 IPC_MESSAGE_CONTROL3(AppCacheHostMsg_MarkAsForeignEntry, 92 int /* host_id */, 93 GURL /* document_url */, 94 int64 /* appcache_document_was_loaded_from */) 95 96 // Returns the status of the appcache associated with host_id. 97 IPC_SYNC_MESSAGE_CONTROL1_1(AppCacheHostMsg_GetStatus, 98 int /* host_id */, 99 content::AppCacheStatus) 100 101 // Initiates an update of the appcache associated with host_id. 102 IPC_SYNC_MESSAGE_CONTROL1_1(AppCacheHostMsg_StartUpdate, 103 int /* host_id */, 104 bool /* success */) 105 106 // Swaps a new pending appcache, if there is one, into use for host_id. 107 IPC_SYNC_MESSAGE_CONTROL1_1(AppCacheHostMsg_SwapCache, 108 int /* host_id */, 109 bool /* success */) 110 111 // Gets resource list from appcache synchronously. 112 IPC_SYNC_MESSAGE_CONTROL1_1(AppCacheHostMsg_GetResourceList, 113 int /* host_id in*/, 114 std::vector<content::AppCacheResourceInfo> 115 /* resources out */) 116 117 118 // AppCache messages sent from the browser to the child process. 119 120 // Notifies the renderer of the appcache that has been selected for a 121 // a particular host. This is sent in reply to AppCacheHostMsg_SelectCache. 122 IPC_MESSAGE_CONTROL2(AppCacheMsg_CacheSelected, 123 int /* host_id */, 124 content::AppCacheInfo) 125 126 // Notifies the renderer of an AppCache status change. 127 IPC_MESSAGE_CONTROL2(AppCacheMsg_StatusChanged, 128 std::vector<int> /* host_ids */, 129 content::AppCacheStatus) 130 131 // Notifies the renderer of an AppCache event other than the 132 // progress event which has a seperate message. 133 IPC_MESSAGE_CONTROL2(AppCacheMsg_EventRaised, 134 std::vector<int> /* host_ids */, 135 content::AppCacheEventID) 136 137 // Notifies the renderer of an AppCache progress event. 138 IPC_MESSAGE_CONTROL4(AppCacheMsg_ProgressEventRaised, 139 std::vector<int> /* host_ids */, 140 GURL /* url being processed */, 141 int /* total */, 142 int /* complete */) 143 144 // Notifies the renderer of an AppCache error event. 145 IPC_MESSAGE_CONTROL2(AppCacheMsg_ErrorEventRaised, 146 std::vector<int> /* host_ids */, 147 content::AppCacheErrorDetails) 148 149 // Notifies the renderer of an AppCache logging message. 150 IPC_MESSAGE_CONTROL3(AppCacheMsg_LogMessage, 151 int /* host_id */, 152 int /* log_level */, 153 std::string /* message */) 154 155 // Notifies the renderer of the fact that AppCache access was blocked. 156 IPC_MESSAGE_CONTROL2(AppCacheMsg_ContentBlocked, 157 int /* host_id */, 158 GURL /* manifest_url */) 159