1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// IPC messages for extensions. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Multiply-included message file, hence no include guard. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <vector> 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/memory/shared_memory.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/common_param_traits.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/common/socket_permission_request.h" 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "extensions/common/api/messaging/message.h" 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "extensions/common/draggable_region.h" 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/extension.h" 181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "extensions/common/extensions_client.h" 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "extensions/common/permissions/media_galleries_permission_data.h" 201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "extensions/common/permissions/permission_set.h" 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "extensions/common/permissions/socket_permission_data.h" 22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "extensions/common/permissions/usb_device_permission_data.h" 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "extensions/common/url_pattern.h" 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "extensions/common/url_pattern_set.h" 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "extensions/common/view_type.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_macros.h" 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_START ExtensionMsgStart 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_ENUM_TRAITS_MAX_VALUE(extensions::ViewType, extensions::VIEW_TYPE_LAST) 325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_ENUM_TRAITS_MAX_VALUE(content::SocketPermissionRequest::OperationType, 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) content::SocketPermissionRequest::OPERATION_TYPE_LAST) 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Parameters structure for ExtensionHostMsg_AddAPIActionToActivityLog and 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// ExtensionHostMsg_AddEventToActivityLog. 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_BEGIN(ExtensionHostMsg_APIActionOrEvent_Params) 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // API name. 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, api_call) 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // List of arguments. 427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) IPC_STRUCT_MEMBER(base::ListValue, arguments) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Extra logging information. 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, extra) 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_END() 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Parameters structure for ExtensionHostMsg_AddDOMActionToActivityLog. 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_BEGIN(ExtensionHostMsg_DOMAction_Params) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // URL of the page. 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(GURL, url) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Title of the page. 54a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) IPC_STRUCT_MEMBER(base::string16, url_title) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // API name. 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, api_call) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // List of arguments. 607d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) IPC_STRUCT_MEMBER(base::ListValue, arguments) 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 62868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // Type of DOM API call. 63868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) IPC_STRUCT_MEMBER(int, call_type) 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_END() 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Parameters structure for ExtensionHostMsg_Request. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(ExtensionHostMsg_Request_Params) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Message name. 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(std::string, name) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // List of message arguments. 727d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) IPC_STRUCT_MEMBER(base::ListValue, arguments) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Extension ID this request was sent from. This can be empty, in the case 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // where we expose APIs to normal web pages using the extension function 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // system. 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(std::string, extension_id) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URL of the frame the request was sent from. This isn't necessarily an 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // extension url. Extension requests can also originate from content scripts, 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // in which case extension_id will indicate the ID of the associated 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // extension. Or, they can originate from hosted apps or normal web pages. 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(GURL, source_url) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // The id of the tab that sent this request, or -1 if there is no source tab. 865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) IPC_STRUCT_MEMBER(int, source_tab_id) 875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Unique request id to match requests and responses. 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(int, request_id) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if request has a callback specified. 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, has_callback) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if request is executed in response to an explicit user gesture. 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, user_gesture) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END() 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Allows an extension to execute code in a tab. 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(ExtensionMsg_ExecuteCode_Params) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The extension API request id, for responding. 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(int, request_id) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The ID of the requesting extension. To know which isolated world to 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // execute the code inside of. 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(std::string, extension_id) 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether the code is JavaScript or CSS. 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, is_javascript) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // String of code to execute. 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(std::string, code) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 113a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // The webview guest source who calls to execute code. 114a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch IPC_STRUCT_MEMBER(GURL, webview_src) 115a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether to inject into all frames, or only the root frame. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, all_frames) 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 119cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Whether to inject into about:blank (sub)frames. 120cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, match_about_blank) 121cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // When to inject the code. 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(int, run_at) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether to execute code in the main world (as opposed to an isolated 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // world). 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, in_main_world) 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Whether the request is coming from a <webview>. 1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(bool, is_web_view) 131424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 132424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // Whether the caller is interested in the result value. Manifest-declared 133424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // content scripts and executeScript() calls without a response callback 134424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) // are examples of when this will be false. 135424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, wants_result) 1364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // The URL of the file that was injected, if any. 1384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) IPC_STRUCT_MEMBER(GURL, file_url) 139a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 140a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Whether the code to be executed should be associated with a user gesture. 141a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, user_gesture) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END() 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Struct containing the data for external connections to extensions. Used to 145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// handle the IPCs initiated by both connect() and onConnect(). 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_BEGIN(ExtensionMsg_ExternalConnectionInfo) 147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The ID of the extension that is the target of the request. 148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, target_id) 149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The ID of the extension that initiated the request. May be empty if it 151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // wasn't initiated by an extension. 152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, source_id) 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The URL of the frame that initiated the request. 155c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) IPC_STRUCT_MEMBER(GURL, source_url) 156c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_END() 157c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 158f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Parameters structure for ExtensionMsg_UpdatePermissions. 159f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IPC_STRUCT_BEGIN(ExtensionMsg_UpdatePermissions_Params) 160f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) IPC_STRUCT_MEMBER(int /* UpdateExtensionPermissionsInfo::REASON */, reason_id) 161f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, extension_id) 162f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) IPC_STRUCT_MEMBER(extensions::APIPermissionSet, apis) 163f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) IPC_STRUCT_MEMBER(extensions::ManifestPermissionSet, manifest_permissions) 164f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) IPC_STRUCT_MEMBER(extensions::URLPatternSet, explicit_hosts) 165f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) IPC_STRUCT_MEMBER(extensions::URLPatternSet, scriptable_hosts) 166f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IPC_STRUCT_END() 167f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(extensions::DraggableRegion) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(draggable) 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(bounds) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_TRAITS_END() 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(content::SocketPermissionRequest) 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(type) 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(host) 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(port) 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_END() 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(extensions::SocketPermissionEntry) 18068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(pattern_) 18168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(match_subdomains_) 18268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)IPC_STRUCT_TRAITS_END() 18368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(extensions::SocketPermissionData) 18568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(entry()) 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_END() 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(extensions::UsbDevicePermissionData) 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(vendor_id()) 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(product_id()) 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_END() 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(extensions::MediaGalleriesPermissionData) 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(permission()) 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_END() 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1971e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(extensions::Message) 1981e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(data) 1991e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) IPC_STRUCT_TRAITS_MEMBER(user_gesture) 2001e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)IPC_STRUCT_TRAITS_END() 2011e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Singly-included section for custom IPC traits. 203a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifndef EXTENSIONS_COMMON_EXTENSION_MESSAGES_H_ 204a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EXTENSIONS_COMMON_EXTENSION_MESSAGES_H_ 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// IPC_MESSAGE macros choke on extra , in the std::map, when expanding. We need 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to typedef it to avoid that. 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Substitution map for l10n messages. 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::map<std::string, std::string> SubstitutionMap; 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Map of extensions IDs to the executing script paths. 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef std::map<std::string, std::set<std::string> > ExecutingScriptsMap; 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ExtensionMsg_Loaded_Params { 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ExtensionMsg_Loaded_Params(); 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~ExtensionMsg_Loaded_Params(); 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) explicit ExtensionMsg_Loaded_Params(const extensions::Extension* extension); 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Creates a new extension from the data in this object. 220c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_refptr<extensions::Extension> ConvertToExtension( 221c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string* error) const; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The subset of the extension manifest data we send to renderers. 2247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) linked_ptr<base::DictionaryValue> manifest; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The location the extension was installed from. 2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extensions::Manifest::Location location; 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The path the extension was loaded from. This is used in the renderer only 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to generate the extension ID for extensions that are loaded unpacked. 2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath path; 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The extension's active permissions. 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) extensions::APIPermissionSet apis; 235f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) extensions::ManifestPermissionSet manifest_permissions; 2362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extensions::URLPatternSet explicit_hosts; 2372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extensions::URLPatternSet scriptable_hosts; 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We keep this separate so that it can be used in logging. 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string id; 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Send creation flags so extension is initialized identically. 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int creation_flags; 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace IPC { 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <> 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ParamTraits<URLPattern> { 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef URLPattern param_type; 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Write(Message* m, const param_type& p); 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static bool Read(const Message* m, PickleIterator* iter, param_type* p); 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Log(const param_type& p, std::string* l); 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <> 2572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct ParamTraits<extensions::URLPatternSet> { 2582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef extensions::URLPatternSet param_type; 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Write(Message* m, const param_type& p); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static bool Read(const Message* m, PickleIterator* iter, param_type* p); 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Log(const param_type& p, std::string* l); 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <> 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ParamTraits<extensions::APIPermission::ID> { 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef extensions::APIPermission::ID param_type; 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Write(Message* m, const param_type& p); 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static bool Read(const Message* m, PickleIterator* iter, param_type* p); 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Log(const param_type& p, std::string* l); 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <> 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ParamTraits<extensions::APIPermissionSet> { 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef extensions::APIPermissionSet param_type; 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Write(Message* m, const param_type& p); 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static bool Read(const Message* m, PickleIterator* iter, param_type* r); 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Log(const param_type& p, std::string* l); 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template <> 281f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct ParamTraits<extensions::ManifestPermissionSet> { 282f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) typedef extensions::ManifestPermissionSet param_type; 283f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) static void Write(Message* m, const param_type& p); 284f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) static bool Read(const Message* m, PickleIterator* iter, param_type* r); 285f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) static void Log(const param_type& p, std::string* l); 286f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 287f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 288f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)template <> 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ParamTraits<ExtensionMsg_Loaded_Params> { 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef ExtensionMsg_Loaded_Params param_type; 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Write(Message* m, const param_type& p); 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static bool Read(const Message* m, PickleIterator* iter, param_type* p); 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static void Log(const param_type& p, std::string* l); 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace IPC 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 298a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif // EXTENSIONS_COMMON_EXTENSION_MESSAGES_H_ 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Messages sent from the browser to the renderer. 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The browser sends this message in response to all extension api calls. The 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// response data (if any) is one of the base::Value subclasses, wrapped as the 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// first element in a ListValue. 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED4(ExtensionMsg_Response, 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* request_id */, 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* success */, 3087d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::ListValue /* response wrapper (see comment above) */, 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* error */) 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 311868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// This message is optionally routed. If used as a control message, it will 312868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// call a javascript function |function_name| from module |module_name| in 313868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// every registered context in the target process. If routed, it will be 314868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// restricted to the contexts that are part of the target RenderView. 315868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If |extension_id| is non-empty, the function will be invoked only in 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// contexts owned by the extension. |args| is a list of primitive Value types 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that are passed to the function. 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED5(ExtensionMsg_MessageInvoke, 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 321868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) std::string /* module_name */, 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* function_name */, 3237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::ListValue /* args */, 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* delivered as part of a user gesture */) 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the renderer process all known extension function names. 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_SetFunctionNames, 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<std::string>) 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Tell the renderer process the platforms system font. 3317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionMsg_SetSystemFont, 3327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string /* font_family */, 3337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string /* font_size */) 3347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Marks an extension as 'active' in an extension process. 'Active' extensions 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// have more privileges than other extension content that might end up running 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// in the process (e.g. because of iframes or content scripts). 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_ActivateExtension, 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */) 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies the renderer that extensions were loaded in the browser. 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_Loaded, 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<ExtensionMsg_Loaded_Params>) 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies the renderer that an extension was unloaded in the browser. 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_Unloaded, 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string) 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Updates the scripting whitelist for extensions in the render process. This is 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// only used for testing. 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_SetScriptingWhitelist, 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // extension ids 3531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) extensions::ExtensionsClient::ScriptingWhitelist) 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notification that renderer should run some JavaScript code. 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionMsg_ExecuteCode, 3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ExtensionMsg_ExecuteCode_Params) 3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notification that the user scripts have been updated. It has one 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// SharedMemoryHandle argument consisting of the pickled script data. This 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// handle is valid in the context of the renderer. 362cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// If |changed_extensions| is not empty, only the extensions in that set will 363cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// be updated. Otherwise, all extensions will be updated. 364cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionMsg_UpdateUserScripts, 365cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) base::SharedMemoryHandle, 366cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) std::set<std::string> /* changed extensions */) 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the render view which browser window it's being attached to. 3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionMsg_UpdateBrowserWindowId, 3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* id of browser window */) 3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the render view what its tab ID is. 3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionMsg_SetTabId, 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* id of tab */) 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the renderer to update an extension's permission set. 377f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_UpdatePermissions, 378f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ExtensionMsg_UpdatePermissions_Params) 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the renderer about new tab-specific permissions for an extension. 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL4(ExtensionMsg_UpdateTabSpecificPermissions, 3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 /* page_id (only relevant for the target tab) */, 3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* tab_id */, 3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 3852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) extensions::URLPatternSet /* hosts */) 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the renderer to clear tab-specific permissions for some extensions. 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionMsg_ClearTabSpecificPermissions, 3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* tab_id */, 3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<std::string> /* extension_ids */) 3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the renderer which type this view is. 3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionMsg_NotifyRenderViewType, 394c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) extensions::ViewType /* view_type */) 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Deliver a message sent with ExtensionHostMsg_PostMessage. 397f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_UsingWebRequestAPI, 398f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) bool /* webrequest_used */) 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Ask the lazy background page if it is ready to be suspended. This is sent 4012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// when the page is considered idle. The renderer will reply with the same 4022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// sequence_id so that we can tell which message it is responding to. 4032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionMsg_ShouldSuspend, 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* sequence_id */) 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// If we complete a round of ShouldSuspend->ShouldSuspendAck messages without 4082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// the lazy background page becoming active again, we are ready to unload. This 4092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// message tells the page to dispatch the suspend event. 4102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_Suspend, 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */) 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The browser changed its mind about suspending this extension. 4142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_CancelSuspend, 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */) 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Response to the renderer for ExtensionHostMsg_GetAppInstallState. 4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(ExtensionMsg_GetAppInstallStateResponse, 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* state */, 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 /* callback_id */) 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Dispatch the Port.onConnect event for message channels. 4234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)IPC_MESSAGE_ROUTED5(ExtensionMsg_DispatchOnConnect, 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* target_port_id */, 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* channel_name */, 4267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::DictionaryValue /* source_tab */, 4274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ExtensionMsg_ExternalConnectionInfo, 4284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) std::string /* tls_channel_id */) 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Deliver a message sent with ExtensionHostMsg_PostMessage. 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(ExtensionMsg_DeliverMessage, 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* target_port_id */, 4331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) extensions::Message) 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Dispatch the Port.onDisconnect event for message channels. 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(ExtensionMsg_DispatchOnDisconnect, 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* port_id */, 4382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string /* error_message */) 4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Informs the renderer what channel (dev, beta, stable, etc) is running. 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_SetChannel, 4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* channel */) 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Adds a logging message to the renderer's root frame DevTools console. 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(ExtensionMsg_AddMessageToConsole, 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::ConsoleMessageLevel /* level */, 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* message */) 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the renderer that its window has closed. 4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(ExtensionMsg_AppWindowClosed) 4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Notify the renderer that an extension wants notifications when certain 4532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// searches match the active page. This message replaces the old set of 4542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// searches, and triggers ExtensionHostMsg_OnWatchedPageChange messages from 4552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// each tab to keep the browser updated about changes. 4562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_WatchPages, 4572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::vector<std::string> /* CSS selectors */) 4582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 45946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Send by the browser to indicate a Blob handle has been transferred to the 46046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// renderer. This is sent after the actual extension response, and depends on 46146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// the sequential nature of IPCs so that the blob has already been caught. 46246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// This is a separate control message, so that the renderer process will send 46346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// an acknowledgement even if the RenderView has closed or navigated away. 46446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionMsg_TransferBlobs, 46546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::vector<std::string> /* blob_uuids */) 46646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Messages sent from the renderer to the browser. 4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A renderer sends this message when an extension process starts an API 4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// request. The browser will always respond with a ExtensionMsg_Response. 4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionHostMsg_Request, 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ExtensionHostMsg_Request_Params) 4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A renderer sends this message when an extension process starts an API 4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// request. The browser will always respond with a ExtensionMsg_Response. 4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_RequestForIOThread, 4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* routing_id */, 4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ExtensionHostMsg_Request_Params) 4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser that the given extension added a listener to an event. 4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_AddListener, 4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* name */) 4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser that the given extension removed a listener from an 4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// event. 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_RemoveListener, 4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* name */) 4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser that the given extension added a listener to an event from 4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// a lazy background page. 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_AddLazyListener, 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* name */) 4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser that the given extension is no longer interested in 4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// receiving the given event from a lazy background page. 4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_RemoveLazyListener, 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* name */) 5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser that the given extension added a listener to instances of 5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the named event that satisfy the filter. 5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL4(ExtensionHostMsg_AddFilteredListener, 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* name */, 5087d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::DictionaryValue /* filter */, 5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* lazy */) 5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser that the given extension is no longer interested in 5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// instances of the named event that satisfy the filter. 5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL4(ExtensionHostMsg_RemoveFilteredListener, 5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* name */, 5167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::DictionaryValue /* filter */, 5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* lazy */) 5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser that an event has finished being dispatched. 5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(ExtensionHostMsg_EventAck) 5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Open a channel to all listening contexts owned by the extension with 5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the given ID. This always returns a valid port ID which can be used for 5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// sending messages. If an error occurred, the opener will be notified 5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// asynchronously. 5264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL4_1(ExtensionHostMsg_OpenChannelToExtension, 5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* routing_id */, 528c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ExtensionMsg_ExternalConnectionInfo, 5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* channel_name */, 5304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) bool /* include_tls_channel_id */, 5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* port_id */) 5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL3_1(ExtensionHostMsg_OpenChannelToNativeApp, 5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* routing_id */, 5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* source_extension_id */, 5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* native_app_name */, 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* port_id */) 5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Get a port handle to the given tab. The handle can be used for sending 5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// messages to the extension. 5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL4_1(ExtensionHostMsg_OpenChannelToTab, 5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* routing_id */, 5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* tab_id */, 5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* channel_name */, 5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* port_id */) 5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Send a message to an extension process. The handle is the value returned 5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// by ViewHostMsg_OpenChannelTo*. 5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(ExtensionHostMsg_PostMessage, 5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* port_id */, 5521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) extensions::Message) 5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Send a message to an extension process. The handle is the value returned 5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// by ViewHostMsg_OpenChannelTo*. 5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_CloseChannel, 5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* port_id */, 5582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string /* error_message */) 5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Used to get the extension message bundle. 5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_1(ExtensionHostMsg_GetMessageBundle, 5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension id */, 5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SubstitutionMap /* message bundle */) 5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sent from the renderer to the browser to return the script running result. 566c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_MESSAGE_ROUTED5( 567c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ExtensionHostMsg_ExecuteCodeFinished, 568c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int /* request id */, 569c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string /* error; empty implies success */, 570c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int32 /* page_id the code executed on. May be -1 if unsuccessful */, 571c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) GURL /* URL of the code executed on. May be empty if unsuccessful. */, 5727d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::ListValue /* result of the script */) 5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sent from the renderer to the browser to notify that content scripts are 5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// running in the renderer that the IPC originated from. 5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Note that the page_id is for the parent (or more accurately the topmost) 5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// frame (e.g. if executing in an iframe this is the page ID of the parent, 5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// unless the parent is an iframe... etc). 5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED3(ExtensionHostMsg_ContentScriptsExecuting, 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ExecutingScriptsMap, 5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 /* page_id of the _topmost_ frame */, 5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL /* url of the _topmost_ frame */) 5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 584cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Sent from the renderer to the browser to request permission for a content 585cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// script to execute on a given page. 586cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// If request id is -1, this signals that the request has already ran, and this 587cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// merely serves as a notification. This happens when the feature to disable 588cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// scripts running without user consent is not enabled. 589cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_ROUTED3(ExtensionHostMsg_RequestContentScriptPermission, 590cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) std::string /* extension id */, 591cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) int /* page id */, 592cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) int /* request id */) 593cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 594cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Sent from the browser to the renderer in reply to a 595cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// RequestContentScriptPermission message, granting permission for a content 596cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// script to run. 597cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionMsg_GrantContentScriptPermission, 598cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) int /* request id */) 599cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sent by the renderer when a web page is checking if its app is installed. 6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED3(ExtensionHostMsg_GetAppInstallState, 6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL /* requestor_url */, 6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 /* return_route_id */, 6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 /* callback_id */) 6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Optional Ack message sent to the browser to notify that the response to a 6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// function has been processed. 6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionHostMsg_ResponseAck, 6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* request_id */) 6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Response to ExtensionMsg_ShouldSuspend. 6122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_ShouldSuspendAck, 6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */, 6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* sequence_id */) 6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Response to ExtensionMsg_Suspend, after we dispatch the suspend event. 6172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionHostMsg_SuspendAck, 6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* extension_id */) 6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Informs the browser to increment the keepalive count for the lazy background 6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// page, keeping it alive. 6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(ExtensionHostMsg_IncrementLazyKeepaliveCount) 6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Informs the browser there is one less thing keeping the lazy background page 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// alive. 6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(ExtensionHostMsg_DecrementLazyKeepaliveCount) 6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Fetches a globally unique ID (for the lifetime of the browser) from the 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// browser process. 6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL0_1(ExtensionHostMsg_GenerateUniqueID, 6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* unique_id */) 6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Resumes resource requests for a newly created app window. 6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionHostMsg_ResumeRequests, int /* route_id */) 6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sent by the renderer when the draggable regions are updated. 6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionHostMsg_UpdateDraggableRegions, 6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<extensions::DraggableRegion> /* regions */) 6392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 640c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Sent by the renderer to log an API action to the extension activity log. 641c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_AddAPIActionToActivityLog, 642c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string /* extension_id */, 643c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ExtensionHostMsg_APIActionOrEvent_Params) 644c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 645c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Sent by the renderer to log an event to the extension activity log. 646c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_AddEventToActivityLog, 647c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string /* extension_id */, 648c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ExtensionHostMsg_APIActionOrEvent_Params) 649c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 650c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Sent by the renderer to log a DOM action to the extension activity log. 6512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL2(ExtensionHostMsg_AddDOMActionToActivityLog, 6522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string /* extension_id */, 6532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ExtensionHostMsg_DOMAction_Params) 6542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Notifies the browser process that a tab has started or stopped matching 6562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// certain conditions. This message is sent in response to several events: 6572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// 6582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// * ExtensionMsg_WatchPages was received, updating the set of conditions. 6595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// * A new page is loaded. This will be sent after 6605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// FrameHostMsg_DidCommitProvisionalLoad. Currently this only fires for the 6615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// main frame. 6622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// * Something changed on an existing frame causing the set of matching searches 6632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// to change. 6642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED1(ExtensionHostMsg_OnWatchedPageChange, 6652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::vector<std::string> /* Matching CSS selectors */) 66646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 66746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Sent by the renderer when it has received a Blob handle from the browser. 66846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)IPC_MESSAGE_CONTROL1(ExtensionHostMsg_TransferBlobsAck, 66946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) std::vector<std::string> /* blob_uuids */) 670