mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Auto merge of #12426 - asajeffrey:mozbrowser-event-targets, r=SimonSapin
Allow window elements as well as iframes to the the target of mozbrowser events <!-- Please describe your changes on the following line: --> Allow mozbrowser events, in particular mozbrowsererror events, to target a window. Needed for https://github.com/browserhtml/browserhtml/issues/1182 --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #12420 - [X] These changes do not require tests because we're not testing our issue reporting system, which this is intended for. <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12426) <!-- Reviewable:end -->
This commit is contained in:
commit
b6c0ed9a44
8 changed files with 162 additions and 152 deletions
|
@ -1355,17 +1355,17 @@ impl ScriptThread {
|
|||
/// https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowserloadstart
|
||||
fn handle_mozbrowser_event_msg(&self,
|
||||
parent_pipeline_id: PipelineId,
|
||||
subpage_id: SubpageId,
|
||||
subpage_id: Option<SubpageId>,
|
||||
event: MozBrowserEvent) {
|
||||
let borrowed_context = self.root_browsing_context();
|
||||
|
||||
let frame_element = borrowed_context.find(parent_pipeline_id).and_then(|context| {
|
||||
let doc = context.active_document();
|
||||
doc.find_iframe(subpage_id)
|
||||
});
|
||||
|
||||
if let Some(ref frame_element) = frame_element {
|
||||
frame_element.dispatch_mozbrowser_event(event);
|
||||
match self.root_browsing_context().find(parent_pipeline_id) {
|
||||
None => warn!("Mozbrowser event after pipeline {:?} closed.", parent_pipeline_id),
|
||||
Some(context) => match subpage_id {
|
||||
None => context.active_window().dispatch_mozbrowser_event(event),
|
||||
Some(subpage_id) => match context.active_document().find_iframe(subpage_id) {
|
||||
None => warn!("Mozbrowser event after iframe {:?}/{:?} closed.", parent_pipeline_id, subpage_id),
|
||||
Some(frame_element) => frame_element.dispatch_mozbrowser_event(event),
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue