From 52348f1fccea3e4abc2ad80d001a43f5f51cbdc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Tue, 1 Aug 2017 14:57:55 +0200 Subject: Performance Timeline API --- .../script/dom/performanceobserverentrylist.rs | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 components/script/dom/performanceobserverentrylist.rs (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs new file mode 100644 index 00000000000..9c6a039cd4c --- /dev/null +++ b/components/script/dom/performanceobserverentrylist.rs @@ -0,0 +1,54 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use dom::bindings::cell::DOMRefCell; +use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; +use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding::PerformanceObserverEntryListMethods; +use dom::bindings::js::Root; +use dom::bindings::reflector::{Reflector, reflect_dom_object}; +use dom::bindings::str::DOMString; +use dom::globalscope::GlobalScope; +use dom::performance::PerformanceEntryList; +use dom::performanceentry::PerformanceEntry; +use dom_struct::dom_struct; + +#[dom_struct] +pub struct PerformanceObserverEntryList { + reflector_: Reflector, + entries: DOMRefCell, +} + +impl PerformanceObserverEntryList { + fn new_inherited(entries: PerformanceEntryList) -> PerformanceObserverEntryList { + PerformanceObserverEntryList { + reflector_: Reflector::new(), + entries: DOMRefCell::new(entries), + } + } + + #[allow(unrooted_must_root)] + pub fn new(global: &GlobalScope, entries: PerformanceEntryList) + -> Root { + let observer_entry_list = PerformanceObserverEntryList::new_inherited(entries); + reflect_dom_object(box observer_entry_list, global, PerformanceObserverEntryListBinding::Wrap) + } +} + +impl PerformanceObserverEntryListMethods for PerformanceObserverEntryList { + // https://w3c.github.io/performance-timeline/#dom-performanceobserver + fn GetEntries(&self) -> Vec> { + self.entries.borrow().get_entries() + } + + // https://w3c.github.io/performance-timeline/#dom-performanceobserver + fn GetEntriesByType(&self, entry_type: DOMString) -> Vec> { + self.entries.borrow().get_entries_by_type(entry_type) + } + + // https://w3c.github.io/performance-timeline/#dom-performanceobserver + fn GetEntriesByName(&self, name: DOMString, entry_type: Option) + -> Vec> { + self.entries.borrow().get_entries_by_name(name, entry_type) + } +} -- cgit v1.2.3 From d090ce6689a69b8872362a4011bdb3fc87b1a93c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Lustin?= Date: Tue, 22 Aug 2017 15:20:51 +0200 Subject: Use `Filter buffer by name and type` algorithm implementation (fixes #18186) --- components/script/dom/performanceobserverentrylist.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 9c6a039cd4c..94f62248fbd 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -38,17 +38,17 @@ impl PerformanceObserverEntryList { impl PerformanceObserverEntryListMethods for PerformanceObserverEntryList { // https://w3c.github.io/performance-timeline/#dom-performanceobserver fn GetEntries(&self) -> Vec> { - self.entries.borrow().get_entries() + self.entries.borrow().get_entries_by_name_and_type(None, None) } // https://w3c.github.io/performance-timeline/#dom-performanceobserver fn GetEntriesByType(&self, entry_type: DOMString) -> Vec> { - self.entries.borrow().get_entries_by_type(entry_type) + self.entries.borrow().get_entries_by_name_and_type(None, Some(entry_type)) } // https://w3c.github.io/performance-timeline/#dom-performanceobserver fn GetEntriesByName(&self, name: DOMString, entry_type: Option) -> Vec> { - self.entries.borrow().get_entries_by_name(name, entry_type) + self.entries.borrow().get_entries_by_name_and_type(Some(name), entry_type) } } -- cgit v1.2.3 From 0e3c54c1911ba2c3bf305ee04f04fcd9bf2fc2fe Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Mon, 25 Sep 2017 23:30:24 +0200 Subject: Rename dom::bindings::js to dom::bindings::root --- components/script/dom/performanceobserverentrylist.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 94f62248fbd..2b127ec75f7 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -5,8 +5,8 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding::PerformanceObserverEntryListMethods; -use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; +use dom::bindings::root::Root; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; use dom::performance::PerformanceEntryList; -- cgit v1.2.3 From 577370746e2ce3da7fa25a20b8e1bbeed319df65 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 26 Sep 2017 01:32:40 +0200 Subject: Rename DOMRefCell to DomRefCell I don't want to do such a gratuitous rename, but with all the other types now having "Dom" as part of their name, and especially with "DomOnceCell", I feel like the other cell type that we already have should also follow the convention. That argument loses weight though when we realise there is still DOMString and other things. --- components/script/dom/performanceobserverentrylist.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 2b127ec75f7..558ad749e5d 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use dom::bindings::cell::DOMRefCell; +use dom::bindings::cell::DomRefCell; use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding::PerformanceObserverEntryListMethods; use dom::bindings::reflector::{Reflector, reflect_dom_object}; @@ -16,14 +16,14 @@ use dom_struct::dom_struct; #[dom_struct] pub struct PerformanceObserverEntryList { reflector_: Reflector, - entries: DOMRefCell, + entries: DomRefCell, } impl PerformanceObserverEntryList { fn new_inherited(entries: PerformanceEntryList) -> PerformanceObserverEntryList { PerformanceObserverEntryList { reflector_: Reflector::new(), - entries: DOMRefCell::new(entries), + entries: DomRefCell::new(entries), } } -- cgit v1.2.3 From f87c2a8d7616112ca924e30292db2d244cf87eec Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 26 Sep 2017 01:53:40 +0200 Subject: Rename Root to DomRoot In a later PR, DomRoot will become a type alias of Root>, where Root will be able to handle all the things that need to be rooted that have a stable traceable address that doesn't move for the whole lifetime of the root. Stay tuned. --- components/script/dom/performanceobserverentrylist.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 558ad749e5d..70f329952d8 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -6,7 +6,7 @@ use dom::bindings::cell::DomRefCell; use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding::PerformanceObserverEntryListMethods; use dom::bindings::reflector::{Reflector, reflect_dom_object}; -use dom::bindings::root::Root; +use dom::bindings::root::DomRoot; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; use dom::performance::PerformanceEntryList; @@ -29,7 +29,7 @@ impl PerformanceObserverEntryList { #[allow(unrooted_must_root)] pub fn new(global: &GlobalScope, entries: PerformanceEntryList) - -> Root { + -> DomRoot { let observer_entry_list = PerformanceObserverEntryList::new_inherited(entries); reflect_dom_object(box observer_entry_list, global, PerformanceObserverEntryListBinding::Wrap) } @@ -37,18 +37,18 @@ impl PerformanceObserverEntryList { impl PerformanceObserverEntryListMethods for PerformanceObserverEntryList { // https://w3c.github.io/performance-timeline/#dom-performanceobserver - fn GetEntries(&self) -> Vec> { + fn GetEntries(&self) -> Vec> { self.entries.borrow().get_entries_by_name_and_type(None, None) } // https://w3c.github.io/performance-timeline/#dom-performanceobserver - fn GetEntriesByType(&self, entry_type: DOMString) -> Vec> { + fn GetEntriesByType(&self, entry_type: DOMString) -> Vec> { self.entries.borrow().get_entries_by_name_and_type(None, Some(entry_type)) } // https://w3c.github.io/performance-timeline/#dom-performanceobserver fn GetEntriesByName(&self, name: DOMString, entry_type: Option) - -> Vec> { + -> Vec> { self.entries.borrow().get_entries_by_name_and_type(Some(name), entry_type) } } -- cgit v1.2.3 From aa15dc269f41503d81ad44cd7e85d69e6f4aeac7 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Mon, 16 Oct 2017 14:35:30 +0200 Subject: Remove use of unstable box syntax. http://www.robohornet.org gives a score of 101.36 on master, and 102.68 with this PR. The latter is slightly better, but probably within noise level. So it looks like this PR does not affect DOM performance. This is expected since `Box::new` is defined as: ```rust impl Box { #[inline(always)] pub fn new(x: T) -> Box { box x } } ``` With inlining, it should compile to the same as box syntax. --- components/script/dom/performanceobserverentrylist.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 70f329952d8..4721a5bf440 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -31,7 +31,7 @@ impl PerformanceObserverEntryList { pub fn new(global: &GlobalScope, entries: PerformanceEntryList) -> DomRoot { let observer_entry_list = PerformanceObserverEntryList::new_inherited(entries); - reflect_dom_object(box observer_entry_list, global, PerformanceObserverEntryListBinding::Wrap) + reflect_dom_object(Box::new(observer_entry_list), global, PerformanceObserverEntryListBinding::Wrap) } } -- cgit v1.2.3 From c37a345dc9f4dda6ea29c42f96f6c7201c42cbac Mon Sep 17 00:00:00 2001 From: chansuke Date: Tue, 18 Sep 2018 23:24:15 +0900 Subject: Format script component --- .../script/dom/performanceobserverentrylist.rs | 31 ++++++++++++++++------ 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 4721a5bf440..5b45a7267fb 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -28,27 +28,42 @@ impl PerformanceObserverEntryList { } #[allow(unrooted_must_root)] - pub fn new(global: &GlobalScope, entries: PerformanceEntryList) - -> DomRoot { + pub fn new( + global: &GlobalScope, + entries: PerformanceEntryList, + ) -> DomRoot { let observer_entry_list = PerformanceObserverEntryList::new_inherited(entries); - reflect_dom_object(Box::new(observer_entry_list), global, PerformanceObserverEntryListBinding::Wrap) + reflect_dom_object( + Box::new(observer_entry_list), + global, + PerformanceObserverEntryListBinding::Wrap, + ) } } impl PerformanceObserverEntryListMethods for PerformanceObserverEntryList { // https://w3c.github.io/performance-timeline/#dom-performanceobserver fn GetEntries(&self) -> Vec> { - self.entries.borrow().get_entries_by_name_and_type(None, None) + self.entries + .borrow() + .get_entries_by_name_and_type(None, None) } // https://w3c.github.io/performance-timeline/#dom-performanceobserver fn GetEntriesByType(&self, entry_type: DOMString) -> Vec> { - self.entries.borrow().get_entries_by_name_and_type(None, Some(entry_type)) + self.entries + .borrow() + .get_entries_by_name_and_type(None, Some(entry_type)) } // https://w3c.github.io/performance-timeline/#dom-performanceobserver - fn GetEntriesByName(&self, name: DOMString, entry_type: Option) - -> Vec> { - self.entries.borrow().get_entries_by_name_and_type(Some(name), entry_type) + fn GetEntriesByName( + &self, + name: DOMString, + entry_type: Option, + ) -> Vec> { + self.entries + .borrow() + .get_entries_by_name_and_type(Some(name), entry_type) } } -- cgit v1.2.3 From 45f7199eee82c66637ec68287eafa40a651001c4 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Thu, 1 Nov 2018 23:45:06 +0100 Subject: `cargo fix --edition` --- components/script/dom/performanceobserverentrylist.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 5b45a7267fb..0fcac36848c 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -2,15 +2,15 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use dom::bindings::cell::DomRefCell; -use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; -use dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding::PerformanceObserverEntryListMethods; -use dom::bindings::reflector::{Reflector, reflect_dom_object}; -use dom::bindings::root::DomRoot; -use dom::bindings::str::DOMString; -use dom::globalscope::GlobalScope; -use dom::performance::PerformanceEntryList; -use dom::performanceentry::PerformanceEntry; +use crate::dom::bindings::cell::DomRefCell; +use crate::dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; +use crate::dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding::PerformanceObserverEntryListMethods; +use crate::dom::bindings::reflector::{Reflector, reflect_dom_object}; +use crate::dom::bindings::root::DomRoot; +use crate::dom::bindings::str::DOMString; +use crate::dom::globalscope::GlobalScope; +use crate::dom::performance::PerformanceEntryList; +use crate::dom::performanceentry::PerformanceEntry; use dom_struct::dom_struct; #[dom_struct] -- cgit v1.2.3 From 9e92eb205a2a12fe0be883e42cb7f82deebc9031 Mon Sep 17 00:00:00 2001 From: Pyfisch Date: Tue, 6 Nov 2018 20:38:02 +0100 Subject: Reorder imports --- components/script/dom/performanceobserverentrylist.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 0fcac36848c..929e41a6e88 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -5,7 +5,7 @@ use crate::dom::bindings::cell::DomRefCell; use crate::dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; use crate::dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding::PerformanceObserverEntryListMethods; -use crate::dom::bindings::reflector::{Reflector, reflect_dom_object}; +use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::str::DOMString; use crate::dom::globalscope::GlobalScope; -- cgit v1.2.3 From a1a14459c141afc6ac6771b8a6c9ca374537edf2 Mon Sep 17 00:00:00 2001 From: Jan Andre Ikenmeyer Date: Mon, 19 Nov 2018 14:47:12 +0100 Subject: Update MPL license to https (part 3) --- components/script/dom/performanceobserverentrylist.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index 929e41a6e88..e33b6b1b26e 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -1,6 +1,6 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::dom::bindings::cell::DomRefCell; use crate::dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; -- cgit v1.2.3 From 3ea6d87bcc37167464e856949a4b9b77d0e9318a Mon Sep 17 00:00:00 2001 From: YUAN LYU Date: Fri, 20 Mar 2020 22:14:18 -0400 Subject: Add trait DomObjectWrap to provide WRAP function --- components/script/dom/performanceobserverentrylist.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'components/script/dom/performanceobserverentrylist.rs') diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs index e33b6b1b26e..f96e063153e 100644 --- a/components/script/dom/performanceobserverentrylist.rs +++ b/components/script/dom/performanceobserverentrylist.rs @@ -3,7 +3,6 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::dom::bindings::cell::DomRefCell; -use crate::dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding; use crate::dom::bindings::codegen::Bindings::PerformanceObserverEntryListBinding::PerformanceObserverEntryListMethods; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::root::DomRoot; @@ -33,11 +32,7 @@ impl PerformanceObserverEntryList { entries: PerformanceEntryList, ) -> DomRoot { let observer_entry_list = PerformanceObserverEntryList::new_inherited(entries); - reflect_dom_object( - Box::new(observer_entry_list), - global, - PerformanceObserverEntryListBinding::Wrap, - ) + reflect_dom_object(Box::new(observer_entry_list), global) } } -- cgit v1.2.3