mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Include WebViewId
into EmbedderMsg variants where possible (#35211)
`EmbedderMsg` was previously paired with an implicit `Option<WebViewId>`, even though almost all variants were either always `Some` or always `None`, depending on whether there was a `WebView involved. This patch adds the `WebViewId` to as many `EmbedderMsg` variants as possible, so we can call their associated `WebView` delegate methods without needing to check and unwrap the `Option`. In many cases, this required more changes to plumb through the `WebViewId`. Notably, all `Request`s now explicitly need a `WebView` or not, in order to ensure that it is passed when appropriate. Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
9eeb602f7a
commit
5e9de2cb61
70 changed files with 809 additions and 753 deletions
|
@ -9,10 +9,10 @@ use std::ops::Range;
|
|||
use dom_struct::dom_struct;
|
||||
use html5ever::{local_name, namespace_url, ns, LocalName, Prefix};
|
||||
use js::rust::HandleObject;
|
||||
use script_traits::ScriptToConstellationChan;
|
||||
use style::attr::AttrValue;
|
||||
use style_dom::ElementState;
|
||||
|
||||
use crate::clipboard_provider::EmbedderClipboardProvider;
|
||||
use crate::dom::attr::Attr;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::codegen::Bindings::EventBinding::EventMethods;
|
||||
|
@ -52,7 +52,7 @@ pub(crate) struct HTMLTextAreaElement {
|
|||
htmlelement: HTMLElement,
|
||||
#[ignore_malloc_size_of = "TextInput contains an IPCSender which cannot be measured"]
|
||||
#[no_trace]
|
||||
textinput: DomRefCell<TextInput<ScriptToConstellationChan>>,
|
||||
textinput: DomRefCell<TextInput<EmbedderClipboardProvider>>,
|
||||
placeholder: DomRefCell<DOMString>,
|
||||
// https://html.spec.whatwg.org/multipage/#concept-textarea-dirty
|
||||
value_dirty: Cell<bool>,
|
||||
|
@ -142,7 +142,7 @@ impl HTMLTextAreaElement {
|
|||
prefix: Option<Prefix>,
|
||||
document: &Document,
|
||||
) -> HTMLTextAreaElement {
|
||||
let chan = document
|
||||
let constellation_sender = document
|
||||
.window()
|
||||
.as_global_scope()
|
||||
.script_to_constellation_chan()
|
||||
|
@ -158,7 +158,10 @@ impl HTMLTextAreaElement {
|
|||
textinput: DomRefCell::new(TextInput::new(
|
||||
Lines::Multiple,
|
||||
DOMString::new(),
|
||||
chan,
|
||||
EmbedderClipboardProvider {
|
||||
constellation_sender,
|
||||
webview_id: document.webview_id(),
|
||||
},
|
||||
None,
|
||||
None,
|
||||
SelectionDirection::None,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue