// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Multiply-included message file, no traditional include guard. #include #include #include "base/basictypes.h" #include "base/memory/ref_counted.h" #include "chrome/common/automation_constants.h" #include "chrome/common/content_settings.h" #include "content/public/common/common_param_traits.h" #include "content/public/common/page_type.h" #include "content/public/common/security_style.h" #include "content/public/common/webkit_param_traits.h" #include "googleurl/src/gurl.h" #include "ipc/ipc_message_macros.h" #include "ipc/ipc_message_utils.h" #include "net/base/cert_status_flags.h" #include "net/base/host_port_pair.h" #include "net/base/upload_data.h" #include "net/url_request/url_request_status.h" #include "ui/gfx/rect.h" #include "webkit/glue/window_open_disposition.h" IPC_ENUM_TRAITS(AutomationMsg_NavigationResponseValues) IPC_ENUM_TRAITS(AutomationMsg_ExtensionProperty) IPC_ENUM_TRAITS(content::PageType) IPC_ENUM_TRAITS(content::SecurityStyle) IPC_STRUCT_BEGIN(AutomationMsg_Find_Params) // The word(s) to find on the page. IPC_STRUCT_MEMBER(string16, search_string) // Whether to search forward or backward within the page. IPC_STRUCT_MEMBER(bool, forward) // Whether search should be Case sensitive. IPC_STRUCT_MEMBER(bool, match_case) // Whether this operation is first request (Find) or a follow-up (FindNext). IPC_STRUCT_MEMBER(bool, find_next) IPC_STRUCT_END() IPC_STRUCT_BEGIN(AutomationURLResponse) IPC_STRUCT_MEMBER(std::string, mime_type) IPC_STRUCT_MEMBER(std::string, headers) IPC_STRUCT_MEMBER(int64, content_length) IPC_STRUCT_MEMBER(base::Time, last_modified) IPC_STRUCT_MEMBER(std::string, redirect_url) IPC_STRUCT_MEMBER(int, redirect_status) IPC_STRUCT_MEMBER(net::HostPortPair, socket_address) IPC_STRUCT_END() IPC_STRUCT_BEGIN(ExternalTabSettings) IPC_STRUCT_MEMBER(gfx::NativeWindow, parent) IPC_STRUCT_MEMBER(gfx::Rect, dimensions) IPC_STRUCT_MEMBER(unsigned int, style) IPC_STRUCT_MEMBER(bool, is_incognito) IPC_STRUCT_MEMBER(bool, load_requests_via_automation) IPC_STRUCT_MEMBER(bool, handle_top_level_requests) IPC_STRUCT_MEMBER(GURL, initial_url) IPC_STRUCT_MEMBER(GURL, referrer) IPC_STRUCT_MEMBER(bool, infobars_enabled) IPC_STRUCT_MEMBER(bool, route_all_top_level_navigations) IPC_STRUCT_END() IPC_STRUCT_BEGIN(NavigationInfo) IPC_STRUCT_MEMBER(int, navigation_type) IPC_STRUCT_MEMBER(int, relative_offset) IPC_STRUCT_MEMBER(int, navigation_index) IPC_STRUCT_MEMBER(std::wstring, title) IPC_STRUCT_MEMBER(GURL, url) IPC_STRUCT_MEMBER(GURL, referrer) IPC_STRUCT_MEMBER(content::SecurityStyle, security_style) IPC_STRUCT_MEMBER(bool, displayed_insecure_content) IPC_STRUCT_MEMBER(bool, ran_insecure_content) IPC_STRUCT_END() // A stripped down version of ContextMenuParams in webkit/glue/context_menu.h. IPC_STRUCT_BEGIN(MiniContextMenuParams) // The x coordinate for displaying the menu. IPC_STRUCT_MEMBER(int, screen_x) // The y coordinate for displaying the menu. IPC_STRUCT_MEMBER(int, screen_y) // This is the URL of the link that encloses the node the context menu was // invoked on. IPC_STRUCT_MEMBER(GURL, link_url) // The link URL to be used ONLY for "copy link address". We don't validate // this field in the frontend process. IPC_STRUCT_MEMBER(GURL, unfiltered_link_url) // This is the source URL for the element that the context menu was // invoked on. Example of elements with source URLs are img, audio, and // video. IPC_STRUCT_MEMBER(GURL, src_url) // This is the URL of the top level page that the context menu was invoked // on. IPC_STRUCT_MEMBER(GURL, page_url) // This is the absolute keyword search URL including the %s search tag when // the "Add as search engine..." option is clicked (left empty if not used). IPC_STRUCT_MEMBER(GURL, keyword_url) // This is the URL of the subframe that the context menu was invoked on. IPC_STRUCT_MEMBER(GURL, frame_url) IPC_STRUCT_END() IPC_STRUCT_BEGIN(AttachExternalTabParams) IPC_STRUCT_MEMBER(uint64, cookie) IPC_STRUCT_MEMBER(GURL, url) IPC_STRUCT_MEMBER(gfx::Rect, dimensions) IPC_STRUCT_MEMBER(int, disposition) IPC_STRUCT_MEMBER(bool, user_gesture) IPC_STRUCT_MEMBER(std::string, profile_name) IPC_STRUCT_END() #if defined(OS_WIN) && !defined(USE_AURA) IPC_STRUCT_BEGIN(Reposition_Params) IPC_STRUCT_MEMBER(HWND, window) IPC_STRUCT_MEMBER(HWND, window_insert_after) IPC_STRUCT_MEMBER(int, left) IPC_STRUCT_MEMBER(int, top) IPC_STRUCT_MEMBER(int, width) IPC_STRUCT_MEMBER(int, height) IPC_STRUCT_MEMBER(int, flags) IPC_STRUCT_MEMBER(bool, set_parent) IPC_STRUCT_MEMBER(HWND, parent_window) IPC_STRUCT_END() #endif // defined(OS_WIN) IPC_STRUCT_BEGIN(AutomationURLRequest) IPC_STRUCT_MEMBER(std::string, url) IPC_STRUCT_MEMBER(std::string, method) IPC_STRUCT_MEMBER(std::string, referrer) IPC_STRUCT_MEMBER(std::string, extra_request_headers) IPC_STRUCT_MEMBER(scoped_refptr, upload_data) IPC_STRUCT_MEMBER(int, resource_type) // see webkit/glue/resource_type.h IPC_STRUCT_MEMBER(int, load_flags) // see net/base/load_flags.h IPC_STRUCT_END() // Singly-included section for struct and custom IPC traits. #ifndef CHROME_COMMON_AUTOMATION_MESSAGES_H_ #define CHROME_COMMON_AUTOMATION_MESSAGES_H_ // This struct passes information about the context menu in Chrome stored // as a ui::MenuModel to Chrome Frame. It is basically a container of // items that go in the menu. An item may be a submenu, so the data // structure may be a tree. struct ContextMenuModel { ContextMenuModel(); ~ContextMenuModel(); // This struct describes one item in the menu. struct Item { Item(); // This is the type of the menu item, using values from the enum // ui::MenuModel::ItemType (serialized as an int). int type; // This is the command id of the menu item, which will be passed by // Chrome Frame to Chrome if the item is selected. int item_id; // This the the menu label, if needed. std::wstring label; // These are states of the menu item. bool checked; bool enabled; // This recursively describes the submenu if type is // ui::MenuModel::TYPE_SUBMENU. ContextMenuModel* submenu; }; // This is the list of menu items. std::vector items; }; namespace IPC { // Traits for ContextMenuModel structure to pack/unpack. template <> struct ParamTraits { typedef ContextMenuModel param_type; static void Write(Message* m, const param_type& p); static bool Read(const Message* m, void** iter, param_type* p); static void Log(const param_type& p, std::string* l); }; } // namespace IPC #endif // CHROME_COMMON_AUTOMATION_MESSAGES_H_ // Keep this internal message file unchanged to preserve line numbering // (and hence the dubious __LINE__-based message numberings) across versions. #include "chrome/common/automation_messages_internal.h"