mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Improve inter-document focus handling (#36649)
*Describe the changes that this pull request makes here. This will be the commit message.* rewritten the PR #28571 Implement [Window#focus](https://html.spec.whatwg.org/multipage/#dom-window-focus), [Window#blur](https://html.spec.whatwg.org/multipage/#dom-window-blur) Testing: WPT Fixes: #8981 #9421 --------- Signed-off-by: kongbai1996 <1782765876@qq.com> Co-authored-by: yvt <i@yvt.jp>
This commit is contained in:
parent
27570987fd
commit
0c0ee04b8e
33 changed files with 1123 additions and 242 deletions
|
@ -27,8 +27,8 @@ use crossbeam_channel::{RecvTimeoutError, Sender};
|
|||
use devtools_traits::ScriptToDevtoolsControlMsg;
|
||||
use embedder_traits::user_content_manager::UserContentManager;
|
||||
use embedder_traits::{
|
||||
CompositorHitTestResult, InputEvent, MediaSessionActionType, Theme, ViewportDetails,
|
||||
WebDriverScriptCommand,
|
||||
CompositorHitTestResult, FocusSequenceNumber, InputEvent, MediaSessionActionType, Theme,
|
||||
ViewportDetails, WebDriverScriptCommand,
|
||||
};
|
||||
use euclid::{Rect, Scale, Size2D, UnknownUnit};
|
||||
use ipc_channel::ipc::{IpcReceiver, IpcSender};
|
||||
|
@ -191,7 +191,15 @@ pub enum ScriptThreadMessage {
|
|||
RemoveHistoryStates(PipelineId, Vec<HistoryStateId>),
|
||||
/// Set an iframe to be focused. Used when an element in an iframe gains focus.
|
||||
/// PipelineId is for the parent, BrowsingContextId is for the nested browsing context
|
||||
FocusIFrame(PipelineId, BrowsingContextId),
|
||||
FocusIFrame(PipelineId, BrowsingContextId, FocusSequenceNumber),
|
||||
/// Focus the document. Used when the container gains focus.
|
||||
FocusDocument(PipelineId, FocusSequenceNumber),
|
||||
/// Notifies that the document's container (e.g., an iframe) is not included
|
||||
/// in the top-level browsing context's focus chain (not considering system
|
||||
/// focus) anymore.
|
||||
///
|
||||
/// Obviously, this message is invalid for a top-level document.
|
||||
Unfocus(PipelineId, FocusSequenceNumber),
|
||||
/// Passes a webdriver command to the script thread for execution
|
||||
WebDriverScriptCommand(PipelineId, WebDriverScriptCommand),
|
||||
/// Notifies script thread that all animations are done
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue