• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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