aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/animations.rs2
-rw-r--r--components/script/dom/bindings/codegen/Bindings.conf2
-rw-r--r--components/script/dom/document.rs2
-rw-r--r--components/script/dom/gpudevice.rs4
-rw-r--r--components/script/dom/gpupipelineerror.rs3
-rw-r--r--components/script/dom/transitionevent.rs3
-rw-r--r--components/script/dom/wheelevent.rs15
-rw-r--r--components/script/dom/xmlhttprequest.rs9
-rw-r--r--components/script/script_thread.rs5
9 files changed, 21 insertions, 24 deletions
diff --git a/components/script/animations.rs b/components/script/animations.rs
index 469a43a3904..5abdb664e7e 100644
--- a/components/script/animations.rs
+++ b/components/script/animations.rs
@@ -508,7 +508,7 @@ impl Animations {
elapsedTime: elapsed_time,
pseudoElement: pseudo_element,
};
- TransitionEvent::new(&window, event_atom, &event_init)
+ TransitionEvent::new(&window, event_atom, &event_init, can_gc)
.upcast::<Event>()
.fire(node.upcast());
} else {
diff --git a/components/script/dom/bindings/codegen/Bindings.conf b/components/script/dom/bindings/codegen/Bindings.conf
index 9b38ddb4bc2..c9f0bfd0afe 100644
--- a/components/script/dom/bindings/codegen/Bindings.conf
+++ b/components/script/dom/bindings/codegen/Bindings.conf
@@ -246,7 +246,7 @@ DOMInterfaces = {
},
'XMLHttpRequest': {
- 'canGc': ['GetResponseXML', 'Response'],
+ 'canGc': ['Abort', 'GetResponseXML', 'Response'],
},
'XRSession': {
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index bc0f8c1b8e6..60310ecc655 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -1666,6 +1666,7 @@ impl Document {
delta: WheelDelta,
client_point: Point2D<f32>,
node_address: Option<UntrustedNodeAddress>,
+ can_gc: CanGc,
) {
let wheel_event_type_string = "wheel".to_owned();
debug!("{}: at {:?}", wheel_event_type_string, client_point);
@@ -1697,6 +1698,7 @@ impl Document {
Finite::wrap(delta.y),
Finite::wrap(delta.z),
delta.mode as u32,
+ can_gc,
);
let event = event.upcast::<Event>();
diff --git a/components/script/dom/gpudevice.rs b/components/script/dom/gpudevice.rs
index 782e8605651..0e029eeea03 100644
--- a/components/script/dom/gpudevice.rs
+++ b/components/script/dom/gpudevice.rs
@@ -597,6 +597,7 @@ impl AsyncWGPUListener for GPUDevice {
&self.global(),
msg.into(),
GPUPipelineErrorReason::Validation,
+ can_gc,
))
},
Err(webgpu::Error::OutOfMemory(msg) | webgpu::Error::Internal(msg)) => promise
@@ -604,6 +605,7 @@ impl AsyncWGPUListener for GPUDevice {
&self.global(),
msg.into(),
GPUPipelineErrorReason::Internal,
+ can_gc,
)),
},
WebGPUResponse::RenderPipeline(result) => match result {
@@ -618,6 +620,7 @@ impl AsyncWGPUListener for GPUDevice {
&self.global(),
msg.into(),
GPUPipelineErrorReason::Validation,
+ can_gc,
))
},
Err(webgpu::Error::OutOfMemory(msg) | webgpu::Error::Internal(msg)) => promise
@@ -625,6 +628,7 @@ impl AsyncWGPUListener for GPUDevice {
&self.global(),
msg.into(),
GPUPipelineErrorReason::Internal,
+ can_gc,
)),
},
_ => unreachable!("Wrong response received on AsyncWGPUListener for GPUDevice"),
diff --git a/components/script/dom/gpupipelineerror.rs b/components/script/dom/gpupipelineerror.rs
index 598b1c69490..23b438d22fa 100644
--- a/components/script/dom/gpupipelineerror.rs
+++ b/components/script/dom/gpupipelineerror.rs
@@ -49,8 +49,9 @@ impl GPUPipelineError {
global: &GlobalScope,
message: DOMString,
reason: GPUPipelineErrorReason,
+ can_gc: CanGc,
) -> DomRoot<Self> {
- Self::new_with_proto(global, None, message, reason, CanGc::note())
+ Self::new_with_proto(global, None, message, reason, can_gc)
}
}
diff --git a/components/script/dom/transitionevent.rs b/components/script/dom/transitionevent.rs
index 95b7964c241..3e21a161934 100644
--- a/components/script/dom/transitionevent.rs
+++ b/components/script/dom/transitionevent.rs
@@ -43,8 +43,9 @@ impl TransitionEvent {
window: &Window,
type_: Atom,
init: &TransitionEventInit,
+ can_gc: CanGc,
) -> DomRoot<TransitionEvent> {
- Self::new_with_proto(window, None, type_, init, CanGc::note())
+ Self::new_with_proto(window, None, type_, init, can_gc)
}
fn new_with_proto(
diff --git a/components/script/dom/wheelevent.rs b/components/script/dom/wheelevent.rs
index e63fa32f3e8..6b08723c339 100644
--- a/components/script/dom/wheelevent.rs
+++ b/components/script/dom/wheelevent.rs
@@ -61,20 +61,11 @@ impl WheelEvent {
delta_y: Finite<f64>,
delta_z: Finite<f64>,
delta_mode: u32,
+ can_gc: CanGc,
) -> DomRoot<WheelEvent> {
Self::new_with_proto(
- window,
- None,
- type_,
- can_bubble,
- cancelable,
- view,
- detail,
- delta_x,
- delta_y,
- delta_z,
- delta_mode,
- CanGc::note(),
+ window, None, type_, can_bubble, cancelable, view, detail, delta_x, delta_y, delta_z,
+ delta_mode, can_gc,
)
}
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 3daf64c51e5..b381c3fc50b 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -803,7 +803,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
}
/// <https://xhr.spec.whatwg.org/#the-abort()-method>
- fn Abort(&self) {
+ fn Abort(&self, can_gc: CanGc) {
// Step 1
self.terminate_ongoing_fetch();
// Step 2
@@ -813,10 +813,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
state == XMLHttpRequestState::Loading
{
let gen_id = self.generation_id.get();
- self.process_partial_response(
- XHRProgress::Errored(gen_id, Error::Abort),
- CanGc::note(),
- );
+ self.process_partial_response(XHRProgress::Errored(gen_id, Error::Abort), can_gc);
// If open was called in one of the handlers invoked by the
// above call then we should terminate the abort sequence
if self.generation_id.get() != gen_id {
@@ -825,7 +822,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
}
// Step 3
if self.ready_state.get() == XMLHttpRequestState::Done {
- self.change_ready_state(XMLHttpRequestState::Unsent, CanGc::note());
+ self.change_ready_state(XMLHttpRequestState::Unsent, can_gc);
self.response_status.set(Err(()));
self.response.borrow_mut().clear();
self.response_headers.borrow_mut().clear();
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs
index 29a762ba80d..a268ad6c900 100644
--- a/components/script/script_thread.rs
+++ b/components/script/script_thread.rs
@@ -1614,7 +1614,7 @@ impl ScriptThread {
},
CompositorEvent::WheelEvent(delta, point, node_address) => {
- self.handle_wheel_event(pipeline_id, delta, point, node_address);
+ self.handle_wheel_event(pipeline_id, delta, point, node_address, can_gc);
},
CompositorEvent::KeyboardEvent(key_event) => {
@@ -3955,12 +3955,13 @@ impl ScriptThread {
wheel_delta: WheelDelta,
point: Point2D<f32>,
node_address: Option<UntrustedNodeAddress>,
+ can_gc: CanGc,
) {
let Some(document) = self.documents.borrow().find_document(pipeline_id) else {
warn!("Message sent to closed pipeline {pipeline_id}.");
return;
};
- unsafe { document.handle_wheel_event(wheel_delta, point, node_address) };
+ unsafe { document.handle_wheel_event(wheel_delta, point, node_address, can_gc) };
}
/// Handle a "navigate an iframe" message from the constellation.