| // Copyright 2017 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. |
| |
| module content.mojom; |
| |
| import "content/public/common/web_preferences.mojom"; |
| import "mojo/public/mojom/base/file_path.mojom"; |
| import "skia/public/mojom/bitmap.mojom"; |
| import "ui/gfx/geometry/mojom/geometry.mojom"; |
| import "url/mojom/url.mojom"; |
| |
| struct ShellTestConfiguration { |
| // The current working directory. |
| mojo_base.mojom.FilePath current_working_directory; |
| |
| // The temporary directory of the system. |
| mojo_base.mojom.FilePath temp_path; |
| |
| // The URL of the current web test. |
| url.mojom.Url test_url; |
| |
| // True if tests can open external URLs. |
| bool allow_external_pages; |
| |
| // The expected MD5 hash of the pixel results. |
| string expected_pixel_hash; |
| |
| // The initial size of the test window. |
| gfx.mojom.Size initial_size; |
| |
| // Whether the test is running in protocol mode. |
| // See TestInfo::protocol_mode in browser/web_test/test_info_extractor.h. |
| bool protocol_mode; |
| }; |
| |
| // Results of a CaptureDump call. |
| struct BlinkTestDump { |
| // Audio dump. |
| array<uint8>? audio; |
| |
| // Layout dump. |
| string? layout; |
| |
| // Image dump. |
| skia.mojom.Bitmap? pixels; |
| string actual_pixel_hash; |
| |
| // Selection rect dump. |
| gfx.mojom.Rect selection_rect; |
| }; |
| |
| // Blink test messages sent from the browser process to the renderer. |
| interface BlinkTestControl { |
| CaptureDump() => (BlinkTestDump result); |
| |
| CompositeWithRaster() => (); |
| |
| // Dumps the frame's contents into a string. |
| DumpFrameLayout() => (string frame_layout_dump); |
| |
| // Replicates test config (for an already started test) to a new renderer |
| // that hosts parts of the main test window. |
| ReplicateTestConfiguration(ShellTestConfiguration config); |
| |
| // Sets the test config for a web test that is being started. This message |
| // is sent only to a renderer that hosts parts of the main test window. |
| SetTestConfiguration(ShellTestConfiguration config); |
| |
| // Sets up a secondary renderer (renderer that doesn't [yet] host parts of the |
| // main test window) for a web test. |
| SetupSecondaryRenderer(); |
| |
| // Tells the renderer to reset all test runners. |
| Reset(); |
| |
| // Tells the main window that a secondary renderer in a different process |
| // asked to finish the test. |
| TestFinishedInSecondaryRenderer(); |
| |
| // Notifies BlinkTestRunner that the layout dump has completed (and that it |
| // can proceed with finishing up the test). |
| // TODO(crbug.com/1039247): This message should be removed and the callback |
| // should happen part of LayoutDump call on the host interface. |
| LayoutDumpCompleted(string completed_layout_dump); |
| |
| // Reply Bluetooth manual events to BlinkTestRunner. |
| ReplyBluetoothManualChooserEvents(array<string> events); |
| }; |
| |
| // Blink test messages sent from the renderer process to the browser. |
| interface BlinkTestClient { |
| // Asks the browser process to perform a layout dump spanning all the |
| // (potentially cross-process) frames. This goes through multiple |
| // BlinkTestControl.DumpFrameLayout calls and ends with sending of |
| // LayoutDumpCompleted of BlinkTestControl interface. |
| InitiateLayoutDump(); |
| |
| // Notify the browser process the reset was done. |
| ResetDone(); |
| |
| // Add a message to stderr (not saved to expected output files, for debugging |
| // only). |
| PrintMessageToStderr(string message); |
| |
| // Add a message. |
| PrintMessage(string message); |
| |
| // Update changed WebKit preferences. |
| OverridePreferences(WebPreferences web_preferences); |
| |
| // Trigger a reload navigation on the main WebView. |
| Reload(); |
| |
| // Invoked when the embedder should close all but the main WebView. |
| CloseRemainingWindows(); |
| |
| // Trigger a GoToOffset navigation on the main WebView. |
| GoToOffset(int32 offset); |
| |
| // Calls the BluetoothChooser::EventHandler with the arguments here. Valid |
| // event strings are: |
| // * "cancel" - simulates the user canceling the chooser. |
| // * "select" - simulates the user selecting a device whose device ID is in |
| // |argument|. |
| SendBluetoothManualChooserEvent(string event, string argument); |
| |
| // If |enable| is true makes the Bluetooth chooser record its input and wait |
| // for instructions from the test program on how to proceed. Otherwise |
| // fall backs to the browser's default chooser. |
| SetBluetoothManualChooser(bool enable); |
| |
| // Returns the events recorded since the last call to this function. |
| GetBluetoothManualChooserEvents(); |
| |
| // Manages the popup blocking setting to used for web tests. |
| SetPopupBlockingEnabled(bool block_popups); |
| |
| // Trigger a loadURL navigation on the main WebView. |
| LoadURLForFrame(url.mojom.Url url, string frame_name); |
| |
| // Naivgate a URL on the secondary window. |
| NavigateSecondaryWindow(url.mojom.Url url); |
| |
| // Mark the orientation changed in the browser process for the layout tests |
| // that request fullscreen on screen orientation change. |
| SetScreenOrientationChanged(); |
| }; |