// 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? 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 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(); };