1 // Copyright (c) 2012 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 // Multiply-included file, no traditional include guard. 6 #include <string> 7 #include <vector> 8 9 #include "content/public/common/common_param_traits.h" 10 #include "content/public/common/page_state.h" 11 #include "content/shell/common/leak_detection_result.h" 12 #include "content/shell/common/shell_test_configuration.h" 13 #include "ipc/ipc_message_macros.h" 14 #include "ipc/ipc_platform_file.h" 15 #include "third_party/skia/include/core/SkBitmap.h" 16 #include "ui/gfx/ipc/gfx_param_traits.h" 17 18 #define IPC_MESSAGE_START ShellMsgStart 19 20 IPC_STRUCT_TRAITS_BEGIN(content::ShellTestConfiguration) 21 IPC_STRUCT_TRAITS_MEMBER(current_working_directory) 22 IPC_STRUCT_TRAITS_MEMBER(temp_path) 23 IPC_STRUCT_TRAITS_MEMBER(test_url) 24 IPC_STRUCT_TRAITS_MEMBER(enable_pixel_dumping) 25 IPC_STRUCT_TRAITS_MEMBER(allow_external_pages) 26 IPC_STRUCT_TRAITS_MEMBER(expected_pixel_hash) 27 IPC_STRUCT_TRAITS_MEMBER(initial_size) 28 IPC_STRUCT_TRAITS_END() 29 30 // Tells the renderer to reset all test runners. 31 IPC_MESSAGE_ROUTED0(ShellViewMsg_Reset) 32 33 // Sets the path to the WebKit checkout. 34 IPC_MESSAGE_CONTROL1(ShellViewMsg_SetWebKitSourceDir, 35 base::FilePath /* webkit source dir */) 36 37 // Sets the initial configuration to use for layout tests. 38 IPC_MESSAGE_ROUTED1(ShellViewMsg_SetTestConfiguration, 39 content::ShellTestConfiguration) 40 41 // Tells the main window that a secondary window in a different process invoked 42 // notifyDone(). 43 IPC_MESSAGE_ROUTED0(ShellViewMsg_NotifyDone) 44 45 // Pushes a snapshot of the current session history from the browser process. 46 // This includes only information about those RenderViews that are in the 47 // same process as the main window of the layout test and that are the current 48 // active RenderView of their WebContents. 49 IPC_MESSAGE_ROUTED3( 50 ShellViewMsg_SessionHistory, 51 std::vector<int> /* routing_ids */, 52 std::vector<std::vector<content::PageState> > /* session_histories */, 53 std::vector<unsigned> /* current_entry_indexes */) 54 55 IPC_MESSAGE_ROUTED0(ShellViewMsg_TryLeakDetection) 56 57 // Send a text dump of the WebContents to the render host. 58 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_TextDump, 59 std::string /* dump */) 60 61 // Send an image dump of the WebContents to the render host. 62 IPC_MESSAGE_ROUTED2(ShellViewHostMsg_ImageDump, 63 std::string /* actual pixel hash */, 64 SkBitmap /* image */) 65 66 // Send an audio dump to the render host. 67 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_AudioDump, 68 std::vector<unsigned char> /* audio data */) 69 70 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_TestFinished) 71 72 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_ResetDone) 73 74 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_TestFinishedInSecondaryWindow) 75 76 // WebTestDelegate related. 77 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_OverridePreferences, 78 content::WebPreferences /* preferences */) 79 IPC_SYNC_MESSAGE_ROUTED1_1(ShellViewHostMsg_RegisterIsolatedFileSystem, 80 std::vector<base::FilePath> /* absolute_filenames */, 81 std::string /* filesystem_id */) 82 IPC_SYNC_MESSAGE_ROUTED1_1(ShellViewHostMsg_ReadFileToString, 83 base::FilePath /* local path */, 84 std::string /* contents */) 85 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_PrintMessage, 86 std::string /* message */) 87 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_ClearDevToolsLocalStorage) 88 IPC_MESSAGE_ROUTED2(ShellViewHostMsg_ShowDevTools, 89 std::string /* settings */, 90 std::string /* frontend_url */) 91 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_CloseDevTools) 92 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_GoToOffset, 93 int /* offset */) 94 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_Reload) 95 IPC_MESSAGE_ROUTED2(ShellViewHostMsg_LoadURLForFrame, 96 GURL /* url */, 97 std::string /* frame_name */) 98 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_ClearAllDatabases) 99 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_SetDatabaseQuota, 100 int /* quota */) 101 IPC_SYNC_MESSAGE_ROUTED1_1(ShellViewHostMsg_CheckWebNotificationPermission, 102 GURL /* origin */, 103 int /* result */) 104 IPC_MESSAGE_ROUTED2(ShellViewHostMsg_GrantWebNotificationPermission, 105 GURL /* origin */, 106 bool /* permission_granted */) 107 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_ClearWebNotificationPermissions) 108 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_AcceptAllCookies, 109 bool /* accept */) 110 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_DeleteAllCookies) 111 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_SetDeviceScaleFactor, 112 float /* factor */) 113 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_CaptureSessionHistory) 114 IPC_MESSAGE_ROUTED0(ShellViewHostMsg_CloseRemainingWindows) 115 116 IPC_MESSAGE_CONTROL3(ShellViewHostMsg_EchoPing, 117 int /* routing_id */, 118 int /* id */, 119 std::string /* body */) 120 IPC_MESSAGE_ROUTED2(ShellViewMsg_EchoPong, 121 int /* id */, 122 std::string /* body */) 123 124 IPC_STRUCT_TRAITS_BEGIN(content::LeakDetectionResult) 125 IPC_STRUCT_TRAITS_MEMBER(leaked) 126 IPC_STRUCT_TRAITS_MEMBER(detail) 127 IPC_STRUCT_TRAITS_END() 128 129 IPC_MESSAGE_ROUTED1(ShellViewHostMsg_LeakDetectionDone, 130 content::LeakDetectionResult /* result */) 131