1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Defines the IPC messages used by the automation interface. 6 7 #include <string> 8 #include <vector> 9 10 #include "base/string16.h" 11 #include "chrome/common/content_settings.h" 12 #include "chrome/test/automation/autocomplete_edit_proxy.h" 13 #include "content/common/navigation_types.h" 14 #include "googleurl/src/gurl.h" 15 #include "ipc/ipc_message_macros.h" 16 #include "net/url_request/url_request_status.h" 17 #include "ui/gfx/rect.h" 18 #include "webkit/glue/window_open_disposition.h" 19 20 21 // NOTE: All IPC messages have either a routing_id of 0 (for asynchronous 22 // messages), or one that's been assigned by the proxy (for calls 23 // which expect a response). The routing_id shouldn't be used for 24 // any other purpose in these message types. 25 26 // NOTE: All the new IPC messages should go at the end. 27 // The IPC message IDs need to match the reference builds. Since we now 28 // define the IDs based on __LINE__, to allow these IPC messages to be 29 // used to control an old version of Chrome we need the message IDs to 30 // remain the same. This means that you should not change the line number 31 // of any of the messages below. This will be fixed once Xcode supports 32 // __COUNTER__, in which case we can get rid of the __LINE__. 33 34 #define IPC_MESSAGE_START AutomationMsgStart 35 36 // This message is fired when the AutomationProvider is up and running 37 // in the app (the app is not fully up at this point). The parameter to this 38 // message is the version string of the automation provider. This parameter 39 // is defined to be the version string as returned by 40 // chrome::VersionInfo::Version(). 41 // The client can choose to use this version string to decide whether or not 42 // it can talk to the provider. 43 IPC_MESSAGE_CONTROL1(AutomationMsg_Hello, 44 std::string) 45 46 // This message is fired when the initial tab(s) are finished loading. 47 IPC_MESSAGE_CONTROL0(AutomationMsg_InitialLoadsComplete) 48 49 // This message notifies the AutomationProvider to append a new tab the 50 // window with the given handle. The return value contains the index of 51 // the new tab, or -1 if the request failed. 52 // The second parameter is the url to be loaded in the new tab. 53 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_AppendTab, 54 int, 55 GURL, 56 int) 57 58 // This message requests the (zero-based) index for the currently 59 // active tab in the window with the given handle. The return value contains 60 // the index of the active tab, or -1 if the request failed. 61 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_ActiveTabIndex, 62 int, 63 int) 64 65 // This message notifies the AutomationProvider to active the tab. 66 // The first parameter is the handle to window resource. 67 // The second parameter is the (zero-based) index to be activated 68 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_ActivateTab, 69 int, 70 int, 71 int) 72 73 // This message requests the cookie value for given url in the 74 // profile of the tab identified by the second parameter. The first 75 // parameter is the URL string. The response contains the length of the 76 // cookie value string. On failure, this length = -1. 77 IPC_SYNC_MESSAGE_CONTROL2_2(AutomationMsg_GetCookies, 78 GURL, 79 int, 80 int, 81 std::string) 82 83 // This message notifies the AutomationProvider to set and broadcast a cookie 84 // with given name and value for the given url in the profile of the tab 85 // identified by the third parameter. The first parameter is the URL 86 // string, and the second parameter is the cookie name and value to be set. 87 // The return value is a non-negative value on success. 88 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_SetCookie, 89 GURL, 90 std::string, 91 int, 92 int) 93 94 // This message is used to implement the asynchronous version of 95 // NavigateToURL. 96 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_NavigationAsync, 97 int /* tab handle */, 98 GURL, 99 bool /* result */) 100 101 // This message requests the number of browser windows that the app currently 102 // has open. The return value is the number of windows. 103 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_BrowserWindowCount, 104 int) 105 106 // This message requests the handle (int64 app-unique identifier) of the 107 // window with the given (zero-based) index. On error, the returned handle 108 // value is 0. 109 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_BrowserWindow, 110 int, 111 int) 112 113 // This message requests the number of tabs in the window with the given 114 // handle. The return value contains the number of tabs, or -1 if the 115 // request failed. 116 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_TabCount, 117 int, 118 int) 119 120 // This message requests the handle of the tab with the given (zero-based) 121 // index in the given app window. First parameter specifies the given window 122 // handle, second specifies the given tab_index. On error, the returned handle 123 // value is 0. 124 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_Tab, 125 int, 126 int, 127 int) 128 129 // This message requests the the title of the tab with the given handle. 130 // The return value contains the size of the title string. On error, this 131 // value should be -1 and empty string. Note that the title can be empty in 132 // which case the size would be 0. 133 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_TabTitle, 134 int, 135 int, 136 std::wstring) 137 138 // This message requests the url of the tab with the given handle. 139 // The return value contains a success flag and the URL string. The URL will 140 // be empty on failure, and it still may be empty on success. 141 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_TabURL, 142 int /* tab handle */, 143 bool /* success flag */, 144 GURL) 145 146 // This message notifies the AutomationProxy that a handle that it has 147 // previously been given is now invalid. (For instance, if the handle 148 // represented a window which has now been closed.) The parameter 149 // value is the handle. 150 IPC_MESSAGE_CONTROL1(AutomationMsg_InvalidateHandle, 151 int) 152 153 // This message notifies the AutomationProvider that a handle is no 154 // longer being used, so it can stop paying attention to the 155 // associated resource. The parameter value is the handle. 156 IPC_MESSAGE_CONTROL1(AutomationMsg_HandleUnused, 157 int) 158 159 // This message tells the AutomationProvider to provide the given 160 // authentication data to the specified tab, in response to an HTTP/FTP 161 // authentication challenge. 162 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_SetAuth, 163 int /* tab handle */, 164 std::wstring /* username */, 165 std::wstring /* password */, 166 AutomationMsg_NavigationResponseValues /* status */) 167 168 // This message tells the AutomationProvider to cancel the login in the 169 // specified tab. 170 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_CancelAuth, 171 int /* tab handle */, 172 AutomationMsg_NavigationResponseValues /* status */) 173 174 // Requests that the automation provider ask history for the most recent 175 // chain of redirects coming from the given URL. The response must be 176 // decoded by the caller manually; it contains an integer indicating the 177 // number of URLs, followed by that many wstrings indicating a chain of 178 // redirects. On failure, the count will be negative. 179 IPC_SYNC_MESSAGE_CONTROL2_2(AutomationMsg_RedirectsFrom, 180 int /* tab handle */, 181 GURL /* source URL */, 182 bool /* succeeded */, 183 std::vector<GURL> /* redirects */) 184 185 // This message asks the AutomationProvider whether a tab is waiting for 186 // login info. 187 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_NeedsAuth, 188 int /* tab handle */, 189 bool /* status */) 190 191 // This message requests that the AutomationProvider executes a JavaScript, 192 // which is sent embedded in a 'javascript:' URL. 193 // The javascript is executed in context of child frame whose xpath 194 // is passed as parameter (context_frame). The execution results in 195 // a serialized JSON string response. 196 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_DomOperation, 197 int /* tab handle */, 198 std::wstring /* context_frame */, 199 std::wstring /* the javascript to be executed */, 200 std::string /* the serialized json string containg 201 the result of a javascript 202 execution */) 203 204 // Is the Download Shelf visible for the specified browser? 205 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_ShelfVisibility, 206 int /* browser_handle */, 207 bool /* is_visible */) 208 209 // This message requests the number of constrained windows in the tab with 210 // the given handle. The return value contains the number of constrained 211 // windows, or -1 if the request failed. 212 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_ConstrainedWindowCount, 213 int /* tab_handle */, 214 int /* constrained_window_count */) 215 216 // This message requests the bounds of the specified View element in 217 // window coordinates. 218 // Request: 219 // int - the handle of the window in which the view appears 220 // int - the ID of the view, as specified in chrome/browser/ui/view_ids.h 221 // bool - whether the bounds should be returned in the screen coordinates 222 // (if true) or in the browser coordinates (if false). 223 // Response: 224 // bool - true if the view was found 225 // gfx::Rect - the bounds of the view, in window coordinates 226 IPC_SYNC_MESSAGE_CONTROL3_2(AutomationMsg_WindowViewBounds, 227 int, 228 int, 229 bool, 230 bool, 231 gfx::Rect) 232 233 // This message sets the bounds of the window. 234 // Request: 235 // int - the handle of the window to resize 236 // gfx::Rect - the bounds of the window 237 // Response: 238 // bool - true if the resize was successful 239 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_SetWindowBounds, 240 int, 241 gfx::Rect, 242 bool) 243 244 // TODO(port): Port these messages. 245 // 246 // This message requests that a drag be performed in window coordinate space 247 // Request: 248 // int - the handle of the window that's the context for this drag 249 // std::vector<gfx::Point> - the path of the drag in window coordinate 250 // space; it should have at least 2 points 251 // (start and end) 252 // int - the flags which identify the mouse button(s) for the drag, as 253 // defined in chrome/views/event.h 254 // Response: 255 // bool - true if the drag could be performed 256 IPC_SYNC_MESSAGE_CONTROL4_1(AutomationMsg_WindowDrag, 257 int, 258 std::vector<gfx::Point>, 259 int, 260 bool, 261 bool) 262 263 // Similar to AutomationMsg_InitialLoadsComplete, this indicates that the 264 // new tab ui has completed the initial load of its data. 265 // Time is how many milliseconds the load took. 266 IPC_MESSAGE_CONTROL1(AutomationMsg_InitialNewTabUILoadComplete, 267 int /* time */) 268 269 // This message sends a inspect element request for a given tab. The response 270 // contains the number of resources loaded by the inspector controller. 271 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_InspectElement, 272 int, /* tab_handle */ 273 int, /* x */ 274 int /* y */, 275 int) 276 277 // This message requests the process ID of the tab that corresponds 278 // to the given automation handle. 279 // The return value has an integer corresponding to the PID of the tab's 280 // renderer, 0 if the tab currently has no renderer process, or -1 on error. 281 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_TabProcessID, 282 int /* tab_handle */, 283 int /* process ID */) 284 285 // This tells the browser to enable or disable the filtered network layer. 286 IPC_MESSAGE_CONTROL1(AutomationMsg_SetFilteredInet, 287 bool /* enabled */) 288 289 // Gets the directory that downloads will occur in for the active profile. 290 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_DownloadDirectory, 291 int /* tab_handle */, 292 FilePath /* directory */) 293 294 // This message requests the id of the view that has the focus in the 295 // specified window. If no view is focused, -1 is returned. Note that the 296 // window should either be a ViewWindow or a Browser. 297 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_GetFocusedViewID, 298 int /* view_handle */, 299 int /* focused_view_id */) 300 301 // This message shows/hides the window. 302 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_SetWindowVisible, 303 int /* view_handle */, 304 bool /* visible */, 305 bool /* success */) 306 307 // Gets the active status of a window. 308 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_IsWindowActive, 309 int /* view_handle */, 310 bool /* success */, 311 bool /* active */) 312 313 // Makes the specified window the active window. 314 IPC_SYNC_MESSAGE_CONTROL1_0(AutomationMsg_ActivateWindow, 315 int /* view_handle */) 316 317 // Opens a new browser window. 318 // TODO(sky): remove this and replace with OpenNewBrowserWindowOfType. 319 // Doing this requires updating the reference build. 320 IPC_SYNC_MESSAGE_CONTROL1_0(AutomationMsg_OpenNewBrowserWindow, 321 bool /* show */ ) 322 323 // This message requests the handle (int64 app-unique identifier) of the 324 // current active top window. On error, the returned handle value is 0. 325 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_ActiveWindow, 326 int) 327 328 // This message requests the browser associated with the specified window 329 // handle. 330 // The return value contains a success flag and the handle of the browser. 331 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_BrowserForWindow, 332 int /* window handle */, 333 bool /* success flag */, 334 int /* browser handle */) 335 336 // This message requests the window associated with the specified browser 337 // handle. 338 // The return value contains a success flag and the handle of the window. 339 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_WindowForBrowser, 340 int /* browser handle */, 341 bool /* success flag */, 342 int /* window handle */) 343 344 // This message requests the AutocompleteEdit associated with the specified 345 // browser handle. 346 // The return value contains a success flag and the handle of the omnibox. 347 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_AutocompleteEditForBrowser, 348 int /* browser handle */, 349 bool /* success flag */, 350 int /* AutocompleteEdit handle */) 351 352 // This message requests that a mouse click be performed in window coordinate 353 // space. 354 // Request: 355 // int - the handle of the window that's the context for this click 356 // gfx::Point - the point to click 357 // int - the flags which identify the mouse button(s) for the click, as 358 // defined in chrome/views/event.h 359 IPC_MESSAGE_CONTROL3(AutomationMsg_WindowClick, 360 int, 361 gfx::Point, 362 int) 363 364 // This message requests that a key press be performed. 365 // Request: 366 // int - the handle of the window that's the context for this click 367 // int - the ui::KeyboardCode of the key that was pressed. 368 // int - the flags which identify the modifiers (shift, ctrl, alt) 369 // associated for, as defined in chrome/views/event.h 370 IPC_MESSAGE_CONTROL3(AutomationMsg_WindowKeyPress, 371 int, 372 int, 373 int) 374 375 // This message notifies the AutomationProvider to create a tab which is 376 // hosted by an external process. 377 // Request: 378 // ExternalTabSettings - settings for external tab 379 IPC_SYNC_MESSAGE_CONTROL1_4(AutomationMsg_CreateExternalTab, 380 ExternalTabSettings /* settings*/, 381 gfx::NativeWindow /* Tab container window */, 382 gfx::NativeWindow /* Tab window */, 383 int /* Handle to the new tab */, 384 int /* Session Id of the new tab */) 385 386 // This message notifies the AutomationProvider to navigate to a specified 387 // url in the external tab with given handle. The first parameter is the 388 // handle to the tab resource. The second parameter is the target url. 389 // The third parameter is the referrer. 390 // The return value contains a status code which is nonnegative on success. 391 // see AutomationMsg_NavigationResponseValues for the navigation response. 392 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_NavigateInExternalTab, 393 int, 394 GURL, 395 GURL, 396 AutomationMsg_NavigationResponseValues) 397 398 // This message is an outgoing message from Chrome to an external host. 399 // It is a notification that the NavigationState was changed 400 // Request: 401 // -int: The flags specifying what changed 402 // (see TabContents::InvalidateTypes) 403 // Response: 404 // None expected 405 IPC_MESSAGE_ROUTED2(AutomationMsg_NavigationStateChanged, 406 int, // TabContents::InvalidateTypes 407 NavigationInfo) // title, url etc. 408 409 // This message is an outgoing message from Chrome to an external host. 410 // It is a notification that the target URL has changed (the target URL 411 // is the URL of the link that the user is hovering on) 412 // Request: 413 // -std::wstring: The new target URL 414 // Response: 415 // None expected 416 IPC_MESSAGE_ROUTED1(AutomationMsg_UpdateTargetUrl, 417 std::wstring) 418 419 // This message notifies the AutomationProvider to show the specified html 420 // text in an interstitial page in the tab with given handle. The first 421 // parameter is the handle to the tab resource. The second parameter is the 422 // html text to be displayed. 423 // The return value contains a success flag. 424 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_ShowInterstitialPage, 425 int, 426 std::string, 427 AutomationMsg_NavigationResponseValues) 428 429 // This message notifies the AutomationProvider to hide the current 430 // interstitial page in the tab with given handle. The parameter is the 431 // handle to the tab resource. 432 // The return value contains a success flag. 433 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_HideInterstitialPage, 434 int, 435 bool) 436 437 // This message requests that a tab be closed. 438 // Request: 439 // - int: handle of the tab to close 440 // - bool: if true the proxy blocks until the tab has completely closed, 441 // otherwise the proxy only blocks until it initiates the close. 442 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_CloseTab, 443 int, 444 bool, 445 bool) 446 447 // This message requests that the browser be closed. 448 // Request: 449 // - int: handle of the browser which contains the tab 450 // Response: 451 // - bool: whether the operation was successfull. 452 // - bool: whether the browser process will be terminated as a result (if 453 // this was the last closed browser window). 454 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_CloseBrowser, 455 int, 456 bool, 457 bool) 458 459 IPC_MESSAGE_CONTROL1(AutomationMsg_CloseBrowserRequestAsync, 460 int) 461 462 #if defined(OS_WIN) 463 // TODO(port): Port these messages. 464 // 465 // This message is an outgoing message from Chrome to an external host. 466 // It is a request to process a keyboard accelerator. 467 // Request: 468 // -MSG: The keyboard message 469 // Response: 470 // None expected 471 // TODO(sanjeevr): Ideally we need to add a response from the external 472 // host saying whether it processed the accelerator 473 IPC_MESSAGE_ROUTED1(AutomationMsg_HandleAccelerator, 474 MSG) 475 476 // This message is sent by the container of an externally hosted tab to 477 // reflect any accelerator keys that it did not process. This gives the 478 // tab a chance to handle the keys 479 // Request: 480 // - int: handle of the tab 481 // -MSG: The keyboard message that the container did not handle 482 // Response: 483 // None expected 484 IPC_MESSAGE_CONTROL2(AutomationMsg_ProcessUnhandledAccelerator, 485 int, 486 MSG) 487 #endif // defined(OS_WIN) 488 489 // Sent by the external tab to the host to notify that the user has tabbed 490 // out of the tab. 491 // Request: 492 // - bool: |reverse| set to true when shift-tabbing out of the tab, false 493 // otherwise. 494 // Response: 495 // None expected 496 IPC_MESSAGE_ROUTED1(AutomationMsg_TabbedOut, 497 bool) 498 499 // Sent by the external tab host to ask focus to be set to either the first 500 // or last element on the page. 501 // Request: 502 // - int: handle of the tab 503 // - bool: |reverse| 504 // true: Focus will be set to the last focusable element 505 // false: Focus will be set to the first focusable element 506 // - bool: |restore_focus_to_view| 507 // true: The renderer view associated with the current tab will be 508 // infomed that it is receiving focus. 509 // Response: 510 // None expected 511 IPC_MESSAGE_CONTROL3(AutomationMsg_SetInitialFocus, 512 int, 513 bool, 514 bool) 515 516 // This message is an outgoing message from Chrome to an external host. 517 // It is a request to open a url 518 // Request: 519 // -GURL: The URL to open 520 // -GURL: The referrer 521 // -int: The WindowOpenDisposition that specifies where the URL should 522 // be opened (new tab, new window etc). 523 // Response: 524 // None expected 525 IPC_MESSAGE_ROUTED3(AutomationMsg_OpenURL, 526 GURL, 527 GURL, 528 int) 529 530 // This message requests the provider to wait until the specified tab has 531 // finished restoring after session restore. 532 // Request: 533 // - int: handle of the tab 534 // Response: 535 // - bool: whether the operation was successful. 536 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_WaitForTabToBeRestored, 537 int, bool) 538 539 // This message is an outgoing message from Chrome to an external host. 540 // It is a notification that a navigation happened 541 // Request: 542 // 543 // Response: 544 // None expected 545 IPC_MESSAGE_ROUTED1(AutomationMsg_DidNavigate, 546 NavigationInfo) 547 548 // This message requests the different security states of the page displayed 549 // in the specified tab. 550 // Request: 551 // - int: handle of the tab 552 // Response: 553 // - bool: whether the operation was successful. 554 // - SecurityStyle: the security style of the tab. 555 // - int: the status of the server's ssl cert (0 means no errors or no ssl 556 // was used). 557 // - int: the insecure content state, 0 means no insecure contents. 558 559 IPC_SYNC_MESSAGE_CONTROL1_4(AutomationMsg_GetSecurityState, 560 int, 561 bool, 562 SecurityStyle, 563 int, 564 int) 565 566 // This message requests the page type of the page displayed in the specified 567 // tab (normal, error or interstitial). 568 // Request: 569 // - int: handle of the tab 570 // Response: 571 // - bool: whether the operation was successful. 572 // - PageType: the type of the page currently displayed. 573 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_GetPageType, 574 int, 575 bool, 576 PageType) 577 578 // This message simulates the user action on the SSL blocking page showing in 579 // the specified tab. This message is only effective if an interstitial page 580 // is showing in the tab. 581 // Request: 582 // - int: handle of the tab 583 // - bool: whether to proceed or abort the navigation 584 // Response: 585 // - AutomationMsg_NavigationResponseValues: result of the operation. 586 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_ActionOnSSLBlockingPage, 587 int, 588 bool, 589 AutomationMsg_NavigationResponseValues) 590 591 // Message to request that a browser window is brought to the front and 592 // activated. 593 // Request: 594 // - int: handle of the browser window. 595 // Response: 596 // - bool: True if the browser is brought to the front. 597 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_BringBrowserToFront, 598 int, 599 bool) 600 601 // Message to request whether a certain item is enabled of disabled in the 602 // menu in the browser window 603 // 604 // Request: 605 // - int: handle of the browser window. 606 // - int: IDC message identifier to query if enabled 607 // Response: 608 // - bool: True if the command is enabled on the menu 609 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_IsMenuCommandEnabled, 610 int, 611 int, 612 bool) 613 614 // This message notifies the AutomationProvider to print the tab with given 615 // handle. The first parameter is the handle to the tab resource. The 616 // return value contains a bool which is true on success. 617 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_PrintNow, 618 int, 619 bool) 620 621 // This message notifies the AutomationProvider to reload the current page in 622 // the tab with given handle. The first parameter is the handle to the tab 623 // resource. The return value contains a status code which is nonnegative on 624 // success. 625 // see AutomationMsg_NavigationResponseValues for the navigation response. 626 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_Reload, 627 int, 628 AutomationMsg_NavigationResponseValues) 629 630 // This message requests the handle (int64 app-unique identifier) of the 631 // last active browser window, or the browser at index 0 if there is no last 632 // active browser, or it no longer exists. Returns 0 if no browser windows 633 // exist. 634 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_LastActiveBrowserWindow, 635 int) 636 637 // This message notifies the AutomationProvider to save the page with given 638 // handle. The first parameter is the handle to the tab resource. The second 639 // parameter is the main HTML file name. The third parameter is the directory 640 // for saving resources. The fourth parameter is the saving type: 0 for HTML 641 // only; 1 for complete web page. 642 // The return value contains a bool which is true on success. 643 IPC_SYNC_MESSAGE_CONTROL4_1(AutomationMsg_SavePage, 644 int, 645 FilePath, 646 FilePath, 647 int, 648 bool) 649 650 // This message requests the text currently being displayed in the 651 // AutocompleteEdit. The parameter is the handle to the AutocompleteEdit. 652 // The return value is a string indicating the text in the AutocompleteEdit. 653 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_AutocompleteEditGetText, 654 int /* autocomplete edit handle */, 655 bool /* the requested autocomplete edit exists */, 656 string16 /* omnibox text */) 657 658 // This message sets the text being displayed in the AutocompleteEdit. The 659 // first parameter is the handle to the omnibox and the second parameter is 660 // the text to be displayed in the AutocompleteEdit. 661 // The return value has no parameters and is returned when the operation has 662 // completed. 663 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_AutocompleteEditSetText, 664 int /* autocomplete edit handle */, 665 string16 /* text to set */, 666 bool /* the requested autocomplete edit exists */) 667 668 // This message requests if a query to a autocomplete provider is still in 669 // progress. The first parameter in the request is the handle to the 670 // autocomplete edit. 671 // The first return value indicates if the request succeeded. 672 // The second return value indicates if a query is still in progress. 673 IPC_SYNC_MESSAGE_CONTROL1_2( \ 674 AutomationMsg_AutocompleteEditIsQueryInProgress, 675 int /* autocomplete edit handle*/, 676 bool /* the requested autocomplete edit exists */, 677 bool /* indicates if a query is in progress */) 678 679 // This message requests a list of the autocomplete messages currently being 680 // displayed by the popup. The parameter in the request is a handle to the 681 // autocomplete edit. 682 // The first return value indicates if the request was successful, while 683 // while the second is the actual list of matches. 684 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_AutocompleteEditGetMatches, 685 int /* autocomplete edit handle*/, 686 bool /* the requested autocomplete edit exists */, 687 std::vector<AutocompleteMatchData> /* matches */) 688 689 // This message requests the execution of a browser command in the browser 690 // for which the handle is specified. 691 // The return value contains a boolean, whether the command was dispatched. 692 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_WindowExecuteCommandAsync, 693 int /* automation handle */, 694 int /* browser command */, 695 bool /* success flag */) 696 697 // This message requests the execution of a browser command in the browser 698 // for which the handle is specified. 699 // The return value contains a boolean, whether the command was dispatched 700 // and successful executed. 701 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_WindowExecuteCommand, 702 int /* automation handle */, 703 int /* browser command */, 704 bool /* success flag */) 705 706 707 // This message opens the Find window within a tab corresponding to the 708 // supplied tab handle. 709 IPC_MESSAGE_CONTROL1(AutomationMsg_OpenFindInPage, 710 int /* tab_handle */) 711 712 // Posts a message from external host to chrome renderer. 713 IPC_MESSAGE_CONTROL4(AutomationMsg_HandleMessageFromExternalHost, 714 int /* automation handle */, 715 std::string /* message */, 716 std::string /* origin */, 717 std::string /* target */) 718 719 // A message for an external host. 720 IPC_MESSAGE_ROUTED3(AutomationMsg_ForwardMessageToExternalHost, 721 std::string /* message */, 722 std::string /* origin */, 723 std::string /* target */) 724 725 // This message starts a find within a tab corresponding to the supplied 726 // tab handle. The parameter |request| specifies what to search for. 727 // If an error occurs, |matches_found| will be -1. 728 // 729 IPC_SYNC_MESSAGE_CONTROL2_2(AutomationMsg_Find, 730 int /* tab_handle */, 731 AutomationMsg_Find_Params /* params */, 732 int /* active_ordinal */, 733 int /* matches_found */) 734 735 // Is the Find window fully visible (and not animating) for the specified 736 // tab? 737 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_FindWindowVisibility, 738 int /* tab_handle */, 739 bool /* is_visible */) 740 741 // Where is the Find window located. |x| and |y| will be -1, -1 on failure. 742 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_FindWindowLocation, 743 int /* tab_handle */, 744 int /* x */, 745 int /* y */) 746 747 // Is the Bookmark bar visible? The return value will indicate whether it is 748 // visible or not and whether it is being animated into (or out of its place). 749 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_BookmarkBarVisibility, 750 int /* browser_handle */, 751 bool, /* is_visible */ 752 bool /* still_animating */) 753 754 // This message requests the number of related info bars opened. It 755 // returns -1 if an error occurred. 756 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_GetInfoBarCount, 757 int /* tab_handle */, 758 size_t /* info bar count */) 759 760 // This message triggers the action associated with the "accept" button in 761 // the info-bar at the specified index. If |wait for navigation| is true, it 762 // won't return until a navigation has occurred. 763 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_ClickInfoBarAccept, 764 int /* tab_handle */, 765 size_t /* info bar index */, 766 bool /* wait for navigation */, 767 // This line blank on purpose, see comment atop file about __LINE__. 768 /* navigation result */ 769 AutomationMsg_NavigationResponseValues) 770 771 // This message retrieves the last time a navigation occurred in the specified 772 // tab. The value is intended to be used with WaitForNavigation. 773 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_GetLastNavigationTime, 774 int /* tab_handle */, 775 int64 /* last navigation time */) 776 777 // This messages is used to block until a new navigation occurs (if there is 778 // none more recent then the time specified). 779 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_WaitForNavigation, 780 int /* tab_handle */, 781 int64 /* last navigation time */, 782 // This line blank on purpose, see comment atop file about __LINE__. 783 /* navigation result */ 784 AutomationMsg_NavigationResponseValues) 785 786 // This messages sets an int-value preference. 787 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_SetIntPreference, 788 int /* browser handle */, 789 std::string /* pref name */, 790 int /* value */, 791 bool /* success */) 792 793 // Queries whether an app modal dialog is currently being shown. (i.e. a 794 // javascript alert) and which buttons it contains. 795 IPC_SYNC_MESSAGE_CONTROL0_2(AutomationMsg_ShowingAppModalDialog, 796 bool /* showing dialog */, 797 int /* view::DelegateDialog::DialogButton */) 798 799 // This message triggers the specified button for the currently showing 800 // modal dialog. 801 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_ClickAppModalDialogButton, 802 int /* view::DelegateDialog::DialogButton */, 803 bool /* success */) 804 805 // This messages sets a string-value preference. 806 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_SetStringPreference, 807 int /* browser handle */, 808 std::string /* pref name */, 809 std::string /* pref value */, 810 bool) 811 812 // This messages gets a boolean-value preference. 813 IPC_SYNC_MESSAGE_CONTROL2_2(AutomationMsg_GetBooleanPreference, 814 int /* browser handle */, 815 std::string /* pref name */, 816 bool /* success */, 817 bool /* pref value */) 818 819 // This messages sets a boolean-value preference. 820 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_SetBooleanPreference, 821 int /* browser handle */, 822 std::string /* pref name */, 823 bool /* pref value */, 824 bool /* success */) 825 826 // Queries the current used encoding name of the page in the specified 827 // web content tab. 828 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_GetPageCurrentEncoding, 829 int /* tab handle */, 830 std::string /* current used encoding name */) 831 832 // Uses the specified encoding to override the encoding of the page in the 833 // specified web content tab. 834 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_OverrideEncoding, 835 int /* tab handle */, 836 std::string /* overrided encoding name */, 837 bool /* success */) 838 839 // Used to disable the dialog box that prompts the user for a path when 840 // saving a web page. 841 IPC_SYNC_MESSAGE_CONTROL1_0(AutomationMsg_SavePackageShouldPromptUser, 842 bool /* false if we want to not show the dialog */) 843 844 // This message is an outgoing message from Chrome to an external host. 845 // It is a notification that a navigation failed 846 // Request: 847 // -int : The status code. 848 // -GURL: The URL we failed to navigate to. 849 // Response: 850 // None expected 851 IPC_MESSAGE_ROUTED2(AutomationMsg_NavigationFailed, 852 int, 853 GURL) 854 855 #if defined(OS_WIN) 856 // This message is an outgoing message from an automation client to Chrome. 857 // It is used to reposition a chrome tab window. 858 IPC_MESSAGE_CONTROL2(AutomationMsg_TabReposition, 859 int /* tab handle */, 860 Reposition_Params /* SetWindowPos params */) 861 #endif // defined(OS_WIN) 862 863 // Gets the title of the top level browser window. 864 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_WindowTitle, 865 int /* automation handle */, 866 string16 /* title text */ ) 867 868 // Tab load complete 869 IPC_MESSAGE_ROUTED1(AutomationMsg_TabLoaded, 870 GURL) 871 872 // This message requests the tabstrip index of the tab with the given handle. 873 // The return value contains the index, which will be -1 on failure. 874 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_TabIndex, 875 int, 876 int) 877 878 // This message requests the handle (int64 app-unique identifier) of 879 // a valid normal browser window, i.e. normal type and non-incognito mode. 880 // On error, the returned handle value is 0. 881 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_FindNormalBrowserWindow, 882 int) 883 884 // This message requests the number of normal browser windows, i.e. normal 885 // type and non-incognito mode that the app currently has open. The return 886 // value is the number of windows. 887 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_NormalBrowserWindowCount, 888 int) 889 890 // DEPRECATED MESSAGE - But we must leave this comment and message so as 891 // not to perturb line numbers (see comment at top of file re __LINE__). 892 // TODO(phajdan.jr): Remove when the reference build is updated (this and 893 // all others marked "DEPRECATED MESSAGE"). 894 // (intentionally blank line) 895 IPC_MESSAGE_CONTROL2(AutomationMsg_DeprecatedMessageOne, 896 // (intentionally blank line) 897 int, 898 // (intentionally blank line) 899 // (intentionally blank line) 900 // (intentionally blank line) 901 // (intentionally blank line) 902 int) 903 904 // This message tells the browser to start using the new proxy configuration 905 // represented by the given JSON string. The parameters used in the JSON 906 // string are defined in automation_constants.h. 907 IPC_MESSAGE_CONTROL1(AutomationMsg_SetProxyConfig, 908 std::string /* proxy_config_json_string */) 909 910 // Sets Download Shelf visibility for the specified browser. 911 IPC_SYNC_MESSAGE_CONTROL2_0(AutomationMsg_SetShelfVisibility, 912 int /* browser_handle */, 913 bool /* is_visible */) 914 915 // This message requests the number of blocked popups in a certain tab with 916 // the given handle. The return value is the number of blocked popups, or -1 917 // if this request failed. 918 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_BlockedPopupCount, 919 int /* tab_handle */, 920 int /* blocked_popup_count */) 921 922 // This message retrieves the locale of the browser process. On success 923 // |chrome_locale| will contain the locale as reported by ICU. On failure 924 // |chrome_locale| is the empty string. 925 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_GetBrowserLocale, 926 string16 /* chrome_locale */) 927 928 #if defined(OS_WIN) 929 IPC_MESSAGE_ROUTED3(AutomationMsg_ForwardContextMenuToExternalHost, 930 HANDLE /* source menu handle */, 931 int /* align flags */, 932 MiniContextMenuParams /* params */) 933 934 IPC_MESSAGE_CONTROL2(AutomationMsg_ForwardContextMenuCommandToChrome, 935 int /* tab_handle */, 936 int /* selected_command */) 937 #endif // OS_WIN 938 939 // A URL request to be fetched via automation 940 IPC_MESSAGE_ROUTED2(AutomationMsg_RequestStart, 941 int /* request_id */, 942 AutomationURLRequest /* request */) 943 944 // Read data from a URL request to be fetched via automation 945 IPC_MESSAGE_ROUTED2(AutomationMsg_RequestRead, 946 int /* request_id */, 947 int /* bytes_to_read */) 948 949 // Response to a AutomationMsg_RequestStart message 950 IPC_MESSAGE_ROUTED2(AutomationMsg_RequestStarted, 951 int /* request_id */, 952 AutomationURLResponse /* response */) 953 954 // Data read via automation 955 IPC_MESSAGE_ROUTED2(AutomationMsg_RequestData, 956 int /* request_id */, 957 std::string /* data */) 958 959 IPC_MESSAGE_ROUTED2(AutomationMsg_RequestEnd, 960 int /* request_id */, 961 net::URLRequestStatus /* status */) 962 963 IPC_MESSAGE_CONTROL1(AutomationMsg_PrintAsync, 964 int /* tab_handle */) 965 966 IPC_MESSAGE_ROUTED2(AutomationMsg_SetCookieAsync, 967 GURL /* url */, 968 std::string /* cookie */) 969 970 IPC_MESSAGE_CONTROL1(AutomationMsg_SelectAll, 971 int /* tab handle */) 972 973 IPC_MESSAGE_CONTROL1(AutomationMsg_Cut, 974 int /* tab handle */) 975 976 IPC_MESSAGE_CONTROL1(AutomationMsg_Copy, 977 int /* tab handle */) 978 979 IPC_MESSAGE_CONTROL1(AutomationMsg_Paste, 980 int /* tab handle */) 981 982 IPC_MESSAGE_CONTROL1(AutomationMsg_ReloadAsync, 983 int /* tab handle */) 984 985 IPC_MESSAGE_CONTROL1(AutomationMsg_StopAsync, 986 int /* tab handle */) 987 988 // Returns the number of times a filter was used to service an URL request. 989 // See AutomationMsg_SetFilteredInet. 990 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_GetFilteredInetHitCount, 991 int /* hit_count */) 992 993 // Is the browser in fullscreen mode? 994 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_IsFullscreen, 995 int /* browser_handle */, 996 bool /* is_fullscreen */) 997 998 // Is the fullscreen bubble visible? 999 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_IsFullscreenBubbleVisible, 1000 int /* browser_handle */, 1001 bool /* is_visible */) 1002 1003 // This message notifies the AutomationProvider to navigate to a specified 1004 // url in the tab with given handle. The first parameter is the handle to 1005 // the tab resource. The second parameter is the target url. The third 1006 // parameter is the number of navigations that are required for a successful 1007 // return value. See AutomationMsg_NavigationResponseValues for the return 1008 // value. 1009 IPC_SYNC_MESSAGE_CONTROL3_1( 1010 AutomationMsg_NavigateToURLBlockUntilNavigationsComplete, 1011 int, 1012 GURL, 1013 int, 1014 AutomationMsg_NavigationResponseValues) 1015 1016 // This message notifies the AutomationProvider to navigate to a specified 1017 // navigation entry index in the external tab with given handle. The first 1018 // parameter is the handle to the tab resource. The second parameter is the 1019 // index of navigation entry. 1020 // The return value contains a status code which is nonnegative on success. 1021 // see AutomationMsg_NavigationResponseValues for the navigation response. 1022 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_NavigateExternalTabAtIndex, 1023 int, 1024 int, 1025 AutomationMsg_NavigationResponseValues) 1026 1027 // This message requests the provider to wait until the window count 1028 // reached the specified value. 1029 // Request: 1030 // - int: target browser window count 1031 // Response: 1032 // - bool: whether the operation was successful. 1033 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_WaitForBrowserWindowCountToBecome, 1034 int, 1035 bool) 1036 1037 // This message requests the provider to wait until an application modal 1038 // dialog is shown. 1039 // Response: 1040 // - bool: whether the operation was successful 1041 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_WaitForAppModalDialogToBeShown, 1042 bool) 1043 1044 // This message notifies the AutomationProvider to navigate back in session 1045 // history in the tab with given handle. The first parameter is the handle 1046 // to the tab resource. The second parameter is the number of navigations the 1047 // provider will wait for. 1048 // See AutomationMsg_NavigationResponseValues for the navigation response 1049 // values. 1050 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_GoBackBlockUntilNavigationsComplete, 1051 int, 1052 int, 1053 AutomationMsg_NavigationResponseValues) 1054 1055 // This message notifies the AutomationProvider to navigate forward in session 1056 // history in the tab with given handle. The first parameter is the handle 1057 // to the tab resource. The second parameter is the number of navigations 1058 // the provider will wait for. 1059 // See AutomationMsg_NavigationResponseValues for the navigation response 1060 // values. 1061 IPC_SYNC_MESSAGE_CONTROL2_1( 1062 AutomationMsg_GoForwardBlockUntilNavigationsComplete, 1063 int, 1064 int, 1065 AutomationMsg_NavigationResponseValues) 1066 1067 // This message is used by automation clients to upload histogram data to the 1068 // browser process. 1069 IPC_MESSAGE_CONTROL1(AutomationMsg_RecordHistograms, 1070 std::vector<std::string> /* histogram_list */) 1071 1072 IPC_MESSAGE_ROUTED1(AutomationMsg_AttachExternalTab, 1073 AttachExternalTabParams) 1074 1075 // Sent when the automation client connects to an existing tab. 1076 IPC_SYNC_MESSAGE_CONTROL3_4(AutomationMsg_ConnectExternalTab, 1077 uint64 /* cookie */, 1078 bool /* allow/block tab*/, 1079 gfx::NativeWindow /* parent window */, 1080 gfx::NativeWindow /* Tab container window */, 1081 gfx::NativeWindow /* Tab window */, 1082 int /* Handle to the new tab */, 1083 int /* Session Id of the new tab */) 1084 1085 // This message gets the bounds of the window. 1086 // Request: 1087 // int - the handle of the window to query 1088 // Response: 1089 // gfx::Rect - the bounds of the window 1090 // bool - true if the query was successful 1091 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_GetWindowBounds, 1092 int, 1093 gfx::Rect, 1094 bool) 1095 1096 // Simulate an end of session. Normally this happens when the user 1097 // shuts down the machine or logs off. 1098 // Request: 1099 // int - the handle of the browser 1100 // Response: 1101 // bool - true if succesful 1102 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_TerminateSession, 1103 int, 1104 bool) 1105 1106 // Returns whether the window is maximized. 1107 // Request: 1108 // int - the handle of the window 1109 // Response: 1110 // bool - true if the window is maximized 1111 // bool - true if query is successful 1112 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_IsWindowMaximized, 1113 int, 1114 bool, 1115 bool) 1116 1117 IPC_MESSAGE_CONTROL2(AutomationMsg_SetPageFontSize, 1118 int /* tab_handle */, 1119 int /* The font size */) 1120 1121 // Returns a metric event duration that was last recorded. Returns -1 if the 1122 // event hasn't occurred yet. 1123 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_GetMetricEventDuration, 1124 std::string /* event_name */, 1125 int /* duration ms */) 1126 1127 // Sent by automation provider - go to history entry via automation. 1128 IPC_MESSAGE_ROUTED1(AutomationMsg_RequestGoToHistoryEntryOffset, 1129 int) // numbers of entries (negative or positive) 1130 1131 // Silently install the extension in the given crx file. 1132 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_InstallExtension, 1133 FilePath /* full path to crx file */, 1134 AutomationMsg_ExtensionResponseValues) 1135 1136 // DEPRECATED MESSAGE - But we must leave this comment and message so as 1137 // not to perturb line numbers (see comment at top of file re __LINE__). 1138 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_DeprecatedMessageTwo, 1139 int, 1140 int) 1141 1142 // DEPRECATED MESSAGE - But we must leave this comment and message so as 1143 // not to perturb line numbers (see comment at top of file re __LINE__). 1144 // (intentionally blank line) 1145 // (intentionally blank line) 1146 // (intentionally blank line) 1147 // (intentionally blank line) 1148 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_DeprecatedMessageThree, 1149 int) 1150 1151 // This message requests the type of the window with the given handle. The 1152 // return value contains the type (Browser::Type), or -1 if the request 1153 // failed. 1154 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_Type, 1155 int, 1156 int) 1157 1158 // Opens a new browser window of a specific type. 1159 IPC_SYNC_MESSAGE_CONTROL2_0(AutomationMsg_OpenNewBrowserWindowOfType, 1160 int /* Type (Browser::Type) */, 1161 bool /* show */ ) 1162 1163 // This message requests that the mouse be moved to this location, in 1164 // window coordinate space. 1165 // Request: 1166 // int - the handle of the window that's the context for this click 1167 // gfx::Point - the location to move to 1168 IPC_MESSAGE_CONTROL2(AutomationMsg_WindowMouseMove, 1169 int, 1170 gfx::Point) 1171 1172 // Called when requests should be downloaded using a host browser's 1173 // download mechanism when chrome is being embedded. 1174 IPC_MESSAGE_ROUTED1(AutomationMsg_DownloadRequestInHost, 1175 int /* request_id */) 1176 1177 // Shuts down the session service for the browser identified by 1178 // |browser_handle|. On success |result| is set to true. 1179 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_ShutdownSessionService, 1180 int /* browser_handle */, 1181 bool /* result */) 1182 1183 IPC_MESSAGE_CONTROL1(AutomationMsg_SaveAsAsync, 1184 int /* tab handle */) 1185 1186 #if defined(OS_WIN) 1187 // An incoming message from an automation host to Chrome. Signals that 1188 // the browser containing |tab_handle| has moved. 1189 IPC_MESSAGE_CONTROL1(AutomationMsg_BrowserMove, 1190 int /* tab handle */) 1191 #endif 1192 1193 // Used to get cookies for the given URL. 1194 IPC_MESSAGE_ROUTED2(AutomationMsg_GetCookiesFromHost, 1195 GURL /* url */, 1196 int /* opaque_cookie_id */) 1197 1198 IPC_MESSAGE_CONTROL5(AutomationMsg_GetCookiesHostResponse, 1199 int /* tab_handle */, 1200 bool /* success */, 1201 GURL /* url */, 1202 std::string /* cookies */, 1203 int /* opaque_cookie_id */) 1204 1205 // If the given host is empty, then the default content settings are 1206 // modified. 1207 IPC_SYNC_MESSAGE_CONTROL4_1(AutomationMsg_SetContentSetting, 1208 int /* browser handle */, 1209 std::string /* host */, 1210 ContentSettingsType /* content type */, 1211 ContentSetting /* setting */, 1212 bool /* success */) 1213 1214 #if defined(OS_CHROMEOS) 1215 // Logs in through the browser's login wizard if available. 1216 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_LoginWithUserAndPass, 1217 std::string /* username*/, 1218 std::string /* password*/, 1219 bool /* Whether successful*/) 1220 #endif 1221 1222 // Return the bookmarks encoded as a JSON string. 1223 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_GetBookmarksAsJSON, 1224 int /* browser_handle */, 1225 std::string /* bookmarks as a JSON string */, 1226 bool /* success */) 1227 1228 // Wait for the bookmark model to load. 1229 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_WaitForBookmarkModelToLoad, 1230 int /* browser_handle */, 1231 bool /* success */) 1232 1233 // Bookmark addition, modification, and removal. 1234 // Bookmarks are indexed by their id. 1235 IPC_SYNC_MESSAGE_CONTROL4_1(AutomationMsg_AddBookmarkGroup, 1236 int /* browser_handle */, 1237 int64 /* parent_id */, 1238 int /* index */, 1239 std::wstring /* title */, 1240 bool /* success */) 1241 IPC_SYNC_MESSAGE_CONTROL5_1(AutomationMsg_AddBookmarkURL, 1242 int /* browser_handle */, 1243 int64 /* parent_id */, 1244 int /* index */, 1245 std::wstring /* title */, 1246 GURL /* url */, 1247 bool /* success */) 1248 IPC_SYNC_MESSAGE_CONTROL4_1(AutomationMsg_ReparentBookmark, 1249 int /* browser_handle */, 1250 int64 /* id */, 1251 int64 /* new_parent_id */, 1252 int /* index */, 1253 bool /* success */) 1254 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_SetBookmarkTitle, 1255 int /* browser_handle */, 1256 int64 /* id */, 1257 std::wstring /* title */, 1258 bool /* success */) 1259 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_SetBookmarkURL, 1260 int /* browser_handle */, 1261 int64 /* id */, 1262 GURL /* url */, 1263 bool /* success */) 1264 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_RemoveBookmark, 1265 int /* browser_handle */, 1266 int64 /* id */, 1267 bool /* success */) 1268 1269 // This message informs the browser process to remove the history entries 1270 // for the specified types across all time ranges. See 1271 // browsing_data_remover.h for a list of REMOVE_* types supported in the 1272 // remove_mask parameter. 1273 IPC_MESSAGE_CONTROL1(AutomationMsg_RemoveBrowsingData, 1274 int) 1275 1276 // Block until the focused view id changes to something other than 1277 // |previous_view_id|. 1278 IPC_SYNC_MESSAGE_CONTROL2_2(AutomationMsg_WaitForFocusedViewIDToChange, 1279 int /* window handle */, 1280 int /* previous_view_id */, 1281 bool /* success */, 1282 int /* new_view_id */) 1283 1284 // To avoid race conditions, waiting until a popup menu opens is a 1285 // three-step process: 1286 // 1. Call StartTrackingPopupMenus. 1287 // 2. Call an automation method that results in opening the popup menu. 1288 // 3. Call WaitForPopupMenuToOpen and check for success. 1289 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_StartTrackingPopupMenus, 1290 int /* browser handle */, 1291 bool /* success */) 1292 IPC_SYNC_MESSAGE_CONTROL0_1(AutomationMsg_WaitForPopupMenuToOpen, 1293 bool /* success */) 1294 1295 // Generic pyauto pattern to help avoid future addition of 1296 // automation messages. 1297 IPC_SYNC_MESSAGE_CONTROL2_2(AutomationMsg_SendJSONRequest, 1298 int /* browser_handle */, 1299 std::string /* JSON request */, 1300 std::string /* JSON response */, 1301 bool /* success */) 1302 1303 // Installs an extension from the crx file and returns its id. 1304 // On error, |extension handle| will be 0. 1305 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_InstallExtensionAndGetHandle, 1306 FilePath /* full path to crx file */, 1307 bool /* with UI */, 1308 int /* extension handle */) 1309 1310 // Waits for the next extension test result. Sets |test result| as the 1311 // received result and |message| as any accompanying message with the 1312 // result, which could be the empty string. 1313 IPC_SYNC_MESSAGE_CONTROL0_2(AutomationMsg_WaitForExtensionTestResult, 1314 bool /* test result */, 1315 std::string /* message */) 1316 1317 // Uninstalls an extension. On success |success| is true. 1318 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_UninstallExtension, 1319 int /* extension handle */, 1320 bool /* success */) 1321 1322 // Enables an extension. On success |success| is true. 1323 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_EnableExtension, 1324 int /* extension handle */, 1325 bool /* success */) 1326 1327 // Disables an extension. On success |success| is true. 1328 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_DisableExtension, 1329 int /* extension handle */, 1330 bool /* success */) 1331 1332 // Executes the action associated with the given extension. This executes 1333 // the extension's page or browser action in the given browser, but does 1334 // not open popups. On success |success| is true. 1335 IPC_SYNC_MESSAGE_CONTROL2_1( 1336 AutomationMsg_ExecuteExtensionActionInActiveTabAsync, 1337 int /* extension handle */, 1338 int /* browser handle */, 1339 bool /* success */) 1340 1341 // Moves the browser action to the given index in the browser action toolbar. 1342 // On success |success| is true. 1343 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_MoveExtensionBrowserAction, 1344 int /* extension handle */, 1345 int /* index */, 1346 bool /* success */) 1347 1348 // Gets an extension property |property type|. On success |success| is true, 1349 // and |property value| is set. 1350 IPC_SYNC_MESSAGE_CONTROL2_2(AutomationMsg_GetExtensionProperty, 1351 int /* extension handle */, 1352 AutomationMsg_ExtensionProperty /* property type */, 1353 bool /* success */, 1354 std::string /* property value */) 1355 1356 // Resets to the default theme. 1357 IPC_SYNC_MESSAGE_CONTROL0_0(AutomationMsg_ResetToDefaultTheme) 1358 1359 // Navigates asynchronously to a URL with a certain disposition, 1360 // like in a new tab. 1361 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_NavigationAsyncWithDisposition, 1362 int /* tab handle */, 1363 GURL, 1364 WindowOpenDisposition, 1365 bool /* result */) 1366 1367 1368 // This message requests the cookie be deleted for given url in the 1369 // profile of the tab identified by the first parameter. The second 1370 // parameter is the cookie name. 1371 IPC_SYNC_MESSAGE_CONTROL3_1(AutomationMsg_DeleteCookie, 1372 GURL, 1373 std::string, 1374 int /* tab handle */, 1375 bool /* result */) 1376 1377 // This message triggers the collected cookies dialog for a specific tab. 1378 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_ShowCollectedCookiesDialog, 1379 int /* tab handle */, 1380 bool /* result */) 1381 1382 // This message requests the external tab identified by the tab handle 1383 // passed in be closed. 1384 // Request: 1385 // Response: 1386 // None expected 1387 IPC_MESSAGE_ROUTED0(AutomationMsg_CloseExternalTab) 1388 1389 // This message requests that the external tab identified by the tab handle 1390 // runs unload handlers if any on the current page. 1391 // Request: 1392 // -int: Tab handle 1393 // -bool: result: true->unload, false->don't unload 1394 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_RunUnloadHandlers, 1395 int, 1396 bool) 1397 1398 // This message sets the current zoom level on the tab 1399 // Request: 1400 // -int: Tab handle 1401 // -int: Zoom level. Values ZOOM_OUT = -1, RESET = 0, ZOOM_IN = 1 1402 // Response: 1403 // None expected 1404 IPC_MESSAGE_CONTROL2(AutomationMsg_SetZoomLevel, 1405 int, 1406 int) 1407 1408 // Waits for tab count to reach target value. 1409 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_WaitForTabCountToBecome, 1410 int /* browser handle */, 1411 int /* target tab count */, 1412 bool /* success */) 1413 1414 // Waits for the infobar count to reach given number. 1415 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_WaitForInfoBarCount, 1416 int /* tab handle */, 1417 size_t /* target count */, 1418 bool /* success */) 1419 1420 // Waits for the autocomplete edit to receive focus. 1421 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_WaitForAutocompleteEditFocus, 1422 int /* autocomplete edit handle */, 1423 bool /* success */) 1424 1425 // Loads all blocked plug-ins on the page. 1426 IPC_SYNC_MESSAGE_CONTROL1_1(AutomationMsg_LoadBlockedPlugins, 1427 int /* tab handle */, 1428 bool /* success */) 1429 1430 // TODO(phajdan.jr): Remove this message. 1431 // Captures the entire page for the tab, including those portions not in 1432 // view, and saves the image as a PNG in the given file location. 1433 // This message is deprecated, use the JSON testing interface for 1434 // similar functionality. 1435 // Request: 1436 // -int: Tab handle 1437 // -FilePath: Path to save the captured image to 1438 // Response: 1439 // -bool: Whether the method succeeded 1440 IPC_SYNC_MESSAGE_CONTROL2_1(AutomationMsg_CaptureEntirePageAsPNG_Deprecated, 1441 int, 1442 FilePath, 1443 bool) 1444 1445 // Notify the JavaScript engine in the render to change its parameters 1446 // while performing stress testing. 1447 IPC_MESSAGE_CONTROL3(AutomationMsg_JavaScriptStressTestControl, 1448 int /* tab handle */, 1449 int /* command */, 1450 int /* type or run */) 1451 1452 // This message posts a task to the PROCESS_LAUNCHER thread. Once processed 1453 // the response is sent back. This is useful when you want to make sure all 1454 // changes to the number of processes have completed. 1455 IPC_SYNC_MESSAGE_CONTROL0_0(AutomationMsg_WaitForProcessLauncherThreadToGoIdle) 1456 1457 // Gets a handle of the browser that owns the given tab. 1458 IPC_SYNC_MESSAGE_CONTROL1_2(AutomationMsg_GetParentBrowserOfTab, 1459 int /* tab handle */, 1460 int /* browser handle */, 1461 bool /* success */) 1462 1463 // This message is an outgoing message from Chrome to an external host. 1464 // It is a notification that a popup window position or dimentions have 1465 // changed 1466 // Request: 1467 // gfx::Rect - the bounds of the window 1468 // Response: 1469 // None expected 1470 IPC_MESSAGE_ROUTED1(AutomationMsg_MoveWindow, 1471 gfx::Rect /* window position and dimentions */) 1472 1473 // Renderer -> browser messages. 1474 1475 // Sent when the renderer has scheduled a client redirect to occur. 1476 IPC_MESSAGE_ROUTED2(AutomationMsg_WillPerformClientRedirect, 1477 int64 /* frame_id */, 1478 double /* # of seconds till redirect will be performed */) 1479 1480 // Sent when the renderer has completed or canceled a client redirect for a 1481 // particular frame. This message may be sent multiple times for the same 1482 // redirect. 1483 IPC_MESSAGE_ROUTED1(AutomationMsg_DidCompleteOrCancelClientRedirect, 1484 int64 /* frame_id */) 1485 1486 1487 // YOUR NEW MESSAGE MIGHT NOT BELONG HERE. 1488 // This is the section for renderer -> browser automation messages. If it is 1489 // an automation <-> browser message, put it above this section. 1490