aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/filereader.rs5
-rw-r--r--components/script/dom/progressevent.rs23
-rw-r--r--components/script/dom/xmlhttprequest.rs5
-rw-r--r--components/script_bindings/webidls/ProgressEvent.webidl8
-rw-r--r--tests/wpt/meta/xhr/progressevent-constructor.html.ini9
5 files changed, 24 insertions, 26 deletions
diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs
index e3d0e1fd513..fdbef3739c8 100644
--- a/components/script/dom/filereader.rs
+++ b/components/script/dom/filereader.rs
@@ -14,6 +14,7 @@ use js::jsval::{self, JSVal};
use js::rust::HandleObject;
use js::typedarray::{ArrayBuffer, CreateWith};
use mime::{self, Mime};
+use script_bindings::num::Finite;
use stylo_atoms::Atom;
use crate::dom::bindings::cell::DomRefCell;
@@ -463,8 +464,8 @@ impl FileReader {
EventBubbles::DoesNotBubble,
EventCancelable::NotCancelable,
total.is_some(),
- loaded,
- total.unwrap_or(0),
+ Finite::wrap(loaded as f64),
+ Finite::wrap(total.unwrap_or(0) as f64),
can_gc,
);
progressevent.upcast::<Event>().fire(self.upcast(), can_gc);
diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs
index e0a8ee2992f..5e70bcf1642 100644
--- a/components/script/dom/progressevent.rs
+++ b/components/script/dom/progressevent.rs
@@ -4,6 +4,7 @@
use dom_struct::dom_struct;
use js::rust::HandleObject;
+use script_bindings::num::Finite;
use stylo_atoms::Atom;
use crate::dom::bindings::codegen::Bindings::EventBinding::EventMethods;
@@ -22,12 +23,16 @@ use crate::script_runtime::CanGc;
pub(crate) struct ProgressEvent {
event: Event,
length_computable: bool,
- loaded: u64,
- total: u64,
+ loaded: Finite<f64>,
+ total: Finite<f64>,
}
impl ProgressEvent {
- fn new_inherited(length_computable: bool, loaded: u64, total: u64) -> ProgressEvent {
+ fn new_inherited(
+ length_computable: bool,
+ loaded: Finite<f64>,
+ total: Finite<f64>,
+ ) -> ProgressEvent {
ProgressEvent {
event: Event::new_inherited(),
length_computable,
@@ -43,8 +48,8 @@ impl ProgressEvent {
can_bubble: EventBubbles,
cancelable: EventCancelable,
length_computable: bool,
- loaded: u64,
- total: u64,
+ loaded: Finite<f64>,
+ total: Finite<f64>,
can_gc: CanGc,
) -> DomRoot<ProgressEvent> {
Self::new_with_proto(
@@ -68,8 +73,8 @@ impl ProgressEvent {
can_bubble: EventBubbles,
cancelable: EventCancelable,
length_computable: bool,
- loaded: u64,
- total: u64,
+ loaded: Finite<f64>,
+ total: Finite<f64>,
can_gc: CanGc,
) -> DomRoot<ProgressEvent> {
let ev = reflect_dom_object_with_proto(
@@ -121,12 +126,12 @@ impl ProgressEventMethods<crate::DomTypeHolder> for ProgressEvent {
}
// https://xhr.spec.whatwg.org/#dom-progressevent-loaded
- fn Loaded(&self) -> u64 {
+ fn Loaded(&self) -> Finite<f64> {
self.loaded
}
// https://xhr.spec.whatwg.org/#dom-progressevent-total
- fn Total(&self) -> u64 {
+ fn Total(&self) -> Finite<f64> {
self.total
}
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 20e25415f98..3c74189d1b9 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -31,6 +31,7 @@ use net_traits::{
FetchMetadata, FetchResponseListener, FilteredMetadata, NetworkError, ReferrerPolicy,
ResourceFetchTiming, ResourceTimingType, trim_http_whitespace,
};
+use script_bindings::num::Finite;
use script_traits::DocumentActivity;
use servo_url::ServoUrl;
use stylo_atoms::Atom;
@@ -1235,8 +1236,8 @@ impl XMLHttpRequest {
EventBubbles::DoesNotBubble,
EventCancelable::NotCancelable,
length_computable,
- loaded,
- total_length,
+ Finite::wrap(loaded as f64),
+ Finite::wrap(total_length as f64),
can_gc,
);
let target = if upload {
diff --git a/components/script_bindings/webidls/ProgressEvent.webidl b/components/script_bindings/webidls/ProgressEvent.webidl
index 17d066ef187..e931a4b9066 100644
--- a/components/script_bindings/webidls/ProgressEvent.webidl
+++ b/components/script_bindings/webidls/ProgressEvent.webidl
@@ -16,12 +16,12 @@
interface ProgressEvent : Event {
[Throws] constructor(DOMString type, optional ProgressEventInit eventInitDict = {});
readonly attribute boolean lengthComputable;
- readonly attribute unsigned long long loaded;
- readonly attribute unsigned long long total;
+ readonly attribute double loaded;
+ readonly attribute double total;
};
dictionary ProgressEventInit : EventInit {
boolean lengthComputable = false;
- unsigned long long loaded = 0;
- unsigned long long total = 0;
+ double loaded = 0;
+ double total = 0;
};
diff --git a/tests/wpt/meta/xhr/progressevent-constructor.html.ini b/tests/wpt/meta/xhr/progressevent-constructor.html.ini
deleted file mode 100644
index 766a8c4a205..00000000000
--- a/tests/wpt/meta/xhr/progressevent-constructor.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[progressevent-constructor.html]
- [Decimal number test.]
- expected: FAIL
-
- [Mixed integer and decimal number test.]
- expected: FAIL
-
- [Negative number.]
- expected: FAIL