mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
libservo: Move WebDriver messages to the embedder
crate (#35602)
This is the first step toward moving the WebDriver implementation to servoshell. This move will make it possible to start testing the embedding API with WebDriver. See [this zulip thread][a] for more details. While WebDriver will be able to use a lot of API commands to do what it is doing now, there will still need to be some "cheat codes" for more gnarly access to `ScriptThread` details. That's why we likely won't be able to remove all WebDriver-specific messages from the API -- but maybe they will be useful for embedders somehow. A couple messages have to change as they depended on `script_traits` types, particularly those that used `WindowSizeData` and `LoadData`. I think this helps to encapsulate the WebDriver commands a bit more though. [a]: https://servo.zulipchat.com/#narrow/channel/437943-embedding/topic/webdriver.20as.20embedding.20api.20playgound Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
41c2422a66
commit
6062995636
12 changed files with 125 additions and 124 deletions
|
@ -7,11 +7,9 @@ use std::time::{Duration, Instant};
|
|||
use std::{cmp, thread};
|
||||
|
||||
use compositing_traits::ConstellationMsg;
|
||||
use embedder_traits::MouseButtonAction;
|
||||
use embedder_traits::{MouseButtonAction, WebDriverCommandMsg, WebDriverScriptCommand};
|
||||
use ipc_channel::ipc;
|
||||
use keyboard_types::webdriver::KeyInputState;
|
||||
use script_traits::webdriver_msg::WebDriverScriptCommand;
|
||||
use script_traits::WebDriverCommandMsg;
|
||||
use webdriver::actions::{
|
||||
ActionSequence, ActionsType, GeneralAction, KeyAction, KeyActionItem, KeyDownAction,
|
||||
KeyUpAction, NullActionItem, PointerAction, PointerActionItem, PointerActionParameters,
|
||||
|
@ -398,8 +396,8 @@ impl Handler {
|
|||
.unwrap();
|
||||
|
||||
// Steps 7 - 8
|
||||
let viewport = receiver.recv().unwrap().initial_viewport;
|
||||
if x < 0 || x as f32 > viewport.width || y < 0 || y as f32 > viewport.height {
|
||||
let viewport_size = receiver.recv().unwrap();
|
||||
if x < 0 || x as f32 > viewport_size.width || y < 0 || y as f32 > viewport_size.height {
|
||||
return Err(ErrorStatus::MoveTargetOutOfBounds);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue