// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Multiply-included file, no traditional include guard. #include #include #include "base/values.h" #include "content/public/common/common_param_traits.h" #include "content/public/common/page_state.h" #include "content/shell/common/leak_detection_result.h" #include "content/shell/common/shell_test_configuration.h" #include "ipc/ipc_message_macros.h" #include "ipc/ipc_platform_file.h" #include "third_party/skia/include/core/SkBitmap.h" #include "ui/gfx/ipc/gfx_param_traits.h" #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" #define IPC_MESSAGE_START ShellMsgStart IPC_STRUCT_TRAITS_BEGIN(content::ShellTestConfiguration) IPC_STRUCT_TRAITS_MEMBER(current_working_directory) IPC_STRUCT_TRAITS_MEMBER(temp_path) IPC_STRUCT_TRAITS_MEMBER(test_url) IPC_STRUCT_TRAITS_MEMBER(enable_pixel_dumping) IPC_STRUCT_TRAITS_MEMBER(allow_external_pages) IPC_STRUCT_TRAITS_MEMBER(expected_pixel_hash) IPC_STRUCT_TRAITS_MEMBER(initial_size) IPC_STRUCT_TRAITS_END() // Tells the renderer to reset all test runners. IPC_MESSAGE_ROUTED0(ShellViewMsg_Reset) // Sets the path to the WebKit checkout. IPC_MESSAGE_CONTROL1(ShellViewMsg_SetWebKitSourceDir, base::FilePath /* webkit source dir */) // Sets the test config for a layout test that is being started. IPC_MESSAGE_ROUTED1(ShellViewMsg_SetTestConfiguration, content::ShellTestConfiguration) // Replicates test config (for an already started test) to a new renderer. IPC_MESSAGE_ROUTED2( ShellViewMsg_ReplicateTestConfiguration, content::ShellTestConfiguration, base::DictionaryValue /* accumulated_layout_test_runtime_flags_changes */) // Used to broadcast changes happening in one renderer to all other renderers. IPC_MESSAGE_ROUTED1( ShellViewMsg_ReplicateLayoutTestRuntimeFlagsChanges, base::DictionaryValue /* changed_layout_test_runtime_flags */) // Tells the main window that a secondary renderer in a different process thinks // the test is finished. IPC_MESSAGE_ROUTED0(ShellViewMsg_NotifyDone) // Pushes a snapshot of the current session history from the browser process. // This includes only information about those RenderViews that are in the // same process as the main window of the layout test and that are the current // active RenderView of their WebContents. IPC_MESSAGE_ROUTED3( ShellViewMsg_SessionHistory, std::vector /* routing_ids */, std::vector > /* session_histories */, std::vector /* current_entry_indexes */) IPC_MESSAGE_ROUTED0(ShellViewMsg_TryLeakDetection) // Asks a frame to dump its contents into a string and send them back over IPC. IPC_MESSAGE_ROUTED0(ShellViewMsg_LayoutDumpRequest) // Notifies BlinkTestRunner that the layout dump has completed // (and that it can proceed with finishing up the test). IPC_MESSAGE_ROUTED1(ShellViewMsg_LayoutDumpCompleted, std::string /* completed/stitched layout dump */) // Notifies the browser that one of renderers has changed layout test runtime // flags (i.e. has set dump_as_text). IPC_MESSAGE_ROUTED1( ShellViewHostMsg_LayoutTestRuntimeFlagsChanged, base::DictionaryValue /* changed_layout_test_runtime_flags */) // Send a text dump of the WebContents to the render host. IPC_MESSAGE_ROUTED1(ShellViewHostMsg_TextDump, std::string /* dump */) // Asks the browser process to perform a layout dump spanning all the // (potentially cross-process) frames. This triggers multiple // ShellViewMsg_LayoutDumpRequest / ShellViewHostMsg_LayoutDumpResponse messages // and ends with sending of ShellViewMsg_LayoutDumpCompleted. IPC_MESSAGE_ROUTED0(ShellViewHostMsg_InitiateLayoutDump) // Sends a layout dump of a frame (response to ShellViewMsg_LayoutDumpRequest). IPC_MESSAGE_ROUTED1(ShellViewHostMsg_LayoutDumpResponse, std::string /* dump */) // Send an image dump of the WebContents to the render host. IPC_MESSAGE_ROUTED2(ShellViewHostMsg_ImageDump, std::string /* actual pixel hash */, SkBitmap /* image */) // Send an audio dump to the render host. IPC_MESSAGE_ROUTED1(ShellViewHostMsg_AudioDump, std::vector /* audio data */) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_TestFinished) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_ResetDone) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_TestFinishedInSecondaryRenderer) // WebTestDelegate related. IPC_MESSAGE_ROUTED1(ShellViewHostMsg_OverridePreferences, content::WebPreferences /* preferences */) IPC_MESSAGE_ROUTED1(ShellViewHostMsg_PrintMessage, std::string /* message */) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_ClearDevToolsLocalStorage) IPC_MESSAGE_ROUTED2(ShellViewHostMsg_ShowDevTools, std::string /* settings */, std::string /* frontend_url */) IPC_MESSAGE_ROUTED2(ShellViewHostMsg_EvaluateInDevTools, int /* call_id */, std::string /* script */) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_CloseDevTools) IPC_MESSAGE_ROUTED1(ShellViewHostMsg_GoToOffset, int /* offset */) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_Reload) IPC_MESSAGE_ROUTED2(ShellViewHostMsg_LoadURLForFrame, GURL /* url */, std::string /* frame_name */) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_CaptureSessionHistory) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_CloseRemainingWindows) IPC_STRUCT_TRAITS_BEGIN(content::LeakDetectionResult) IPC_STRUCT_TRAITS_MEMBER(leaked) IPC_STRUCT_TRAITS_MEMBER(detail) IPC_STRUCT_TRAITS_END() IPC_MESSAGE_ROUTED1(ShellViewHostMsg_LeakDetectionDone, content::LeakDetectionResult /* result */) IPC_MESSAGE_ROUTED1(ShellViewHostMsg_SetBluetoothManualChooser, bool /* enable */) IPC_MESSAGE_ROUTED0(ShellViewHostMsg_GetBluetoothManualChooserEvents) IPC_MESSAGE_ROUTED1(ShellViewMsg_ReplyBluetoothManualChooserEvents, std::vector /* events */) IPC_MESSAGE_ROUTED2(ShellViewHostMsg_SendBluetoothManualChooserEvent, std::string /* event */, std::string /* argument */)