diff options
author | Josh Matthews <josh@joshmatthews.net> | 2024-08-15 18:20:52 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-15 22:20:52 +0000 |
commit | 3cc91e655f4119d15fa226cabe8e2f66be3d3c58 (patch) | |
tree | 5d95e401c553099ef8166ced29bb8e60c72c0b00 /components/script | |
parent | a34920b6058016f026c2b710224b9227826fcf85 (diff) | |
download | servo-3cc91e655f4119d15fa226cabe8e2f66be3d3c58.tar.gz servo-3cc91e655f4119d15fa226cabe8e2f66be3d3c58.zip |
Remove many explicit reflow calls (#33067)
* Remove explicit reflow for iframe content updates.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Remove explicit reflow for timers.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Remove explicit reflow for MouseEvent.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Remove explicit reflow for key events.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Remove explicit reflow for document load.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Remove explicit reflow for iframe load.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Remove unused reflow reasons.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Fix warnings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/document.rs | 11 | ||||
-rw-r--r-- | components/script/dom/htmliframeelement.rs | 7 | ||||
-rw-r--r-- | components/script/dom/window.rs | 10 |
3 files changed, 1 insertions, 27 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index bd4773439b3..048628e805f 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -1352,9 +1352,6 @@ impl Document { self.commit_focus_transaction(FocusType::Element); self.maybe_fire_dblclick(client_point, node, pressed_mouse_buttons); } - - self.window - .reflow(ReflowGoal::Full, ReflowReason::MouseEvent); } fn maybe_fire_dblclick( @@ -1570,8 +1567,6 @@ impl Document { // If the target has changed then store the current mouse over target for next frame. if target_has_changed { prev_mouse_over_target.set(maybe_new_target.as_deref()); - self.window - .reflow(ReflowGoal::Full, ReflowReason::MouseEvent); } } @@ -1772,8 +1767,6 @@ impl Document { let event = event.upcast::<Event>(); let result = event.fire(&target); - window.reflow(ReflowGoal::Full, ReflowReason::MouseEvent); - match result { EventStatus::Canceled => TouchEventResult::Processed(false), EventStatus::NotCanceled => TouchEventResult::Processed(true), @@ -1857,8 +1850,6 @@ impl Document { } } } - - self.window.reflow(ReflowGoal::Full, ReflowReason::KeyEvent); } pub fn ime_dismissed(&self) { @@ -2363,8 +2354,6 @@ impl Document { // http://w3c.github.io/navigation-timing/#widl-PerformanceNavigationTiming-loadEventEnd update_with_current_time_ms(&document.load_event_end); - window.reflow(ReflowGoal::Full, ReflowReason::DocumentLoaded); - if let Some(fragment) = document.url().fragment() { document.check_and_scroll_fragment(fragment); } diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 0ccf0fa7661..73edda35b33 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -10,7 +10,6 @@ use dom_struct::dom_struct; use html5ever::{local_name, namespace_url, ns, LocalName, Prefix}; use js::rust::HandleObject; use profile_traits::ipc as ProfiledIpc; -use script_layout_interface::ReflowGoal; use script_traits::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed}; use script_traits::{ HistoryEntryReplacement, IFrameLoadInfo, IFrameLoadInfoWithData, JsEvalResult, LoadData, @@ -40,7 +39,6 @@ use crate::dom::node::{ document_from_node, window_from_node, BindContext, Node, NodeDamage, UnbindContext, }; use crate::dom::virtualmethods::VirtualMethods; -use crate::dom::window::ReflowReason; use crate::dom::windowproxy::WindowProxy; use crate::script_thread::ScriptThread; @@ -420,7 +418,7 @@ impl HTMLIFrameElement { self.upcast::<Node>().dirty(NodeDamage::OtherNodeDamage); let window = window_from_node(self); - window.reflow(ReflowGoal::Full, ReflowReason::FramedContentChanged); + window.add_pending_reflow(); } fn new_inherited( @@ -500,9 +498,6 @@ impl HTMLIFrameElement { LoadBlocker::terminate(&mut blocker); // TODO Step 5 - unset child document `mut iframe load` flag - - let window = window_from_node(self); - window.reflow(ReflowGoal::Full, ReflowReason::IFrameLoadEvent); } } diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index af01137b8e1..00f03df0e21 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -164,23 +164,14 @@ enum WindowState { #[derive(Debug, MallocSizeOf)] pub enum ReflowReason { CachedPageNeededReflow, - DOMContentLoaded, - DocumentLoaded, ElementStateChanged, FirstLoad, - FramedContentChanged, - IFrameLoadEvent, - ImageLoaded, - KeyEvent, MissingExplicitReflow, - MouseEvent, PendingReflow, Query, RefreshTick, RequestAnimationFrame, ScrollFromScript, - StylesheetLoaded, - Timer, Viewport, WindowResize, WorkletLoaded, @@ -2320,7 +2311,6 @@ impl Window { pub fn handle_fire_timer(&self, timer_id: TimerEventId) { self.upcast::<GlobalScope>().fire_timer(timer_id); - self.reflow(ReflowGoal::Full, ReflowReason::Timer); } pub fn set_window_size(&self, size: WindowSizeData) { |