blob: bda8330dc5557ad2feacd9173bdc5472da6f67de [file] [log] [blame]
// 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();
};