OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // IPC messages for extensions. | 5 // IPC messages for extensions. |
6 // Multiply-included message file, hence no include guard. | 6 // Multiply-included message file, hence no include guard. |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <string> | 10 #include <string> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/memory/shared_memory.h" | 13 #include "base/memory/shared_memory.h" |
14 #include "base/values.h" | 14 #include "base/values.h" |
15 #include "components/version_info/version_info.h" | 15 #include "components/version_info/version_info.h" |
16 #include "content/public/common/common_param_traits.h" | 16 #include "content/public/common/common_param_traits.h" |
17 #include "content/public/common/socket_permission_request.h" | 17 #include "content/public/common/socket_permission_request.h" |
18 #include "extensions/common/api/messaging/message.h" | 18 #include "extensions/common/api/messaging/message.h" |
| 19 #include "extensions/common/api/messaging/port_id.h" |
19 #include "extensions/common/draggable_region.h" | 20 #include "extensions/common/draggable_region.h" |
20 #include "extensions/common/extension.h" | 21 #include "extensions/common/extension.h" |
21 #include "extensions/common/extensions_client.h" | 22 #include "extensions/common/extensions_client.h" |
22 #include "extensions/common/features/feature_session_type.h" | 23 #include "extensions/common/features/feature_session_type.h" |
23 #include "extensions/common/host_id.h" | 24 #include "extensions/common/host_id.h" |
24 #include "extensions/common/permissions/media_galleries_permission_data.h" | 25 #include "extensions/common/permissions/media_galleries_permission_data.h" |
25 #include "extensions/common/permissions/permission_set.h" | 26 #include "extensions/common/permissions/permission_set.h" |
26 #include "extensions/common/permissions/socket_permission_data.h" | 27 #include "extensions/common/permissions/socket_permission_data.h" |
27 #include "extensions/common/permissions/usb_device_permission_data.h" | 28 #include "extensions/common/permissions/usb_device_permission_data.h" |
28 #include "extensions/common/stack_frame.h" | 29 #include "extensions/common/stack_frame.h" |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 | 254 |
254 IPC_STRUCT_TRAITS_BEGIN(extensions::MediaGalleriesPermissionData) | 255 IPC_STRUCT_TRAITS_BEGIN(extensions::MediaGalleriesPermissionData) |
255 IPC_STRUCT_TRAITS_MEMBER(permission()) | 256 IPC_STRUCT_TRAITS_MEMBER(permission()) |
256 IPC_STRUCT_TRAITS_END() | 257 IPC_STRUCT_TRAITS_END() |
257 | 258 |
258 IPC_STRUCT_TRAITS_BEGIN(extensions::Message) | 259 IPC_STRUCT_TRAITS_BEGIN(extensions::Message) |
259 IPC_STRUCT_TRAITS_MEMBER(data) | 260 IPC_STRUCT_TRAITS_MEMBER(data) |
260 IPC_STRUCT_TRAITS_MEMBER(user_gesture) | 261 IPC_STRUCT_TRAITS_MEMBER(user_gesture) |
261 IPC_STRUCT_TRAITS_END() | 262 IPC_STRUCT_TRAITS_END() |
262 | 263 |
| 264 IPC_STRUCT_TRAITS_BEGIN(extensions::PortId) |
| 265 IPC_STRUCT_TRAITS_MEMBER(context_id) |
| 266 IPC_STRUCT_TRAITS_MEMBER(port_number) |
| 267 IPC_STRUCT_TRAITS_MEMBER(is_opener) |
| 268 IPC_STRUCT_TRAITS_END() |
| 269 |
263 // Singly-included section for custom IPC traits. | 270 // Singly-included section for custom IPC traits. |
264 #ifndef EXTENSIONS_COMMON_EXTENSION_MESSAGES_H_ | 271 #ifndef EXTENSIONS_COMMON_EXTENSION_MESSAGES_H_ |
265 #define EXTENSIONS_COMMON_EXTENSION_MESSAGES_H_ | 272 #define EXTENSIONS_COMMON_EXTENSION_MESSAGES_H_ |
266 | 273 |
267 // IPC_MESSAGE macros choke on extra , in the std::map, when expanding. We need | 274 // IPC_MESSAGE macros choke on extra , in the std::map, when expanding. We need |
268 // to typedef it to avoid that. | 275 // to typedef it to avoid that. |
269 // Substitution map for l10n messages. | 276 // Substitution map for l10n messages. |
270 typedef std::map<std::string, std::string> SubstitutionMap; | 277 typedef std::map<std::string, std::string> SubstitutionMap; |
271 | 278 |
272 // Map of extensions IDs to the executing script paths. | 279 // Map of extensions IDs to the executing script paths. |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 std::string /* extension_id */) | 589 std::string /* extension_id */) |
583 | 590 |
584 // Response to the renderer for ExtensionHostMsg_GetAppInstallState. | 591 // Response to the renderer for ExtensionHostMsg_GetAppInstallState. |
585 IPC_MESSAGE_ROUTED2(ExtensionMsg_GetAppInstallStateResponse, | 592 IPC_MESSAGE_ROUTED2(ExtensionMsg_GetAppInstallStateResponse, |
586 std::string /* state */, | 593 std::string /* state */, |
587 int32_t /* callback_id */) | 594 int32_t /* callback_id */) |
588 | 595 |
589 // Check whether the Port for extension messaging exists in the frame. If the | 596 // Check whether the Port for extension messaging exists in the frame. If the |
590 // port ID is unknown, the frame replies with ExtensionHostMsg_CloseMessagePort. | 597 // port ID is unknown, the frame replies with ExtensionHostMsg_CloseMessagePort. |
591 IPC_MESSAGE_ROUTED1(ExtensionMsg_ValidateMessagePort, | 598 IPC_MESSAGE_ROUTED1(ExtensionMsg_ValidateMessagePort, |
592 int /* port_id */) | 599 extensions::PortId /* port_id */) |
593 | 600 |
594 // Dispatch the Port.onConnect event for message channels. | 601 // Dispatch the Port.onConnect event for message channels. |
595 IPC_MESSAGE_ROUTED5(ExtensionMsg_DispatchOnConnect, | 602 IPC_MESSAGE_ROUTED5(ExtensionMsg_DispatchOnConnect, |
596 int /* target_port_id */, | 603 extensions::PortId /* target_port_id */, |
597 std::string /* channel_name */, | 604 std::string /* channel_name */, |
598 ExtensionMsg_TabConnectionInfo /* source */, | 605 ExtensionMsg_TabConnectionInfo /* source */, |
599 ExtensionMsg_ExternalConnectionInfo, | 606 ExtensionMsg_ExternalConnectionInfo, |
600 std::string /* tls_channel_id */) | 607 std::string /* tls_channel_id */) |
601 | 608 |
602 // Deliver a message sent with ExtensionHostMsg_PostMessage. | 609 // Deliver a message sent with ExtensionHostMsg_PostMessage. |
603 IPC_MESSAGE_ROUTED2(ExtensionMsg_DeliverMessage, | 610 IPC_MESSAGE_ROUTED2(ExtensionMsg_DeliverMessage, |
604 int /* target_port_id */, | 611 extensions::PortId /* target_port_id */, |
605 extensions::Message) | 612 extensions::Message) |
606 | 613 |
607 // Dispatch the Port.onDisconnect event for message channels. | 614 // Dispatch the Port.onDisconnect event for message channels. |
608 IPC_MESSAGE_ROUTED2(ExtensionMsg_DispatchOnDisconnect, | 615 IPC_MESSAGE_ROUTED2(ExtensionMsg_DispatchOnDisconnect, |
609 int /* port_id */, | 616 extensions::PortId /* port_id */, |
610 std::string /* error_message */) | 617 std::string /* error_message */) |
611 | 618 |
612 // Informs the renderer what channel (dev, beta, stable, etc) and user session | 619 // Informs the renderer what channel (dev, beta, stable, etc) and user session |
613 // type is running. | 620 // type is running. |
614 IPC_MESSAGE_CONTROL2(ExtensionMsg_SetSessionInfo, | 621 IPC_MESSAGE_CONTROL2(ExtensionMsg_SetSessionInfo, |
615 version_info::Channel /* channel */, | 622 version_info::Channel /* channel */, |
616 extensions::FeatureSessionType /* session_type */) | 623 extensions::FeatureSessionType /* session_type */) |
617 | 624 |
618 // Notify the renderer that its window has closed. | 625 // Notify the renderer that its window has closed. |
619 IPC_MESSAGE_ROUTED0(ExtensionMsg_AppWindowClosed) | 626 IPC_MESSAGE_ROUTED0(ExtensionMsg_AppWindowClosed) |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 IPC_MESSAGE_ROUTED1(ExtensionHostMsg_EventAck, int /* message_id */) | 702 IPC_MESSAGE_ROUTED1(ExtensionHostMsg_EventAck, int /* message_id */) |
696 | 703 |
697 // Open a channel to all listening contexts owned by the extension with | 704 // Open a channel to all listening contexts owned by the extension with |
698 // the given ID. This responds asynchronously with ExtensionMsg_AssignPortId. | 705 // the given ID. This responds asynchronously with ExtensionMsg_AssignPortId. |
699 // If an error occurred, the opener will be notified asynchronously. | 706 // If an error occurred, the opener will be notified asynchronously. |
700 IPC_MESSAGE_CONTROL5(ExtensionHostMsg_OpenChannelToExtension, | 707 IPC_MESSAGE_CONTROL5(ExtensionHostMsg_OpenChannelToExtension, |
701 int /* frame_routing_id */, | 708 int /* frame_routing_id */, |
702 ExtensionMsg_ExternalConnectionInfo, | 709 ExtensionMsg_ExternalConnectionInfo, |
703 std::string /* channel_name */, | 710 std::string /* channel_name */, |
704 bool /* include_tls_channel_id */, | 711 bool /* include_tls_channel_id */, |
705 int /* request_id */) | 712 extensions::PortId /* port_id */) |
706 | |
707 // Same as ExtensionHostMsg_OpenChannelToExtension, but assigns the port id | |
708 // synchronously. | |
709 IPC_SYNC_MESSAGE_CONTROL4_1(ExtensionHostMsg_OpenChannelToExtensionSync, | |
710 int /* frame_routing_id */, | |
711 ExtensionMsg_ExternalConnectionInfo, | |
712 std::string /* channel_name */, | |
713 bool /* include_tls_channel_id */, | |
714 int /* port_id */) | |
715 | |
716 // The response to a request to open an extension message port, including the | |
717 // global port id and the request id. | |
718 IPC_MESSAGE_ROUTED2(ExtensionMsg_AssignPortId, | |
719 int /*port_id */, | |
720 int /* request_id */) | |
721 | 713 |
722 IPC_MESSAGE_CONTROL3(ExtensionHostMsg_OpenChannelToNativeApp, | 714 IPC_MESSAGE_CONTROL3(ExtensionHostMsg_OpenChannelToNativeApp, |
723 int /* frame_routing_id */, | 715 int /* frame_routing_id */, |
724 std::string /* native_app_name */, | 716 std::string /* native_app_name */, |
725 int /* request_id */) | 717 extensions::PortId /* port_id */) |
726 | 718 |
727 // Get a port handle to the given tab. The handle can be used for sending | 719 // Get a port handle to the given tab. The handle can be used for sending |
728 // messages to the extension. | 720 // messages to the extension. |
729 IPC_MESSAGE_CONTROL5(ExtensionHostMsg_OpenChannelToTab, | 721 IPC_MESSAGE_CONTROL5(ExtensionHostMsg_OpenChannelToTab, |
730 int /* frame_routing_id */, | 722 int /* frame_routing_id */, |
731 ExtensionMsg_TabTargetConnectionInfo, | 723 ExtensionMsg_TabTargetConnectionInfo, |
732 std::string /* extension_id */, | 724 std::string /* extension_id */, |
733 std::string /* channel_name */, | 725 std::string /* channel_name */, |
734 int /* request_id */) | 726 extensions::PortId /* port_id */) |
735 | 727 |
736 // Sent in response to ExtensionMsg_DispatchOnConnect when the port is accepted. | 728 // Sent in response to ExtensionMsg_DispatchOnConnect when the port is accepted. |
737 // The handle is the value returned by ExtensionHostMsg_OpenChannelTo*. | 729 // The handle is the value returned by ExtensionHostMsg_OpenChannelTo*. |
738 IPC_MESSAGE_CONTROL2(ExtensionHostMsg_OpenMessagePort, | 730 IPC_MESSAGE_CONTROL2(ExtensionHostMsg_OpenMessagePort, |
739 int /* frame_routing_id */, | 731 int /* frame_routing_id */, |
740 int /* port_id */) | 732 extensions::PortId /* port_id */) |
741 | 733 |
742 // Sent in response to ExtensionMsg_DispatchOnConnect and whenever the port is | 734 // Sent in response to ExtensionMsg_DispatchOnConnect and whenever the port is |
743 // closed. The handle is the value returned by ExtensionHostMsg_OpenChannelTo*. | 735 // closed. The handle is the value returned by ExtensionHostMsg_OpenChannelTo*. |
744 IPC_MESSAGE_CONTROL3(ExtensionHostMsg_CloseMessagePort, | 736 IPC_MESSAGE_CONTROL3(ExtensionHostMsg_CloseMessagePort, |
745 int /* frame_routing_id */, | 737 int /* frame_routing_id */, |
746 int /* port_id */, | 738 extensions::PortId /* port_id */, |
747 bool /* force_close */) | 739 bool /* force_close */) |
748 | 740 |
749 // Send a message to an extension process. The handle is the value returned | 741 // Send a message to an extension process. The handle is the value returned |
750 // by ExtensionHostMsg_OpenChannelTo*. | 742 // by ExtensionHostMsg_OpenChannelTo*. |
751 IPC_MESSAGE_ROUTED2(ExtensionHostMsg_PostMessage, | 743 IPC_MESSAGE_ROUTED2(ExtensionHostMsg_PostMessage, |
752 int /* port_id */, | 744 extensions::PortId /* port_id */, |
753 extensions::Message) | 745 extensions::Message) |
754 | 746 |
755 // Used to get the extension message bundle. | 747 // Used to get the extension message bundle. |
756 IPC_SYNC_MESSAGE_CONTROL1_1(ExtensionHostMsg_GetMessageBundle, | 748 IPC_SYNC_MESSAGE_CONTROL1_1(ExtensionHostMsg_GetMessageBundle, |
757 std::string /* extension id */, | 749 std::string /* extension id */, |
758 SubstitutionMap /* message bundle */) | 750 SubstitutionMap /* message bundle */) |
759 | 751 |
760 // Sent from the renderer to the browser to return the script running result. | 752 // Sent from the renderer to the browser to return the script running result. |
761 IPC_MESSAGE_ROUTED4( | 753 IPC_MESSAGE_ROUTED4( |
762 ExtensionHostMsg_ExecuteCodeFinished, | 754 ExtensionHostMsg_ExecuteCodeFinished, |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
922 int64_t /* service_worker_version_id */, | 914 int64_t /* service_worker_version_id */, |
923 std::string /* request_uuid */) | 915 std::string /* request_uuid */) |
924 | 916 |
925 // Asks the browser to decrement the pending activity count for | 917 // Asks the browser to decrement the pending activity count for |
926 // the worker with version id |service_worker_version_id|. | 918 // the worker with version id |service_worker_version_id|. |
927 // |request_uuid| must match the GUID of a previous request, otherwise the | 919 // |request_uuid| must match the GUID of a previous request, otherwise the |
928 // browser process ignores the IPC. | 920 // browser process ignores the IPC. |
929 IPC_MESSAGE_CONTROL2(ExtensionHostMsg_DecrementServiceWorkerActivity, | 921 IPC_MESSAGE_CONTROL2(ExtensionHostMsg_DecrementServiceWorkerActivity, |
930 int64_t /* service_worker_version_id */, | 922 int64_t /* service_worker_version_id */, |
931 std::string /* request_uuid */) | 923 std::string /* request_uuid */) |
OLD | NEW |