aboutsummaryrefslogtreecommitdiffstats
path: root/components/webdriver_server/lib.rs
diff options
context:
space:
mode:
authorPyfisch <pyfisch@gmail.com>2018-11-17 17:02:31 +0100
committerPyfisch <pyfisch@gmail.com>2018-11-19 22:07:05 +0100
commitb936fea79de985213c053e67f77458b37f4b2995 (patch)
treece7ef296552b39c9a5d3c427f3d1d1a955cb9216 /components/webdriver_server/lib.rs
parent1ac6f435c8637d01279b51fecb535a19b639aea5 (diff)
downloadservo-b936fea79de985213c053e67f77458b37f4b2995.tar.gz
servo-b936fea79de985213c053e67f77458b37f4b2995.zip
Forward WebDriver CompositionEvent
Dispatch composition events in JS. Insert characters from composition events to text input. CompositionEvents currently can only be created by WebDriver and not by embedders.
Diffstat (limited to 'components/webdriver_server/lib.rs')
-rw-r--r--components/webdriver_server/lib.rs13
1 files changed, 3 insertions, 10 deletions
diff --git a/components/webdriver_server/lib.rs b/components/webdriver_server/lib.rs
index 7e779fccbd6..2be3e55cba8 100644
--- a/components/webdriver_server/lib.rs
+++ b/components/webdriver_server/lib.rs
@@ -17,7 +17,7 @@ use euclid::TypedSize2D;
use hyper::Method;
use image::{DynamicImage, ImageFormat, RgbImage};
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
-use keyboard_types::webdriver::{send_keys, Event as KeyEvent};
+use keyboard_types::webdriver::send_keys;
use msg::constellation_msg::{BrowsingContextId, TopLevelBrowsingContextId, TraversalDirection};
use net_traits::image::base::PixelFormat;
use regex::Captures;
@@ -1036,19 +1036,12 @@ impl Handler {
))
})?;
- // FIXME: Don't discard composition events.
- let keys = send_keys(&keys.text)
- .drain(..)
- .filter_map(|event| match event {
- KeyEvent::Keyboard(v) => Some(v),
- _ => None,
- })
- .collect();
+ let input_events = send_keys(&keys.text);
// TODO: there's a race condition caused by the focus command and the
// send keys command being two separate messages,
// so the constellation may have changed state between them.
- let cmd_msg = WebDriverCommandMsg::SendKeys(browsing_context_id, keys);
+ let cmd_msg = WebDriverCommandMsg::SendKeys(browsing_context_id, input_events);
self.constellation_chan
.send(ConstellationMsg::WebDriverCommand(cmd_msg))
.unwrap();