script/dom/
debuggerresumeevent.rs

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
5use std::fmt::Debug;
6
7use dom_struct::dom_struct;
8use script_bindings::str::DOMString;
9
10use crate::dom::bindings::codegen::Bindings::DebuggerResumeEventBinding::DebuggerResumeEventMethods;
11use crate::dom::bindings::codegen::Bindings::EventBinding::Event_Binding::EventMethods;
12use crate::dom::bindings::reflector::reflect_dom_object;
13use crate::dom::bindings::root::DomRoot;
14use crate::dom::event::Event;
15use crate::dom::types::GlobalScope;
16use crate::script_runtime::CanGc;
17
18#[dom_struct]
19/// Event for Rust → JS calls in [`crate::dom::DebuggerGlobalScope`].
20pub(crate) struct DebuggerResumeEvent {
21    event: Event,
22    resume_limit_type: Option<DOMString>,
23    frame_actor_id: Option<DOMString>,
24}
25
26impl DebuggerResumeEvent {
27    pub(crate) fn new(
28        debugger_global: &GlobalScope,
29        resume_limit_type: Option<DOMString>,
30        frame_actor_id: Option<DOMString>,
31        can_gc: CanGc,
32    ) -> DomRoot<Self> {
33        let result = Box::new(Self {
34            event: Event::new_inherited(),
35            resume_limit_type,
36            frame_actor_id,
37        });
38        let result = reflect_dom_object(result, debugger_global, can_gc);
39        result.event.init_event("resume".into(), false, false);
40
41        result
42    }
43}
44
45impl DebuggerResumeEventMethods<crate::DomTypeHolder> for DebuggerResumeEvent {
46    // check-tidy: no specs after this line
47    fn IsTrusted(&self) -> bool {
48        self.event.IsTrusted()
49    }
50
51    fn GetResumeLimitType(&self) -> Option<DOMString> {
52        self.resume_limit_type.clone()
53    }
54
55    fn GetFrameActorID(&self) -> Option<DOMString> {
56        self.frame_actor_id.clone()
57    }
58}
59
60impl Debug for DebuggerResumeEvent {
61    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
62        f.debug_struct("DebuggerResumeEvent").finish()
63    }
64}