| // 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 <string> |
| |
| #include "base/basictypes.h" |
| #include "chrome/common/automation_constants.h" |
| #include "chrome/common/content_settings.h" |
| #include "chrome/common/security_style.h" |
| #include "content/common/common_param_traits.h" |
| #include "content/common/page_type.h" |
| #include "content/common/webkit_param_traits.h" |
| #include "ipc/ipc_message_macros.h" |
| #include "ipc/ipc_message_utils.h" |
| #include "net/base/host_port_pair.h" |
| #include "net/base/upload_data.h" |
| #include "ui/gfx/rect.h" |
| |
| // Singly-included section, not yet converted. |
| #ifndef CHROME_COMMON_AUTOMATION_MESSAGES_H__ |
| #define CHROME_COMMON_AUTOMATION_MESSAGES_H__ |
| |
| struct AutomationMsg_Find_Params { |
| // Unused value, which exists only for backwards compat. |
| int unused; |
| |
| // The word(s) to find on the page. |
| string16 search_string; |
| |
| // Whether to search forward or backward within the page. |
| bool forward; |
| |
| // Whether search should be Case sensitive. |
| bool match_case; |
| |
| // Whether this operation is first request (Find) or a follow-up (FindNext). |
| bool find_next; |
| }; |
| |
| struct AutomationURLResponse { |
| AutomationURLResponse(); |
| AutomationURLResponse(const std::string& mime_type, |
| const std::string& headers, |
| int64 content_length, |
| const base::Time& last_modified, |
| const std::string& redirect_url, |
| int redirect_status, |
| const net::HostPortPair& host_socket_address); |
| ~AutomationURLResponse(); |
| |
| std::string mime_type; |
| std::string headers; |
| int64 content_length; |
| base::Time last_modified; |
| std::string redirect_url; |
| int redirect_status; |
| net::HostPortPair socket_address; |
| }; |
| |
| struct ExternalTabSettings { |
| ExternalTabSettings(); |
| ExternalTabSettings(gfx::NativeWindow parent, |
| const gfx::Rect& dimensions, |
| unsigned int style, |
| bool is_incognito, |
| bool load_requests_via_automation, |
| bool handle_top_level_requests, |
| const GURL& initial_url, |
| const GURL& referrer, |
| bool infobars_enabled, |
| bool route_all_top_level_navigations); |
| ~ExternalTabSettings(); |
| |
| gfx::NativeWindow parent; |
| gfx::Rect dimensions; |
| unsigned int style; |
| bool is_incognito; |
| bool load_requests_via_automation; |
| bool handle_top_level_requests; |
| GURL initial_url; |
| GURL referrer; |
| bool infobars_enabled; |
| bool route_all_top_level_navigations; |
| }; |
| |
| struct NavigationInfo { |
| NavigationInfo(); |
| NavigationInfo(int navigation_type, |
| int relative_offset, |
| int navigation_index, |
| const std::wstring& title, |
| const GURL& url, |
| const GURL& referrer, |
| SecurityStyle security_style, |
| bool displayed_insecure_content, |
| bool ran_insecure_content); |
| ~NavigationInfo(); |
| |
| int navigation_type; |
| int relative_offset; |
| int navigation_index; |
| std::wstring title; |
| GURL url; |
| GURL referrer; |
| SecurityStyle security_style; |
| bool displayed_insecure_content; |
| bool ran_insecure_content; |
| }; |
| |
| // A stripped down version of ContextMenuParams in webkit/glue/context_menu.h. |
| struct MiniContextMenuParams { |
| MiniContextMenuParams(); |
| MiniContextMenuParams(int screen_x, |
| int screen_y, |
| const GURL& link_url, |
| const GURL& unfiltered_link_url, |
| const GURL& src_url, |
| const GURL& page_url, |
| const GURL& frame_url); |
| ~MiniContextMenuParams(); |
| |
| // The x coordinate for displaying the menu. |
| int screen_x; |
| |
| // The y coordinate for displaying the menu. |
| int screen_y; |
| |
| // This is the URL of the link that encloses the node the context menu was |
| // invoked on. |
| GURL link_url; |
| |
| // The link URL to be used ONLY for "copy link address". We don't validate |
| // this field in the frontend process. |
| 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. |
| GURL src_url; |
| |
| // This is the URL of the top level page that the context menu was invoked |
| // on. |
| GURL page_url; |
| |
| // This is the URL of the subframe that the context menu was invoked on. |
| GURL frame_url; |
| }; |
| |
| struct AttachExternalTabParams { |
| AttachExternalTabParams(); |
| AttachExternalTabParams(uint64 cookie, |
| const GURL& url, |
| const gfx::Rect& dimensions, |
| int disposition, |
| bool user_gesture, |
| const std::string& profile_name); |
| ~AttachExternalTabParams(); |
| |
| uint64 cookie; |
| GURL url; |
| gfx::Rect dimensions; |
| int disposition; |
| bool user_gesture; |
| std::string profile_name; |
| }; |
| |
| #if defined(OS_WIN) |
| |
| struct Reposition_Params { |
| HWND window; |
| HWND window_insert_after; |
| int left; |
| int top; |
| int width; |
| int height; |
| int flags; |
| bool set_parent; |
| HWND parent_window; |
| }; |
| |
| #endif // defined(OS_WIN) |
| |
| struct AutomationURLRequest { |
| AutomationURLRequest(); |
| AutomationURLRequest(const std::string& url, |
| const std::string& method, |
| const std::string& referrer, |
| const std::string& extra_request_headers, |
| scoped_refptr<net::UploadData> upload_data, |
| int resource_type, |
| int load_flags); |
| ~AutomationURLRequest(); |
| |
| std::string url; |
| std::string method; |
| std::string referrer; |
| std::string extra_request_headers; |
| scoped_refptr<net::UploadData> upload_data; |
| int resource_type; // see webkit/glue/resource_type.h |
| int load_flags; // see net/base/load_flags.h |
| }; |
| |
| namespace IPC { |
| |
| template <> |
| struct ParamTraits<AutomationMsg_Find_Params> { |
| typedef AutomationMsg_Find_Params 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); |
| }; |
| |
| template <> |
| struct ParamTraits<AutomationMsg_NavigationResponseValues> { |
| typedef AutomationMsg_NavigationResponseValues 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); |
| }; |
| |
| template <> |
| struct ParamTraits<AutomationMsg_ExtensionResponseValues> { |
| typedef AutomationMsg_ExtensionResponseValues 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); |
| }; |
| |
| template <> |
| struct ParamTraits<AutomationMsg_ExtensionProperty> { |
| typedef AutomationMsg_ExtensionProperty 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); |
| }; |
| |
| template <> |
| struct ParamTraits<SecurityStyle> { |
| typedef SecurityStyle 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); |
| }; |
| |
| template <> |
| struct ParamTraits<PageType> { |
| typedef PageType 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); |
| }; |
| |
| #if defined(OS_WIN) |
| |
| // Traits for SetWindowPos_Params structure to pack/unpack. |
| template <> |
| struct ParamTraits<Reposition_Params> { |
| typedef Reposition_Params param_type; |
| static void Write(Message* m, const param_type& p) { |
| WriteParam(m, p.window); |
| WriteParam(m, p.window_insert_after); |
| WriteParam(m, p.left); |
| WriteParam(m, p.top); |
| WriteParam(m, p.width); |
| WriteParam(m, p.height); |
| WriteParam(m, p.flags); |
| WriteParam(m, p.set_parent); |
| WriteParam(m, p.parent_window); |
| } |
| static bool Read(const Message* m, void** iter, param_type* p) { |
| return ReadParam(m, iter, &p->window) && |
| ReadParam(m, iter, &p->window_insert_after) && |
| ReadParam(m, iter, &p->left) && |
| ReadParam(m, iter, &p->top) && |
| ReadParam(m, iter, &p->width) && |
| ReadParam(m, iter, &p->height) && |
| ReadParam(m, iter, &p->flags) && |
| ReadParam(m, iter, &p->set_parent) && |
| ReadParam(m, iter, &p->parent_window); |
| } |
| static void Log(const param_type& p, std::string* l) { |
| l->append("("); |
| LogParam(p.window, l); |
| l->append(", "); |
| LogParam(p.window_insert_after, l); |
| l->append(", "); |
| LogParam(p.left, l); |
| l->append(", "); |
| LogParam(p.top, l); |
| l->append(", "); |
| LogParam(p.width, l); |
| l->append(", "); |
| LogParam(p.height, l); |
| l->append(", "); |
| LogParam(p.flags, l); |
| l->append(", "); |
| LogParam(p.set_parent, l); |
| l->append(", "); |
| LogParam(p.parent_window, l); |
| l->append(")"); |
| } |
| }; |
| #endif // defined(OS_WIN) |
| |
| // Traits for AutomationURLRequest structure to pack/unpack. |
| template <> |
| struct ParamTraits<AutomationURLRequest> { |
| typedef AutomationURLRequest 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); |
| }; |
| |
| // Traits for AutomationURLResponse structure to pack/unpack. |
| template <> |
| struct ParamTraits<AutomationURLResponse> { |
| typedef AutomationURLResponse 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); |
| }; |
| |
| // Traits for ExternalTabSettings structure to pack/unpack. |
| template <> |
| struct ParamTraits<ExternalTabSettings> { |
| typedef ExternalTabSettings 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); |
| }; |
| |
| // Traits for NavigationInfo structure to pack/unpack. |
| template <> |
| struct ParamTraits<NavigationInfo> { |
| typedef NavigationInfo 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); |
| }; |
| |
| // Traits for MiniContextMenuParams structure to pack/unpack. |
| template <> |
| struct ParamTraits<MiniContextMenuParams> { |
| typedef MiniContextMenuParams 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); |
| }; |
| |
| template <> |
| struct ParamTraits<AttachExternalTabParams> { |
| typedef AttachExternalTabParams 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" |
| |