mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
cangc fixes in several files + event.rs + rtcpeerconnection.rs (#34002)
Signed-off-by: L Ashwin B <lashwinib@gmail.com>
This commit is contained in:
parent
3b5dc069ae
commit
7ad8822d94
37 changed files with 166 additions and 132 deletions
|
@ -510,7 +510,7 @@ impl Animations {
|
||||||
};
|
};
|
||||||
TransitionEvent::new(&window, event_atom, &event_init, can_gc)
|
TransitionEvent::new(&window, event_atom, &event_init, can_gc)
|
||||||
.upcast::<Event>()
|
.upcast::<Event>()
|
||||||
.fire(node.upcast());
|
.fire(node.upcast(), can_gc);
|
||||||
} else {
|
} else {
|
||||||
let event_init = AnimationEventInit {
|
let event_init = AnimationEventInit {
|
||||||
parent,
|
parent,
|
||||||
|
@ -520,7 +520,7 @@ impl Animations {
|
||||||
};
|
};
|
||||||
AnimationEvent::new(&window, event_atom, &event_init, can_gc)
|
AnimationEvent::new(&window, event_atom, &event_init, can_gc)
|
||||||
.upcast::<Event>()
|
.upcast::<Event>()
|
||||||
.fire(node.upcast());
|
.fire(node.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -190,6 +190,7 @@ pub fn handle_get_attribute_style(
|
||||||
pipeline: PipelineId,
|
pipeline: PipelineId,
|
||||||
node_id: String,
|
node_id: String,
|
||||||
reply: IpcSender<Option<Vec<NodeStyle>>>,
|
reply: IpcSender<Option<Vec<NodeStyle>>>,
|
||||||
|
can_gc: CanGc,
|
||||||
) {
|
) {
|
||||||
let node = match find_node_by_unique_id(documents, pipeline, &node_id) {
|
let node = match find_node_by_unique_id(documents, pipeline, &node_id) {
|
||||||
None => return reply.send(None).unwrap(),
|
None => return reply.send(None).unwrap(),
|
||||||
|
@ -206,7 +207,7 @@ pub fn handle_get_attribute_style(
|
||||||
let name = style.Item(i);
|
let name = style.Item(i);
|
||||||
NodeStyle {
|
NodeStyle {
|
||||||
name: name.to_string(),
|
name: name.to_string(),
|
||||||
value: style.GetPropertyValue(name.clone()).to_string(),
|
value: style.GetPropertyValue(name.clone(), can_gc).to_string(),
|
||||||
priority: style.GetPropertyPriority(name).to_string(),
|
priority: style.GetPropertyPriority(name).to_string(),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -223,6 +224,7 @@ pub fn handle_get_stylesheet_style(
|
||||||
selector: String,
|
selector: String,
|
||||||
stylesheet: usize,
|
stylesheet: usize,
|
||||||
reply: IpcSender<Option<Vec<NodeStyle>>>,
|
reply: IpcSender<Option<Vec<NodeStyle>>>,
|
||||||
|
can_gc: CanGc,
|
||||||
) {
|
) {
|
||||||
let msg = (|| {
|
let msg = (|| {
|
||||||
let node = find_node_by_unique_id(documents, pipeline, &node_id)?;
|
let node = find_node_by_unique_id(documents, pipeline, &node_id)?;
|
||||||
|
@ -248,7 +250,7 @@ pub fn handle_get_stylesheet_style(
|
||||||
let name = style.Item(i);
|
let name = style.Item(i);
|
||||||
NodeStyle {
|
NodeStyle {
|
||||||
name: name.to_string(),
|
name: name.to_string(),
|
||||||
value: style.GetPropertyValue(name.clone()).to_string(),
|
value: style.GetPropertyValue(name.clone(), can_gc).to_string(),
|
||||||
priority: style.GetPropertyPriority(name).to_string(),
|
priority: style.GetPropertyPriority(name).to_string(),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -303,6 +305,7 @@ pub fn handle_get_computed_style(
|
||||||
pipeline: PipelineId,
|
pipeline: PipelineId,
|
||||||
node_id: String,
|
node_id: String,
|
||||||
reply: IpcSender<Option<Vec<NodeStyle>>>,
|
reply: IpcSender<Option<Vec<NodeStyle>>>,
|
||||||
|
can_gc: CanGc,
|
||||||
) {
|
) {
|
||||||
let node = match find_node_by_unique_id(documents, pipeline, &node_id) {
|
let node = match find_node_by_unique_id(documents, pipeline, &node_id) {
|
||||||
None => return reply.send(None).unwrap(),
|
None => return reply.send(None).unwrap(),
|
||||||
|
@ -320,7 +323,9 @@ pub fn handle_get_computed_style(
|
||||||
let name = computed_style.Item(i);
|
let name = computed_style.Item(i);
|
||||||
NodeStyle {
|
NodeStyle {
|
||||||
name: name.to_string(),
|
name: name.to_string(),
|
||||||
value: computed_style.GetPropertyValue(name.clone()).to_string(),
|
value: computed_style
|
||||||
|
.GetPropertyValue(name.clone(), can_gc)
|
||||||
|
.to_string(),
|
||||||
priority: computed_style.GetPropertyPriority(name).to_string(),
|
priority: computed_style.GetPropertyPriority(name).to_string(),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -435,6 +440,7 @@ pub fn handle_modify_rule(
|
||||||
pipeline: PipelineId,
|
pipeline: PipelineId,
|
||||||
node_id: String,
|
node_id: String,
|
||||||
modifications: Vec<RuleModification>,
|
modifications: Vec<RuleModification>,
|
||||||
|
can_gc: CanGc,
|
||||||
) {
|
) {
|
||||||
let Some(document) = documents.find_document(pipeline) else {
|
let Some(document) = documents.find_document(pipeline) else {
|
||||||
return warn!("Document for pipeline id {} is not found", &pipeline);
|
return warn!("Document for pipeline id {} is not found", &pipeline);
|
||||||
|
@ -458,6 +464,7 @@ pub fn handle_modify_rule(
|
||||||
modification.name.into(),
|
modification.name.into(),
|
||||||
modification.value.into(),
|
modification.value.into(),
|
||||||
modification.priority.into(),
|
modification.priority.into(),
|
||||||
|
can_gc,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ DOMInterfaces = {
|
||||||
},
|
},
|
||||||
|
|
||||||
'CSSStyleDeclaration': {
|
'CSSStyleDeclaration': {
|
||||||
'canGc': ['RemoveProperty', 'SetCssText']
|
'canGc': ['RemoveProperty', 'SetCssText', 'GetPropertyValue', 'SetProperty', 'CssFloat', 'SetCssFloat']
|
||||||
},
|
},
|
||||||
|
|
||||||
'CanvasGradient': {
|
'CanvasGradient': {
|
||||||
|
@ -136,7 +136,7 @@ DOMInterfaces = {
|
||||||
},
|
},
|
||||||
|
|
||||||
'Element': {
|
'Element': {
|
||||||
'canGc': ['SetInnerHTML', 'SetOuterHTML', 'InsertAdjacentHTML', 'GetClientRects', 'GetBoundingClientRect', 'InsertAdjacentText', 'ToggleAttribute', 'SetAttribute', 'SetAttributeNS', "SetId","SetClassName","Prepend","Append","ReplaceChildren","Before","After","ReplaceWith", 'SetRole', 'SetAriaAtomic', 'SetAriaAutoComplete', 'SetAriaBrailleLabel', 'SetAriaBrailleRoleDescription', 'SetAriaBusy', 'SetAriaChecked', 'SetAriaColCount', 'SetAriaColIndex', 'SetAriaColIndexText', 'SetAriaColSpan', 'SetAriaCurrent', 'SetAriaDescription', 'SetAriaDisabled', 'SetAriaExpanded', 'SetAriaHasPopup', 'SetAriaHidden', 'SetAriaInvalid', 'SetAriaKeyShortcuts', 'SetAriaLabel', 'SetAriaLevel', 'SetAriaLive', 'SetAriaModal', 'SetAriaMultiLine', 'SetAriaMultiSelectable', 'SetAriaOrientation', 'SetAriaPlaceholder', 'SetAriaPosInSet', 'SetAriaPressed','SetAriaReadOnly', 'SetAriaRelevant', 'SetAriaRequired', 'SetAriaRoleDescription', 'SetAriaRowCount', 'SetAriaRowIndex', 'SetAriaRowIndexText', 'SetAriaRowSpan', 'SetAriaSelected', 'SetAriaSetSize','SetAriaSort', 'SetAriaValueMax', 'SetAriaValueMin', 'SetAriaValueNow', 'SetAriaValueText', 'SetScrollTop', 'SetScrollLeft', 'Scroll', 'Scroll_', 'ScrollBy', 'ScrollBy_', 'ScrollWidth', 'ScrollHeight', 'ScrollTop', 'ScrollLeft', 'ClientTop', 'ClientLeft', 'ClientWidth', 'ClientHeight', 'RequestFullscreen'],
|
'canGc': ['SetInnerHTML', 'SetOuterHTML', 'InsertAdjacentHTML', 'GetClientRects', 'GetBoundingClientRect', 'InsertAdjacentText', 'ToggleAttribute', 'SetAttribute', 'SetAttributeNS', 'SetId','SetClassName','Prepend','Append','ReplaceChildren','Before','After','ReplaceWith', 'SetRole', 'SetAriaAtomic', 'SetAriaAutoComplete', 'SetAriaBrailleLabel', 'SetAriaBrailleRoleDescription', 'SetAriaBusy', 'SetAriaChecked', 'SetAriaColCount', 'SetAriaColIndex', 'SetAriaColIndexText', 'SetAriaColSpan', 'SetAriaCurrent', 'SetAriaDescription', 'SetAriaDisabled', 'SetAriaExpanded', 'SetAriaHasPopup', 'SetAriaHidden', 'SetAriaInvalid', 'SetAriaKeyShortcuts', 'SetAriaLabel', 'SetAriaLevel', 'SetAriaLive', 'SetAriaModal', 'SetAriaMultiLine', 'SetAriaMultiSelectable', 'SetAriaOrientation', 'SetAriaPlaceholder', 'SetAriaPosInSet', 'SetAriaPressed','SetAriaReadOnly', 'SetAriaRelevant', 'SetAriaRequired', 'SetAriaRoleDescription', 'SetAriaRowCount', 'SetAriaRowIndex', 'SetAriaRowIndexText', 'SetAriaRowSpan', 'SetAriaSelected', 'SetAriaSetSize','SetAriaSort', 'SetAriaValueMax', 'SetAriaValueMin', 'SetAriaValueNow', 'SetAriaValueText', 'SetScrollTop', 'SetScrollLeft', 'Scroll', 'Scroll_', 'ScrollBy', 'ScrollBy_', 'ScrollWidth', 'ScrollHeight', 'ScrollTop', 'ScrollLeft', 'ClientTop', 'ClientLeft', 'ClientWidth', 'ClientHeight', 'RequestFullscreen'],
|
||||||
},
|
},
|
||||||
|
|
||||||
'ElementInternals': {
|
'ElementInternals': {
|
||||||
|
@ -212,7 +212,7 @@ DOMInterfaces = {
|
||||||
},
|
},
|
||||||
|
|
||||||
'HTMLElement': {
|
'HTMLElement': {
|
||||||
'canGc': ['Focus', 'Blur', 'Click', 'SetInnerText', 'SetOuterText', "SetTranslate", 'SetAutofocus', 'GetOffsetParent', 'OffsetTop', 'OffsetLeft', 'OffsetWidth', 'OffsetHeight', 'InnerText', 'GetOuterText'],
|
'canGc': ['Focus', 'Blur', 'Click', 'SetInnerText', 'SetOuterText', "SetTranslate", 'SetAutofocus', 'GetOffsetParent', 'OffsetTop', 'OffsetLeft', 'OffsetWidth', 'OffsetHeight', 'InnerText', 'GetOuterText', 'GetOnerror', 'GetOnload', 'GetOnblur', 'GetOnfocus', 'GetOnresize', 'GetOnscroll'],
|
||||||
},
|
},
|
||||||
|
|
||||||
'HTMLFieldSetElement': {
|
'HTMLFieldSetElement': {
|
||||||
|
|
|
@ -192,14 +192,14 @@ macro_rules! css_properties(
|
||||||
$id.enabled_for_all_content(),
|
$id.enabled_for_all_content(),
|
||||||
"Someone forgot a #[Pref] annotation"
|
"Someone forgot a #[Pref] annotation"
|
||||||
);
|
);
|
||||||
self.get_property_value($id)
|
self.get_property_value($id, CanGc::note())
|
||||||
}
|
}
|
||||||
fn $setter(&self, value: DOMString) -> ErrorResult {
|
fn $setter(&self, value: DOMString) -> ErrorResult {
|
||||||
debug_assert!(
|
debug_assert!(
|
||||||
$id.enabled_for_all_content(),
|
$id.enabled_for_all_content(),
|
||||||
"Someone forgot a #[Pref] annotation"
|
"Someone forgot a #[Pref] annotation"
|
||||||
);
|
);
|
||||||
self.set_property($id, value, DOMString::new())
|
self.set_property($id, value, DOMString::new(), CanGc::note())
|
||||||
}
|
}
|
||||||
)*
|
)*
|
||||||
);
|
);
|
||||||
|
@ -263,10 +263,10 @@ impl CSSStyleDeclaration {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_property_value(&self, id: PropertyId) -> DOMString {
|
fn get_property_value(&self, id: PropertyId, can_gc: CanGc) -> DOMString {
|
||||||
if self.readonly {
|
if self.readonly {
|
||||||
// Readonly style declarations are used for getComputedStyle.
|
// Readonly style declarations are used for getComputedStyle.
|
||||||
return self.get_computed_style(id, CanGc::note());
|
return self.get_computed_style(id, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut string = String::new();
|
let mut string = String::new();
|
||||||
|
@ -278,7 +278,13 @@ impl CSSStyleDeclaration {
|
||||||
DOMString::from(string)
|
DOMString::from(string)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_property(&self, id: PropertyId, value: DOMString, priority: DOMString) -> ErrorResult {
|
fn set_property(
|
||||||
|
&self,
|
||||||
|
id: PropertyId,
|
||||||
|
value: DOMString,
|
||||||
|
priority: DOMString,
|
||||||
|
can_gc: CanGc,
|
||||||
|
) -> ErrorResult {
|
||||||
// Step 1
|
// Step 1
|
||||||
if self.readonly {
|
if self.readonly {
|
||||||
return Err(Error::NoModificationAllowed);
|
return Err(Error::NoModificationAllowed);
|
||||||
|
@ -344,7 +350,7 @@ impl CSSStyleDeclaration {
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
CanGc::note(),
|
can_gc,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -394,12 +400,12 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-getpropertyvalue
|
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-getpropertyvalue
|
||||||
fn GetPropertyValue(&self, property: DOMString) -> DOMString {
|
fn GetPropertyValue(&self, property: DOMString, can_gc: CanGc) -> DOMString {
|
||||||
let id = match PropertyId::parse_enabled_for_all_content(&property) {
|
let id = match PropertyId::parse_enabled_for_all_content(&property) {
|
||||||
Ok(id) => id,
|
Ok(id) => id,
|
||||||
Err(..) => return DOMString::new(),
|
Err(..) => return DOMString::new(),
|
||||||
};
|
};
|
||||||
self.get_property_value(id)
|
self.get_property_value(id, can_gc)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-getpropertypriority
|
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-getpropertypriority
|
||||||
|
@ -429,13 +435,14 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration {
|
||||||
property: DOMString,
|
property: DOMString,
|
||||||
value: DOMString,
|
value: DOMString,
|
||||||
priority: DOMString,
|
priority: DOMString,
|
||||||
|
can_gc: CanGc,
|
||||||
) -> ErrorResult {
|
) -> ErrorResult {
|
||||||
// Step 3
|
// Step 3
|
||||||
let id = match PropertyId::parse_enabled_for_all_content(&property) {
|
let id = match PropertyId::parse_enabled_for_all_content(&property) {
|
||||||
Ok(id) => id,
|
Ok(id) => id,
|
||||||
Err(..) => return Ok(()),
|
Err(..) => return Ok(()),
|
||||||
};
|
};
|
||||||
self.set_property(id, value, priority)
|
self.set_property(id, value, priority, can_gc)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-removeproperty
|
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-removeproperty
|
||||||
|
@ -464,16 +471,17 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-cssfloat
|
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-cssfloat
|
||||||
fn CssFloat(&self) -> DOMString {
|
fn CssFloat(&self, can_gc: CanGc) -> DOMString {
|
||||||
self.get_property_value(PropertyId::NonCustom(LonghandId::Float.into()))
|
self.get_property_value(PropertyId::NonCustom(LonghandId::Float.into()), can_gc)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-cssfloat
|
// https://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-cssfloat
|
||||||
fn SetCssFloat(&self, value: DOMString) -> ErrorResult {
|
fn SetCssFloat(&self, value: DOMString, can_gc: CanGc) -> ErrorResult {
|
||||||
self.set_property(
|
self.set_property(
|
||||||
PropertyId::NonCustom(LonghandId::Float.into()),
|
PropertyId::NonCustom(LonghandId::Float.into()),
|
||||||
value,
|
value,
|
||||||
DOMString::new(),
|
DOMString::new(),
|
||||||
|
can_gc,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -587,7 +587,7 @@ impl DedicatedWorkerGlobalScope {
|
||||||
CanGc::note(),
|
CanGc::note(),
|
||||||
);
|
);
|
||||||
let event_status =
|
let event_status =
|
||||||
event.upcast::<Event>().fire(worker.upcast::<EventTarget>());
|
event.upcast::<Event>().fire(worker.upcast::<EventTarget>(), CanGc::note());
|
||||||
|
|
||||||
// Step 2.
|
// Step 2.
|
||||||
if event_status == EventStatus::NotCanceled {
|
if event_status == EventStatus::NotCanceled {
|
||||||
|
|
|
@ -1382,7 +1382,7 @@ impl Document {
|
||||||
match mouse_event_type {
|
match mouse_event_type {
|
||||||
MouseEventType::Click => {
|
MouseEventType::Click => {
|
||||||
el.set_click_in_progress(true);
|
el.set_click_in_progress(true);
|
||||||
event.fire(node.upcast());
|
event.fire(node.upcast(), can_gc);
|
||||||
el.set_click_in_progress(false);
|
el.set_click_in_progress(false);
|
||||||
},
|
},
|
||||||
MouseEventType::MouseDown => {
|
MouseEventType::MouseDown => {
|
||||||
|
@ -1391,7 +1391,7 @@ impl Document {
|
||||||
}
|
}
|
||||||
|
|
||||||
let target = node.upcast();
|
let target = node.upcast();
|
||||||
event.fire(target);
|
event.fire(target, can_gc);
|
||||||
},
|
},
|
||||||
MouseEventType::MouseUp => {
|
MouseEventType::MouseUp => {
|
||||||
if let Some(a) = activatable {
|
if let Some(a) = activatable {
|
||||||
|
@ -1399,7 +1399,7 @@ impl Document {
|
||||||
}
|
}
|
||||||
|
|
||||||
let target = node.upcast();
|
let target = node.upcast();
|
||||||
event.fire(target);
|
event.fire(target, can_gc);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1459,7 +1459,7 @@ impl Document {
|
||||||
None,
|
None,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(target.upcast());
|
event.upcast::<Event>().fire(target.upcast(), can_gc);
|
||||||
|
|
||||||
// When a double click occurs, self.last_click_info is left as None so that a
|
// When a double click occurs, self.last_click_info is left as None so that a
|
||||||
// third sequential click will not cause another double click.
|
// third sequential click will not cause another double click.
|
||||||
|
@ -1507,7 +1507,7 @@ impl Document {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
let event = mouse_event.upcast::<Event>();
|
let event = mouse_event.upcast::<Event>();
|
||||||
event.fire(target);
|
event.fire(target, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
|
@ -1733,7 +1733,7 @@ impl Document {
|
||||||
event.set_trusted(true);
|
event.set_trusted(true);
|
||||||
|
|
||||||
let target = node.upcast();
|
let target = node.upcast();
|
||||||
event.fire(target);
|
event.fire(target, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
|
@ -1743,6 +1743,7 @@ impl Document {
|
||||||
touch_id: TouchId,
|
touch_id: TouchId,
|
||||||
point: Point2D<f32>,
|
point: Point2D<f32>,
|
||||||
node_address: Option<UntrustedNodeAddress>,
|
node_address: Option<UntrustedNodeAddress>,
|
||||||
|
can_gc: CanGc,
|
||||||
) -> TouchEventResult {
|
) -> TouchEventResult {
|
||||||
let TouchId(identifier) = touch_id;
|
let TouchId(identifier) = touch_id;
|
||||||
|
|
||||||
|
@ -1835,7 +1836,7 @@ impl Document {
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
let event = event.upcast::<Event>();
|
let event = event.upcast::<Event>();
|
||||||
let result = event.fire(&target);
|
let result = event.fire(&target, can_gc);
|
||||||
|
|
||||||
match result {
|
match result {
|
||||||
EventStatus::Canceled => TouchEventResult::Processed(false),
|
EventStatus::Canceled => TouchEventResult::Processed(false),
|
||||||
|
@ -1876,7 +1877,7 @@ impl Document {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
let event = keyevent.upcast::<Event>();
|
let event = keyevent.upcast::<Event>();
|
||||||
event.fire(target);
|
event.fire(target, can_gc);
|
||||||
let mut cancel_state = event.get_cancel_state();
|
let mut cancel_state = event.get_cancel_state();
|
||||||
|
|
||||||
// https://w3c.github.io/uievents/#keys-cancelable-keys
|
// https://w3c.github.io/uievents/#keys-cancelable-keys
|
||||||
|
@ -1904,7 +1905,7 @@ impl Document {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
let ev = event.upcast::<Event>();
|
let ev = event.upcast::<Event>();
|
||||||
ev.fire(target);
|
ev.fire(target, can_gc);
|
||||||
cancel_state = ev.get_cancel_state();
|
cancel_state = ev.get_cancel_state();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1966,7 +1967,7 @@ impl Document {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
let event = compositionevent.upcast::<Event>();
|
let event = compositionevent.upcast::<Event>();
|
||||||
event.fire(target);
|
event.fire(target, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dom.spec.whatwg.org/#converting-nodes-into-a-node
|
// https://dom.spec.whatwg.org/#converting-nodes-into-a-node
|
||||||
|
@ -2907,7 +2908,7 @@ impl Document {
|
||||||
let event = event.upcast::<Event>();
|
let event = event.upcast::<Event>();
|
||||||
event.set_trusted(true);
|
event.set_trusted(true);
|
||||||
let target = node.upcast();
|
let target = node.upcast();
|
||||||
event.fire(target);
|
event.fire(target, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <https://html.spec.whatwg.org/multipage/#cookie-averse-document-object>
|
/// <https://html.spec.whatwg.org/multipage/#cookie-averse-document-object>
|
||||||
|
|
|
@ -381,9 +381,9 @@ impl Event {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <https://html.spec.whatwg.org/multipage/#fire-a-simple-event>
|
/// <https://html.spec.whatwg.org/multipage/#fire-a-simple-event>
|
||||||
pub fn fire(&self, target: &EventTarget) -> EventStatus {
|
pub fn fire(&self, target: &EventTarget, can_gc: CanGc) -> EventStatus {
|
||||||
self.set_trusted(true);
|
self.set_trusted(true);
|
||||||
target.dispatch_event(self, CanGc::note())
|
target.dispatch_event(self, can_gc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,7 @@ impl EventSourceContext {
|
||||||
task!(dispatch_the_event_source_event: move || {
|
task!(dispatch_the_event_source_event: move || {
|
||||||
let event_source = event_source.root();
|
let event_source = event_source.root();
|
||||||
if event_source.ready_state.get() != ReadyState::Closed {
|
if event_source.ready_state.get() != ReadyState::Closed {
|
||||||
event.root().upcast::<Event>().fire(event_source.upcast());
|
event.root().upcast::<Event>().fire(event_source.upcast(), CanGc::note());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
&global,
|
&global,
|
||||||
|
|
|
@ -708,7 +708,7 @@ impl EventTarget {
|
||||||
can_gc: CanGc,
|
can_gc: CanGc,
|
||||||
) -> DomRoot<Event> {
|
) -> DomRoot<Event> {
|
||||||
let event = Event::new(&self.global(), name, bubbles, cancelable, can_gc);
|
let event = Event::new(&self.global(), name, bubbles, cancelable, can_gc);
|
||||||
event.fire(self);
|
event.fire(self, can_gc);
|
||||||
event
|
event
|
||||||
}
|
}
|
||||||
// https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener
|
// https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener
|
||||||
|
|
|
@ -140,7 +140,9 @@ impl ExtendableMessageEvent {
|
||||||
ports,
|
ports,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
Extendablemessageevent.upcast::<Event>().fire(target);
|
Extendablemessageevent
|
||||||
|
.upcast::<Event>()
|
||||||
|
.fire(target, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn dispatch_error(target: &EventTarget, scope: &GlobalScope, can_gc: CanGc) {
|
pub fn dispatch_error(target: &EventTarget, scope: &GlobalScope, can_gc: CanGc) {
|
||||||
|
@ -156,7 +158,7 @@ impl ExtendableMessageEvent {
|
||||||
init.ports.clone(),
|
init.ports.clone(),
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
ExtendableMsgEvent.upcast::<Event>().fire(target);
|
ExtendableMsgEvent.upcast::<Event>().fire(target, can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -425,7 +425,7 @@ impl FileReader {
|
||||||
total.unwrap_or(0),
|
total.unwrap_or(0),
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
progressevent.upcast::<Event>().fire(self.upcast());
|
progressevent.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn terminate_ongoing_reading(&self) {
|
fn terminate_ongoing_reading(&self) {
|
||||||
|
|
|
@ -24,16 +24,16 @@ pub struct FontFaceSet {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FontFaceSet {
|
impl FontFaceSet {
|
||||||
pub fn new_inherited(global: &GlobalScope) -> Self {
|
pub fn new_inherited(global: &GlobalScope, can_gc: CanGc) -> Self {
|
||||||
FontFaceSet {
|
FontFaceSet {
|
||||||
target: EventTarget::new_inherited(),
|
target: EventTarget::new_inherited(),
|
||||||
promise: Promise::new(global, CanGc::note()),
|
promise: Promise::new(global, can_gc),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(global: &GlobalScope, proto: Option<HandleObject>, can_gc: CanGc) -> DomRoot<Self> {
|
pub fn new(global: &GlobalScope, proto: Option<HandleObject>, can_gc: CanGc) -> DomRoot<Self> {
|
||||||
reflect_dom_object_with_proto(
|
reflect_dom_object_with_proto(
|
||||||
Box::new(FontFaceSet::new_inherited(global)),
|
Box::new(FontFaceSet::new_inherited(global, can_gc)),
|
||||||
global,
|
global,
|
||||||
proto,
|
proto,
|
||||||
can_gc,
|
can_gc,
|
||||||
|
|
|
@ -249,7 +249,7 @@ impl Gamepad {
|
||||||
let event = GamepadEvent::new_with_type(&self.global(), event_type, self, can_gc);
|
let event = GamepadEvent::new_with_type(&self.global(), event_type, self, can_gc);
|
||||||
event
|
event
|
||||||
.upcast::<Event>()
|
.upcast::<Event>()
|
||||||
.fire(self.global().as_window().upcast::<EventTarget>());
|
.fire(self.global().as_window().upcast::<EventTarget>(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Initialize the number of axes in the "standard" gamepad mapping.
|
/// Initialize the number of axes in the "standard" gamepad mapping.
|
||||||
|
|
|
@ -2478,7 +2478,9 @@ impl GlobalScope {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Step 7.
|
// Step 7.
|
||||||
let event_status = event.upcast::<Event>().fire(self.upcast::<EventTarget>());
|
let event_status = event
|
||||||
|
.upcast::<Event>()
|
||||||
|
.fire(self.upcast::<EventTarget>(), can_gc);
|
||||||
|
|
||||||
// Step 8.
|
// Step 8.
|
||||||
self.in_error_reporting_mode.set(false);
|
self.in_error_reporting_mode.set(false);
|
||||||
|
|
|
@ -156,7 +156,7 @@ impl History {
|
||||||
);
|
);
|
||||||
event
|
event
|
||||||
.upcast::<Event>()
|
.upcast::<Event>()
|
||||||
.fire(self.window.upcast::<EventTarget>());
|
.fire(self.window.upcast::<EventTarget>(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -181,7 +181,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#handler-onerror
|
// https://html.spec.whatwg.org/multipage/#handler-onerror
|
||||||
fn GetOnerror(&self) -> Option<Rc<OnErrorEventHandlerNonNull>> {
|
fn GetOnerror(&self, can_gc: CanGc) -> Option<Rc<OnErrorEventHandlerNonNull>> {
|
||||||
if self.is_body_or_frameset() {
|
if self.is_body_or_frameset() {
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
if document.has_browsing_context() {
|
if document.has_browsing_context() {
|
||||||
|
@ -191,7 +191,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.upcast::<EventTarget>()
|
self.upcast::<EventTarget>()
|
||||||
.get_event_handler_common("error", CanGc::note())
|
.get_event_handler_common("error", can_gc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#handler-onload
|
// https://html.spec.whatwg.org/multipage/#handler-onload
|
||||||
fn GetOnload(&self) -> Option<Rc<EventHandlerNonNull>> {
|
fn GetOnload(&self, can_gc: CanGc) -> Option<Rc<EventHandlerNonNull>> {
|
||||||
if self.is_body_or_frameset() {
|
if self.is_body_or_frameset() {
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
if document.has_browsing_context() {
|
if document.has_browsing_context() {
|
||||||
|
@ -220,7 +220,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.upcast::<EventTarget>()
|
self.upcast::<EventTarget>()
|
||||||
.get_event_handler_common("load", CanGc::note())
|
.get_event_handler_common("load", can_gc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,7 +238,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#handler-onblur
|
// https://html.spec.whatwg.org/multipage/#handler-onblur
|
||||||
fn GetOnblur(&self) -> Option<Rc<EventHandlerNonNull>> {
|
fn GetOnblur(&self, can_gc: CanGc) -> Option<Rc<EventHandlerNonNull>> {
|
||||||
if self.is_body_or_frameset() {
|
if self.is_body_or_frameset() {
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
if document.has_browsing_context() {
|
if document.has_browsing_context() {
|
||||||
|
@ -248,7 +248,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.upcast::<EventTarget>()
|
self.upcast::<EventTarget>()
|
||||||
.get_event_handler_common("blur", CanGc::note())
|
.get_event_handler_common("blur", can_gc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#handler-onfocus
|
// https://html.spec.whatwg.org/multipage/#handler-onfocus
|
||||||
fn GetOnfocus(&self) -> Option<Rc<EventHandlerNonNull>> {
|
fn GetOnfocus(&self, can_gc: CanGc) -> Option<Rc<EventHandlerNonNull>> {
|
||||||
if self.is_body_or_frameset() {
|
if self.is_body_or_frameset() {
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
if document.has_browsing_context() {
|
if document.has_browsing_context() {
|
||||||
|
@ -276,7 +276,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.upcast::<EventTarget>()
|
self.upcast::<EventTarget>()
|
||||||
.get_event_handler_common("focus", CanGc::note())
|
.get_event_handler_common("focus", can_gc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,7 +294,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#handler-onresize
|
// https://html.spec.whatwg.org/multipage/#handler-onresize
|
||||||
fn GetOnresize(&self) -> Option<Rc<EventHandlerNonNull>> {
|
fn GetOnresize(&self, can_gc: CanGc) -> Option<Rc<EventHandlerNonNull>> {
|
||||||
if self.is_body_or_frameset() {
|
if self.is_body_or_frameset() {
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
if document.has_browsing_context() {
|
if document.has_browsing_context() {
|
||||||
|
@ -304,7 +304,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.upcast::<EventTarget>()
|
self.upcast::<EventTarget>()
|
||||||
.get_event_handler_common("resize", CanGc::note())
|
.get_event_handler_common("resize", can_gc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#handler-onscroll
|
// https://html.spec.whatwg.org/multipage/#handler-onscroll
|
||||||
fn GetOnscroll(&self) -> Option<Rc<EventHandlerNonNull>> {
|
fn GetOnscroll(&self, can_gc: CanGc) -> Option<Rc<EventHandlerNonNull>> {
|
||||||
if self.is_body_or_frameset() {
|
if self.is_body_or_frameset() {
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
if document.has_browsing_context() {
|
if document.has_browsing_context() {
|
||||||
|
@ -332,7 +332,7 @@ impl HTMLElementMethods for HTMLElement {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.upcast::<EventTarget>()
|
self.upcast::<EventTarget>()
|
||||||
.get_event_handler_common("scroll", CanGc::note())
|
.get_event_handler_common("scroll", can_gc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -764,7 +764,7 @@ impl HTMLFormElement {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
let event = event.upcast::<Event>();
|
let event = event.upcast::<Event>();
|
||||||
event.fire(self.upcast::<EventTarget>());
|
event.fire(self.upcast::<EventTarget>(), can_gc);
|
||||||
|
|
||||||
// Step 6.6
|
// Step 6.6
|
||||||
self.firing_submission_events.set(false);
|
self.firing_submission_events.set(false);
|
||||||
|
@ -1223,7 +1223,9 @@ impl HTMLFormElement {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
|
|
||||||
event.upcast::<Event>().fire(self.upcast::<EventTarget>());
|
event
|
||||||
|
.upcast::<Event>()
|
||||||
|
.fire(self.upcast::<EventTarget>(), can_gc);
|
||||||
|
|
||||||
// Step 8
|
// Step 8
|
||||||
self.constructing_entry_list.set(false);
|
self.constructing_entry_list.set(false);
|
||||||
|
|
|
@ -1640,7 +1640,9 @@ impl HTMLMediaElement {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
|
|
||||||
event.upcast::<Event>().fire(self.upcast::<EventTarget>());
|
event
|
||||||
|
.upcast::<Event>()
|
||||||
|
.fire(self.upcast::<EventTarget>(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1695,7 +1697,9 @@ impl HTMLMediaElement {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
|
|
||||||
event.upcast::<Event>().fire(self.upcast::<EventTarget>());
|
event
|
||||||
|
.upcast::<Event>()
|
||||||
|
.fire(self.upcast::<EventTarget>(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1227,7 +1227,7 @@ impl HTMLScriptElement {
|
||||||
) -> EventStatus {
|
) -> EventStatus {
|
||||||
let window = window_from_node(self);
|
let window = window_from_node(self);
|
||||||
let event = Event::new(window.upcast(), type_, bubbles, cancelable, can_gc);
|
let event = Event::new(window.upcast(), type_, bubbles, cancelable, can_gc);
|
||||||
event.fire(self.upcast())
|
event.fire(self.upcast(), can_gc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -219,7 +219,7 @@ impl MessageEvent {
|
||||||
ports,
|
ports,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
messageevent.upcast::<Event>().fire(target);
|
messageevent.upcast::<Event>().fire(target, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn dispatch_error(target: &EventTarget, scope: &GlobalScope, can_gc: CanGc) {
|
pub fn dispatch_error(target: &EventTarget, scope: &GlobalScope, can_gc: CanGc) {
|
||||||
|
@ -236,7 +236,7 @@ impl MessageEvent {
|
||||||
init.ports.clone(),
|
init.ports.clone(),
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
messageevent.upcast::<Event>().fire(target);
|
messageevent.upcast::<Event>().fire(target, can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -207,7 +207,7 @@ impl OfflineAudioContextMethods for OfflineAudioContext {
|
||||||
EventBubbles::DoesNotBubble,
|
EventBubbles::DoesNotBubble,
|
||||||
EventCancelable::NotCancelable,
|
EventCancelable::NotCancelable,
|
||||||
&buffer, CanGc::note());
|
&buffer, CanGc::note());
|
||||||
event.upcast::<Event>().fire(this.upcast());
|
event.upcast::<Event>().fire(this.upcast(), CanGc::note());
|
||||||
}),
|
}),
|
||||||
&canceller,
|
&canceller,
|
||||||
);
|
);
|
||||||
|
|
|
@ -77,7 +77,7 @@ impl PopStateEvent {
|
||||||
) {
|
) {
|
||||||
let event =
|
let event =
|
||||||
PopStateEvent::new(window, None, atom!("popstate"), false, false, state, can_gc);
|
PopStateEvent::new(window, None, atom!("popstate"), false, false, state, can_gc);
|
||||||
event.upcast::<Event>().fire(target);
|
event.upcast::<Event>().fire(target, can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -119,7 +119,7 @@ impl RTCDataChannel {
|
||||||
EventCancelable::NotCancelable,
|
EventCancelable::NotCancelable,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn on_close(&self, can_gc: CanGc) {
|
pub fn on_close(&self, can_gc: CanGc) {
|
||||||
|
@ -130,7 +130,7 @@ impl RTCDataChannel {
|
||||||
EventCancelable::NotCancelable,
|
EventCancelable::NotCancelable,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
|
|
||||||
self.peer_connection
|
self.peer_connection
|
||||||
.unregister_data_channel(&self.servo_media_id);
|
.unregister_data_channel(&self.servo_media_id);
|
||||||
|
@ -153,7 +153,7 @@ impl RTCDataChannel {
|
||||||
};
|
};
|
||||||
let error = RTCError::new(&global, &init, message, can_gc);
|
let error = RTCError::new(&global, &init, message, can_gc);
|
||||||
let event = RTCErrorEvent::new(&global, atom!("error"), false, false, &error, can_gc);
|
let event = RTCErrorEvent::new(&global, atom!("error"), false, false, &error, can_gc);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
|
@ -213,7 +213,7 @@ impl RTCDataChannel {
|
||||||
EventCancelable::NotCancelable,
|
EventCancelable::NotCancelable,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
};
|
};
|
||||||
self.ready_state.set(state.into());
|
self.ready_state.set(state.into());
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ impl WebRtcSignaller for RTCSignaller {
|
||||||
let _ = self.task_source.queue_with_canceller(
|
let _ = self.task_source.queue_with_canceller(
|
||||||
task!(on_negotiation_needed: move || {
|
task!(on_negotiation_needed: move || {
|
||||||
let this = this.root();
|
let this = this.root();
|
||||||
this.on_negotiation_needed();
|
this.on_negotiation_needed(CanGc::note());
|
||||||
}),
|
}),
|
||||||
&self.canceller,
|
&self.canceller,
|
||||||
);
|
);
|
||||||
|
@ -123,7 +123,7 @@ impl WebRtcSignaller for RTCSignaller {
|
||||||
let _ = self.task_source.queue_with_canceller(
|
let _ = self.task_source.queue_with_canceller(
|
||||||
task!(update_ice_connection_state: move || {
|
task!(update_ice_connection_state: move || {
|
||||||
let this = this.root();
|
let this = this.root();
|
||||||
this.update_ice_connection_state(state);
|
this.update_ice_connection_state(state, CanGc::note());
|
||||||
}),
|
}),
|
||||||
&self.canceller,
|
&self.canceller,
|
||||||
);
|
);
|
||||||
|
@ -134,7 +134,7 @@ impl WebRtcSignaller for RTCSignaller {
|
||||||
let _ = self.task_source.queue_with_canceller(
|
let _ = self.task_source.queue_with_canceller(
|
||||||
task!(update_signaling_state: move || {
|
task!(update_signaling_state: move || {
|
||||||
let this = this.root();
|
let this = this.root();
|
||||||
this.update_signaling_state(state);
|
this.update_signaling_state(state, CanGc::note());
|
||||||
}),
|
}),
|
||||||
&self.canceller,
|
&self.canceller,
|
||||||
);
|
);
|
||||||
|
@ -146,7 +146,7 @@ impl WebRtcSignaller for RTCSignaller {
|
||||||
let _ = self.task_source.queue_with_canceller(
|
let _ = self.task_source.queue_with_canceller(
|
||||||
task!(on_add_stream: move || {
|
task!(on_add_stream: move || {
|
||||||
let this = this.root();
|
let this = this.root();
|
||||||
this.on_add_stream(id, ty);
|
this.on_add_stream(id, ty, CanGc::note());
|
||||||
}),
|
}),
|
||||||
&self.canceller,
|
&self.canceller,
|
||||||
);
|
);
|
||||||
|
@ -269,10 +269,10 @@ impl RTCPeerConnection {
|
||||||
true,
|
true,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_negotiation_needed(&self) {
|
fn on_negotiation_needed(&self, can_gc: CanGc) {
|
||||||
if self.closed.get() {
|
if self.closed.get() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -281,25 +281,19 @@ impl RTCPeerConnection {
|
||||||
atom!("negotiationneeded"),
|
atom!("negotiationneeded"),
|
||||||
EventBubbles::DoesNotBubble,
|
EventBubbles::DoesNotBubble,
|
||||||
EventCancelable::NotCancelable,
|
EventCancelable::NotCancelable,
|
||||||
CanGc::note(),
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_add_stream(&self, id: MediaStreamId, ty: MediaStreamType) {
|
fn on_add_stream(&self, id: MediaStreamId, ty: MediaStreamType, can_gc: CanGc) {
|
||||||
if self.closed.get() {
|
if self.closed.get() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let track = MediaStreamTrack::new(&self.global(), id, ty);
|
let track = MediaStreamTrack::new(&self.global(), id, ty);
|
||||||
let event = RTCTrackEvent::new(
|
let event =
|
||||||
&self.global(),
|
RTCTrackEvent::new(&self.global(), atom!("track"), false, false, &track, can_gc);
|
||||||
atom!("track"),
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
false,
|
|
||||||
false,
|
|
||||||
&track,
|
|
||||||
CanGc::note(),
|
|
||||||
);
|
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_data_channel_event(
|
fn on_data_channel_event(
|
||||||
|
@ -330,7 +324,7 @@ impl RTCPeerConnection {
|
||||||
&channel,
|
&channel,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
},
|
},
|
||||||
_ => {
|
_ => {
|
||||||
let channel = if let Some(channel) = self.data_channels.borrow().get(&channel_id) {
|
let channel = if let Some(channel) = self.data_channels.borrow().get(&channel_id) {
|
||||||
|
@ -394,9 +388,9 @@ impl RTCPeerConnection {
|
||||||
atom!("icegatheringstatechange"),
|
atom!("icegatheringstatechange"),
|
||||||
EventBubbles::DoesNotBubble,
|
EventBubbles::DoesNotBubble,
|
||||||
EventCancelable::NotCancelable,
|
EventCancelable::NotCancelable,
|
||||||
CanGc::note(),
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
|
|
||||||
// step 6
|
// step 6
|
||||||
if state == RTCIceGatheringState::Complete {
|
if state == RTCIceGatheringState::Complete {
|
||||||
|
@ -408,12 +402,12 @@ impl RTCPeerConnection {
|
||||||
true,
|
true,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <https://www.w3.org/TR/webrtc/#update-ice-connection-state>
|
/// <https://www.w3.org/TR/webrtc/#update-ice-connection-state>
|
||||||
fn update_ice_connection_state(&self, state: IceConnectionState) {
|
fn update_ice_connection_state(&self, state: IceConnectionState, can_gc: CanGc) {
|
||||||
// step 1
|
// step 1
|
||||||
if self.closed.get() {
|
if self.closed.get() {
|
||||||
return;
|
return;
|
||||||
|
@ -436,12 +430,12 @@ impl RTCPeerConnection {
|
||||||
atom!("iceconnectionstatechange"),
|
atom!("iceconnectionstatechange"),
|
||||||
EventBubbles::DoesNotBubble,
|
EventBubbles::DoesNotBubble,
|
||||||
EventCancelable::NotCancelable,
|
EventCancelable::NotCancelable,
|
||||||
CanGc::note(),
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn update_signaling_state(&self, state: SignalingState) {
|
fn update_signaling_state(&self, state: SignalingState, can_gc: CanGc) {
|
||||||
if self.closed.get() {
|
if self.closed.get() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -459,9 +453,9 @@ impl RTCPeerConnection {
|
||||||
atom!("signalingstatechange"),
|
atom!("signalingstatechange"),
|
||||||
EventBubbles::DoesNotBubble,
|
EventBubbles::DoesNotBubble,
|
||||||
EventCancelable::NotCancelable,
|
EventCancelable::NotCancelable,
|
||||||
CanGc::note(),
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_offer(&self) {
|
fn create_offer(&self) {
|
||||||
|
|
|
@ -225,7 +225,7 @@ impl Storage {
|
||||||
Some(&this),
|
Some(&this),
|
||||||
CanGc::note()
|
CanGc::note()
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(global.upcast());
|
event.upcast::<Event>().fire(global.upcast(), CanGc::note());
|
||||||
}),
|
}),
|
||||||
global.upcast(),
|
global.upcast(),
|
||||||
)
|
)
|
||||||
|
|
|
@ -87,7 +87,7 @@ impl TextTrackList {
|
||||||
CanGc::note()
|
CanGc::note()
|
||||||
);
|
);
|
||||||
|
|
||||||
event.upcast::<Event>().fire(this.upcast::<EventTarget>());
|
event.upcast::<Event>().fire(this.upcast::<EventTarget>(), CanGc::note());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
canceller,
|
canceller,
|
||||||
|
|
|
@ -304,10 +304,10 @@ impl WebGLRenderingContext {
|
||||||
);
|
);
|
||||||
match canvas {
|
match canvas {
|
||||||
HTMLCanvasElementOrOffscreenCanvas::HTMLCanvasElement(canvas) => {
|
HTMLCanvasElementOrOffscreenCanvas::HTMLCanvasElement(canvas) => {
|
||||||
event.upcast::<Event>().fire(canvas.upcast());
|
event.upcast::<Event>().fire(canvas.upcast(), can_gc);
|
||||||
},
|
},
|
||||||
HTMLCanvasElementOrOffscreenCanvas::OffscreenCanvas(canvas) => {
|
HTMLCanvasElementOrOffscreenCanvas::OffscreenCanvas(canvas) => {
|
||||||
event.upcast::<Event>().fire(canvas.upcast());
|
event.upcast::<Event>().fire(canvas.upcast(), can_gc);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
None
|
None
|
||||||
|
|
|
@ -541,7 +541,9 @@ impl TaskOnce for CloseTask {
|
||||||
reason,
|
reason,
|
||||||
CanGc::note(),
|
CanGc::note(),
|
||||||
);
|
);
|
||||||
close_event.upcast::<Event>().fire(ws.upcast());
|
close_event
|
||||||
|
.upcast::<Event>()
|
||||||
|
.fire(ws.upcast(), CanGc::note());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2294,7 +2294,7 @@ impl Window {
|
||||||
old_url,
|
old_url,
|
||||||
new_url,
|
new_url,
|
||||||
CanGc::note());
|
CanGc::note());
|
||||||
event.upcast::<Event>().fire(this.upcast::<EventTarget>());
|
event.upcast::<Event>().fire(this.upcast::<EventTarget>(), CanGc::note());
|
||||||
});
|
});
|
||||||
// FIXME(nox): Why are errors silenced here?
|
// FIXME(nox): Why are errors silenced here?
|
||||||
let _ = self.script_chan.send(CommonScriptMsg::Task(
|
let _ = self.script_chan.send(CommonScriptMsg::Task(
|
||||||
|
@ -2497,7 +2497,9 @@ impl Window {
|
||||||
mql.Matches(),
|
mql.Matches(),
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(mql.upcast::<EventTarget>());
|
event
|
||||||
|
.upcast::<Event>()
|
||||||
|
.fire(mql.upcast::<EventTarget>(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1023,7 +1023,7 @@ impl XMLHttpRequest {
|
||||||
EventCancelable::Cancelable,
|
EventCancelable::Cancelable,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.fire(self.upcast());
|
event.fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1172,7 +1172,7 @@ impl XMLHttpRequest {
|
||||||
EventCancelable::Cancelable,
|
EventCancelable::Cancelable,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.fire(self.upcast());
|
event.fire(self.upcast(), can_gc);
|
||||||
return_if_fetch_was_terminated!();
|
return_if_fetch_was_terminated!();
|
||||||
self.dispatch_response_progress_event(atom!("progress"), can_gc);
|
self.dispatch_response_progress_event(atom!("progress"), can_gc);
|
||||||
}
|
}
|
||||||
|
@ -1272,7 +1272,7 @@ impl XMLHttpRequest {
|
||||||
} else {
|
} else {
|
||||||
self.upcast()
|
self.upcast()
|
||||||
};
|
};
|
||||||
progressevent.upcast::<Event>().fire(target);
|
progressevent.upcast::<Event>().fire(target, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn dispatch_upload_progress_event(
|
fn dispatch_upload_progress_event(
|
||||||
|
|
|
@ -65,7 +65,7 @@ impl XRInputSourceArray {
|
||||||
&[],
|
&[],
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(session.upcast());
|
event.upcast::<Event>().fire(session.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn remove_input_source(&self, session: &XRSession, id: InputId, can_gc: CanGc) {
|
pub fn remove_input_source(&self, session: &XRSession, id: InputId, can_gc: CanGc) {
|
||||||
|
@ -88,7 +88,7 @@ impl XRInputSourceArray {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
self.input_sources.borrow_mut().retain(|i| i.id() != id);
|
self.input_sources.borrow_mut().retain(|i| i.id() != id);
|
||||||
event.upcast::<Event>().fire(session.upcast());
|
event.upcast::<Event>().fire(session.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add_remove_input_source(
|
pub fn add_remove_input_source(
|
||||||
|
@ -124,7 +124,7 @@ impl XRInputSourceArray {
|
||||||
removed,
|
removed,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(session.upcast());
|
event.upcast::<Event>().fire(session.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn find(&self, id: InputId) -> Option<DomRoot<XRInputSource>> {
|
pub fn find(&self, id: InputId) -> Option<DomRoot<XRInputSource>> {
|
||||||
|
|
|
@ -299,7 +299,7 @@ impl XRSession {
|
||||||
// Step 7
|
// Step 7
|
||||||
let event =
|
let event =
|
||||||
XRSessionEvent::new(&self.global(), atom!("end"), false, false, self, can_gc);
|
XRSessionEvent::new(&self.global(), atom!("end"), false, false, self, can_gc);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
},
|
},
|
||||||
XREvent::Select(input, kind, ty, frame) => {
|
XREvent::Select(input, kind, ty, frame) => {
|
||||||
use servo_atoms::Atom;
|
use servo_atoms::Atom;
|
||||||
|
@ -323,7 +323,7 @@ impl XRSession {
|
||||||
&source,
|
&source,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
} else {
|
} else {
|
||||||
if ty == SelectEvent::Select {
|
if ty == SelectEvent::Select {
|
||||||
let event = XRInputSourceEvent::new(
|
let event = XRInputSourceEvent::new(
|
||||||
|
@ -335,7 +335,7 @@ impl XRSession {
|
||||||
&source,
|
&source,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
let event = XRInputSourceEvent::new(
|
let event = XRInputSourceEvent::new(
|
||||||
&self.global(),
|
&self.global(),
|
||||||
|
@ -346,7 +346,7 @@ impl XRSession {
|
||||||
&source,
|
&source,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
frame.set_active(false);
|
frame.set_active(false);
|
||||||
}
|
}
|
||||||
|
@ -366,7 +366,7 @@ impl XRSession {
|
||||||
self,
|
self,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
// The page may be visible again, dirty the layers
|
// The page may be visible again, dirty the layers
|
||||||
// This also wakes up the event loop if necessary
|
// This also wakes up the event loop if necessary
|
||||||
self.dirty_layers();
|
self.dirty_layers();
|
||||||
|
@ -411,7 +411,7 @@ impl XRSession {
|
||||||
Some(&*offset),
|
Some(&*offset),
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(space.upcast());
|
event.upcast::<Event>().fire(space.upcast(), can_gc);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -615,7 +615,7 @@ impl XRSession {
|
||||||
self,
|
self,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
event.upcast::<Event>().fire(self.upcast());
|
event.upcast::<Event>().fire(self.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -306,7 +306,7 @@ unsafe extern "C" fn promise_rejection_tracker(
|
||||||
CanGc::note()
|
CanGc::note()
|
||||||
);
|
);
|
||||||
|
|
||||||
event.upcast::<Event>().fire(&target);
|
event.upcast::<Event>().fire(&target, CanGc::note());
|
||||||
}),
|
}),
|
||||||
global.upcast(),
|
global.upcast(),
|
||||||
).unwrap();
|
).unwrap();
|
||||||
|
@ -424,7 +424,7 @@ pub fn notify_about_rejected_promises(global: &GlobalScope) {
|
||||||
CanGc::note()
|
CanGc::note()
|
||||||
);
|
);
|
||||||
|
|
||||||
let event_status = event.upcast::<Event>().fire(&target);
|
let event_status = event.upcast::<Event>().fire(&target, CanGc::note());
|
||||||
|
|
||||||
// Step 4-3.
|
// Step 4-3.
|
||||||
if event_status == EventStatus::Canceled {
|
if event_status == EventStatus::Canceled {
|
||||||
|
|
|
@ -1605,6 +1605,7 @@ impl ScriptThread {
|
||||||
identifier,
|
identifier,
|
||||||
point,
|
point,
|
||||||
node_address,
|
node_address,
|
||||||
|
can_gc,
|
||||||
);
|
);
|
||||||
match (event_type, touch_result) {
|
match (event_type, touch_result) {
|
||||||
(TouchEventType::Down, TouchEventResult::Processed(handled)) => {
|
(TouchEventType::Down, TouchEventResult::Processed(handled)) => {
|
||||||
|
@ -2592,7 +2593,7 @@ impl ScriptThread {
|
||||||
devtools::handle_get_children(&documents, id, node_id, reply)
|
devtools::handle_get_children(&documents, id, node_id, reply)
|
||||||
},
|
},
|
||||||
DevtoolScriptControlMsg::GetAttributeStyle(id, node_id, reply) => {
|
DevtoolScriptControlMsg::GetAttributeStyle(id, node_id, reply) => {
|
||||||
devtools::handle_get_attribute_style(&documents, id, node_id, reply)
|
devtools::handle_get_attribute_style(&documents, id, node_id, reply, can_gc)
|
||||||
},
|
},
|
||||||
DevtoolScriptControlMsg::GetStylesheetStyle(
|
DevtoolScriptControlMsg::GetStylesheetStyle(
|
||||||
id,
|
id,
|
||||||
|
@ -2601,13 +2602,13 @@ impl ScriptThread {
|
||||||
stylesheet,
|
stylesheet,
|
||||||
reply,
|
reply,
|
||||||
) => devtools::handle_get_stylesheet_style(
|
) => devtools::handle_get_stylesheet_style(
|
||||||
&documents, id, node_id, selector, stylesheet, reply,
|
&documents, id, node_id, selector, stylesheet, reply, can_gc,
|
||||||
),
|
),
|
||||||
DevtoolScriptControlMsg::GetSelectors(id, node_id, reply) => {
|
DevtoolScriptControlMsg::GetSelectors(id, node_id, reply) => {
|
||||||
devtools::handle_get_selectors(&documents, id, node_id, reply)
|
devtools::handle_get_selectors(&documents, id, node_id, reply)
|
||||||
},
|
},
|
||||||
DevtoolScriptControlMsg::GetComputedStyle(id, node_id, reply) => {
|
DevtoolScriptControlMsg::GetComputedStyle(id, node_id, reply) => {
|
||||||
devtools::handle_get_computed_style(&documents, id, node_id, reply)
|
devtools::handle_get_computed_style(&documents, id, node_id, reply, can_gc)
|
||||||
},
|
},
|
||||||
DevtoolScriptControlMsg::GetLayout(id, node_id, reply) => {
|
DevtoolScriptControlMsg::GetLayout(id, node_id, reply) => {
|
||||||
devtools::handle_get_layout(&documents, id, node_id, reply, can_gc)
|
devtools::handle_get_layout(&documents, id, node_id, reply, can_gc)
|
||||||
|
@ -2616,7 +2617,7 @@ impl ScriptThread {
|
||||||
devtools::handle_modify_attribute(&documents, id, node_id, modifications, can_gc)
|
devtools::handle_modify_attribute(&documents, id, node_id, modifications, can_gc)
|
||||||
},
|
},
|
||||||
DevtoolScriptControlMsg::ModifyRule(id, node_id, modifications) => {
|
DevtoolScriptControlMsg::ModifyRule(id, node_id, modifications) => {
|
||||||
devtools::handle_modify_rule(&documents, id, node_id, modifications)
|
devtools::handle_modify_rule(&documents, id, node_id, modifications, can_gc)
|
||||||
},
|
},
|
||||||
DevtoolScriptControlMsg::WantsLiveNotifications(id, to_send) => match documents
|
DevtoolScriptControlMsg::WantsLiveNotifications(id, to_send) => match documents
|
||||||
.find_window(id)
|
.find_window(id)
|
||||||
|
@ -2843,7 +2844,14 @@ impl ScriptThread {
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
WebDriverScriptCommand::GetElementCSS(node_id, name, reply) => {
|
WebDriverScriptCommand::GetElementCSS(node_id, name, reply) => {
|
||||||
webdriver_handlers::handle_get_css(&documents, pipeline_id, node_id, name, reply)
|
webdriver_handlers::handle_get_css(
|
||||||
|
&documents,
|
||||||
|
pipeline_id,
|
||||||
|
node_id,
|
||||||
|
name,
|
||||||
|
reply,
|
||||||
|
can_gc,
|
||||||
|
)
|
||||||
},
|
},
|
||||||
WebDriverScriptCommand::GetElementRect(node_id, reply) => {
|
WebDriverScriptCommand::GetElementRect(node_id, reply) => {
|
||||||
webdriver_handlers::handle_get_rect(&documents, pipeline_id, node_id, reply, can_gc)
|
webdriver_handlers::handle_get_rect(&documents, pipeline_id, node_id, reply, can_gc)
|
||||||
|
@ -3963,6 +3971,7 @@ impl ScriptThread {
|
||||||
identifier: TouchId,
|
identifier: TouchId,
|
||||||
point: Point2D<f32>,
|
point: Point2D<f32>,
|
||||||
node_address: Option<UntrustedNodeAddress>,
|
node_address: Option<UntrustedNodeAddress>,
|
||||||
|
can_gc: CanGc,
|
||||||
) -> TouchEventResult {
|
) -> TouchEventResult {
|
||||||
let document = match self.documents.borrow().find_document(pipeline_id) {
|
let document = match self.documents.borrow().find_document(pipeline_id) {
|
||||||
Some(document) => document,
|
Some(document) => document,
|
||||||
|
@ -3971,7 +3980,7 @@ impl ScriptThread {
|
||||||
return TouchEventResult::Processed(true);
|
return TouchEventResult::Processed(true);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
unsafe { document.handle_touch_event(event_type, identifier, point, node_address) }
|
unsafe { document.handle_touch_event(event_type, identifier, point, node_address, can_gc) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_wheel_event(
|
fn handle_wheel_event(
|
||||||
|
@ -4087,7 +4096,7 @@ impl ScriptThread {
|
||||||
0i32,
|
0i32,
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
uievent.upcast::<Event>().fire(window.upcast());
|
uievent.upcast::<Event>().fire(window.upcast(), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,7 @@ impl CSPViolationReporter {
|
||||||
can_gc,
|
can_gc,
|
||||||
);
|
);
|
||||||
|
|
||||||
event.upcast::<Event>().fire(&target);
|
event.upcast::<Event>().fire(&target, can_gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <https://w3c.github.io/webappsec-csp/#strip-url-for-use-in-reports>
|
/// <https://w3c.github.io/webappsec-csp/#strip-url-for-use-in-reports>
|
||||||
|
|
|
@ -93,7 +93,7 @@ impl OneshotTimerCallback {
|
||||||
match self {
|
match self {
|
||||||
OneshotTimerCallback::XhrTimeout(callback) => callback.invoke(can_gc),
|
OneshotTimerCallback::XhrTimeout(callback) => callback.invoke(can_gc),
|
||||||
OneshotTimerCallback::EventSourceTimeout(callback) => callback.invoke(),
|
OneshotTimerCallback::EventSourceTimeout(callback) => callback.invoke(),
|
||||||
OneshotTimerCallback::JsTimer(task) => task.invoke(this, js_timers),
|
OneshotTimerCallback::JsTimer(task) => task.invoke(this, js_timers, can_gc),
|
||||||
OneshotTimerCallback::TestBindingCallback(callback) => callback.invoke(),
|
OneshotTimerCallback::TestBindingCallback(callback) => callback.invoke(),
|
||||||
OneshotTimerCallback::FakeRequestAnimationFrame(callback) => callback.invoke(can_gc),
|
OneshotTimerCallback::FakeRequestAnimationFrame(callback) => callback.invoke(can_gc),
|
||||||
OneshotTimerCallback::RefreshRedirectDue(callback) => callback.invoke(can_gc),
|
OneshotTimerCallback::RefreshRedirectDue(callback) => callback.invoke(can_gc),
|
||||||
|
@ -537,7 +537,7 @@ fn clamp_duration(nesting_level: u32, unclamped: Duration) -> Duration {
|
||||||
|
|
||||||
impl JsTimerTask {
|
impl JsTimerTask {
|
||||||
// see https://html.spec.whatwg.org/multipage/#timer-initialisation-steps
|
// see https://html.spec.whatwg.org/multipage/#timer-initialisation-steps
|
||||||
pub fn invoke<T: DomObject>(self, this: &T, timers: &JsTimers) {
|
pub fn invoke<T: DomObject>(self, this: &T, timers: &JsTimers, can_gc: CanGc) {
|
||||||
// step 4.1 can be ignored, because we proactively prevent execution
|
// step 4.1 can be ignored, because we proactively prevent execution
|
||||||
// of this task when its scheduled execution is canceled.
|
// of this task when its scheduled execution is canceled.
|
||||||
|
|
||||||
|
@ -558,7 +558,7 @@ impl JsTimerTask {
|
||||||
rval.handle_mut(),
|
rval.handle_mut(),
|
||||||
ScriptFetchOptions::default_classic_script(&global),
|
ScriptFetchOptions::default_classic_script(&global),
|
||||||
global.api_base_url(),
|
global.api_base_url(),
|
||||||
CanGc::note(),
|
can_gc,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
InternalTimerCallback::FunctionTimerCallback(ref function, ref arguments) => {
|
InternalTimerCallback::FunctionTimerCallback(ref function, ref arguments) => {
|
||||||
|
|
|
@ -1044,6 +1044,7 @@ pub fn handle_get_css(
|
||||||
node_id: String,
|
node_id: String,
|
||||||
name: String,
|
name: String,
|
||||||
reply: IpcSender<Result<String, ErrorStatus>>,
|
reply: IpcSender<Result<String, ErrorStatus>>,
|
||||||
|
can_gc: CanGc,
|
||||||
) {
|
) {
|
||||||
reply
|
reply
|
||||||
.send(
|
.send(
|
||||||
|
@ -1053,7 +1054,7 @@ pub fn handle_get_css(
|
||||||
String::from(
|
String::from(
|
||||||
window
|
window
|
||||||
.GetComputedStyle(element, None)
|
.GetComputedStyle(element, None)
|
||||||
.GetPropertyValue(DOMString::from(name)),
|
.GetPropertyValue(DOMString::from(name), can_gc),
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue