1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 24a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 34a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// found in the LICENSE file. 44a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Multiply-included message file, no traditional include guard. 64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include <string> 74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "base/basictypes.h" 94a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "chrome/common/automation_constants.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/common/content_settings.h" 114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "chrome/common/security_style.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/common_param_traits.h" 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/page_type.h" 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/webkit_param_traits.h" 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ipc/ipc_message_macros.h" 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ipc/ipc_message_utils.h" 17dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "net/base/host_port_pair.h" 184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "net/base/upload_data.h" 1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/rect.h" 204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Singly-included section, not yet converted. 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_COMMON_AUTOMATION_MESSAGES_H__ 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_COMMON_AUTOMATION_MESSAGES_H__ 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct AutomationMsg_Find_Params { 264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Unused value, which exists only for backwards compat. 274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch int unused; 284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // The word(s) to find on the page. 304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch string16 search_string; 314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Whether to search forward or backward within the page. 334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch bool forward; 344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Whether search should be Case sensitive. 364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch bool match_case; 374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Whether this operation is first request (Find) or a follow-up (FindNext). 394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch bool find_next; 404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstruct AutomationURLResponse { 4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AutomationURLResponse(); 4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AutomationURLResponse(const std::string& mime_type, 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& headers, 4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int64 content_length, 4721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const base::Time& last_modified, 4821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& redirect_url, 49dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen int redirect_status, 50dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen const net::HostPortPair& host_socket_address); 5121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ~AutomationURLResponse(); 5221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 5321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::string mime_type; 5421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::string headers; 5521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int64 content_length; 5621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen base::Time last_modified; 5721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::string redirect_url; 5821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int redirect_status; 59dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen net::HostPortPair socket_address; 6021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 6121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 6221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstruct ExternalTabSettings { 6321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ExternalTabSettings(); 6421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ExternalTabSettings(gfx::NativeWindow parent, 6521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const gfx::Rect& dimensions, 6621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen unsigned int style, 67ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool is_incognito, 6821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool load_requests_via_automation, 6921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool handle_top_level_requests, 7021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& initial_url, 7121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& referrer, 7221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool infobars_enabled, 7321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool route_all_top_level_navigations); 7421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ~ExternalTabSettings(); 7521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 7621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen gfx::NativeWindow parent; 7721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen gfx::Rect dimensions; 7821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen unsigned int style; 79ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool is_incognito; 8021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool load_requests_via_automation; 8121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool handle_top_level_requests; 8221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL initial_url; 8321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL referrer; 8421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool infobars_enabled; 8521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool route_all_top_level_navigations; 8621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 8721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 8821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstruct NavigationInfo { 8921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen NavigationInfo(); 9021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen NavigationInfo(int navigation_type, 9121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int relative_offset, 9221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int navigation_index, 9321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::wstring& title, 9421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& url, 9521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& referrer, 9621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen SecurityStyle security_style, 9721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool displayed_insecure_content, 9821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool ran_insecure_content); 9921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ~NavigationInfo(); 10021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 10121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int navigation_type; 10221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int relative_offset; 10321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int navigation_index; 10421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::wstring title; 10521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL url; 10621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL referrer; 10721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen SecurityStyle security_style; 10821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool displayed_insecure_content; 10921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool ran_insecure_content; 11021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 11121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 11221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// A stripped down version of ContextMenuParams in webkit/glue/context_menu.h. 11321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstruct MiniContextMenuParams { 11421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MiniContextMenuParams(); 11521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MiniContextMenuParams(int screen_x, 11621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int screen_y, 11721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& link_url, 11821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& unfiltered_link_url, 11921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& src_url, 12021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& page_url, 12121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& frame_url); 12221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ~MiniContextMenuParams(); 12321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 12421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // The x coordinate for displaying the menu. 12521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int screen_x; 12621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 12721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // The y coordinate for displaying the menu. 12821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int screen_y; 12921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 13021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // This is the URL of the link that encloses the node the context menu was 13121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // invoked on. 13221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL link_url; 13321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 13421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // The link URL to be used ONLY for "copy link address". We don't validate 13521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // this field in the frontend process. 13621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL unfiltered_link_url; 13721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 13821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // This is the source URL for the element that the context menu was 13921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // invoked on. Example of elements with source URLs are img, audio, and 14021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // video. 14121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL src_url; 14221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 14321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // This is the URL of the top level page that the context menu was invoked 14421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // on. 14521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL page_url; 14621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 14721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // This is the URL of the subframe that the context menu was invoked on. 14821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL frame_url; 14921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 15021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 15121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstruct AttachExternalTabParams { 15221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AttachExternalTabParams(); 15321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AttachExternalTabParams(uint64 cookie, 15421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const GURL& url, 15521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const gfx::Rect& dimensions, 15621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int disposition, 15721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool user_gesture, 15821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& profile_name); 15921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ~AttachExternalTabParams(); 16021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 16121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen uint64 cookie; 16221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen GURL url; 16321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen gfx::Rect dimensions; 16421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int disposition; 16521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool user_gesture; 16621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::string profile_name; 16721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 16821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 16921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#if defined(OS_WIN) 17021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 17121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstruct Reposition_Params { 17221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen HWND window; 17321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen HWND window_insert_after; 17421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int left; 17521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int top; 17621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int width; 17721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int height; 17821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int flags; 17921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool set_parent; 18021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen HWND parent_window; 18121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 18221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 18321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif // defined(OS_WIN) 18421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 18521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstruct AutomationURLRequest { 18621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AutomationURLRequest(); 18721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AutomationURLRequest(const std::string& url, 18821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& method, 18921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& referrer, 19021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& extra_request_headers, 19121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen scoped_refptr<net::UploadData> upload_data, 19221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int resource_type, 19321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int load_flags); 19421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ~AutomationURLRequest(); 19521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 19621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::string url; 19721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::string method; 19821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::string referrer; 19921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::string extra_request_headers; 20021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen scoped_refptr<net::UploadData> upload_data; 20121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int resource_type; // see webkit/glue/resource_type.h 20221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int load_flags; // see net/base/load_flags.h 20321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 20421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2054a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochnamespace IPC { 2064a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 2074a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 2084a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<AutomationMsg_Find_Params> { 2094a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef AutomationMsg_Find_Params param_type; 21021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 21121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 21221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 2134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 2144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 2154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 2164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<AutomationMsg_NavigationResponseValues> { 2174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef AutomationMsg_NavigationResponseValues param_type; 21821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 21921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 22021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 2214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 2224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 2234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 2244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<AutomationMsg_ExtensionResponseValues> { 2254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef AutomationMsg_ExtensionResponseValues param_type; 22621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 22721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 22821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 2294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 2304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 2314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 2324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<AutomationMsg_ExtensionProperty> { 2334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef AutomationMsg_ExtensionProperty param_type; 23421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 23521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 23621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 2374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 2384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 2394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 2404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<SecurityStyle> { 2414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef SecurityStyle param_type; 24221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 24321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 24421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 2454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 2464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 2474a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 2484a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<PageType> { 2494a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef PageType param_type; 25021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 25121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 25221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 2534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 2544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 2554a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#if defined(OS_WIN) 2564a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 2574a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Traits for SetWindowPos_Params structure to pack/unpack. 2584a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 2594a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<Reposition_Params> { 2604a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef Reposition_Params param_type; 2614a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static void Write(Message* m, const param_type& p) { 2624a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.window); 2634a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.window_insert_after); 2644a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.left); 2654a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.top); 2664a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.width); 2674a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.height); 2684a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.flags); 2694a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.set_parent); 2704a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch WriteParam(m, p.parent_window); 2714a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 2724a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static bool Read(const Message* m, void** iter, param_type* p) { 2734a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch return ReadParam(m, iter, &p->window) && 2744a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ReadParam(m, iter, &p->window_insert_after) && 2754a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ReadParam(m, iter, &p->left) && 2764a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ReadParam(m, iter, &p->top) && 2774a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ReadParam(m, iter, &p->width) && 2784a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ReadParam(m, iter, &p->height) && 2794a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ReadParam(m, iter, &p->flags) && 2804a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ReadParam(m, iter, &p->set_parent) && 2814a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ReadParam(m, iter, &p->parent_window); 2824a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 2834a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static void Log(const param_type& p, std::string* l) { 2844a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append("("); 2854a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.window, l); 2864a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(", "); 2874a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.window_insert_after, l); 2884a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(", "); 2894a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.left, l); 2904a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(", "); 2914a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.top, l); 2924a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(", "); 2934a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.width, l); 2944a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(", "); 2954a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.height, l); 2964a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(", "); 2974a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.flags, l); 2984a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(", "); 2994a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.set_parent, l); 3004a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(", "); 3014a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch LogParam(p.parent_window, l); 3024a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch l->append(")"); 3034a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch } 3044a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 3054a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#endif // defined(OS_WIN) 3064a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 3074a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Traits for AutomationURLRequest structure to pack/unpack. 3084a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 3094a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<AutomationURLRequest> { 3104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef AutomationURLRequest param_type; 31121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 31221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 31321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 3144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 3154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 3164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Traits for AutomationURLResponse structure to pack/unpack. 3174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 3184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<AutomationURLResponse> { 3194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef AutomationURLResponse param_type; 32021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 32121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 32221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 3234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 3244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 3254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Traits for ExternalTabSettings structure to pack/unpack. 3264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 3274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<ExternalTabSettings> { 3284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef ExternalTabSettings param_type; 32921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 33021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 33121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 3324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 3334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 3344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Traits for NavigationInfo structure to pack/unpack. 3354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 3364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<NavigationInfo> { 3374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef NavigationInfo param_type; 33821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 33921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 34021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 3414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 3424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 3434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Traits for MiniContextMenuParams structure to pack/unpack. 3444a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 3454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<MiniContextMenuParams> { 3464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef MiniContextMenuParams param_type; 34721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 34821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 34921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 3504a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 3514a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 3524a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochtemplate <> 3534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochstruct ParamTraits<AttachExternalTabParams> { 3544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch typedef AttachExternalTabParams param_type; 35521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Write(Message* m, const param_type& p); 35621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static bool Read(const Message* m, void** iter, param_type* p); 35721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void Log(const param_type& p, std::string* l); 3584a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 3594a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 3604a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch} // namespace IPC 3614a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 362ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_COMMON_AUTOMATION_MESSAGES_H__ 363ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 364ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Keep this internal message file unchanged to preserve line numbering 365ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// (and hence the dubious __LINE__-based message numberings) across versions. 36621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/common/automation_messages_internal.h" 3674a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 368