From cf80c8b720d6c83678a0d6130830bfcdba717da1 Mon Sep 17 00:00:00 2001 From: Jane <5373400+janeoa@users.noreply.github.com> Date: Wed, 20 May 2026 15:32:08 +0200 Subject: [PATCH 1/4] Expose is_servo_internal for gc outside about scope Signed-off-by: Jane <5373400+janeoa@users.noreply.github.com> --- components/config/prefs.rs | 2 ++ components/script/dom/servointernals.rs | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/components/config/prefs.rs b/components/config/prefs.rs index f242b34ca06ff..f680584fe6b51 100644 --- a/components/config/prefs.rs +++ b/components/config/prefs.rs @@ -183,6 +183,7 @@ pub struct Preferences { pub dom_serviceworker_timeout_seconds: i64, // feature: SharedWorker | #7458 | Web/API/SharedWorker pub dom_sharedworker_enabled: bool, + pub dom_servo_gc_enabled: bool, pub dom_servo_helpers_enabled: bool, pub dom_servoparser_async_html_tokenizer_enabled: bool, pub dom_testbinding_enabled: bool, @@ -399,6 +400,7 @@ impl Preferences { dom_serviceworker_enabled: false, dom_serviceworker_timeout_seconds: 60, dom_sharedworker_enabled: false, + dom_servo_gc_enabled: false, dom_servo_helpers_enabled: false, dom_servoparser_async_html_tokenizer_enabled: false, dom_testbinding_enabled: false, diff --git a/components/script/dom/servointernals.rs b/components/script/dom/servointernals.rs index 3a200441ae6f6..2cfbb0d717f94 100644 --- a/components/script/dom/servointernals.rs +++ b/components/script/dom/servointernals.rs @@ -218,7 +218,8 @@ impl ServoInternalsHelpers for ServoInternals { let global_scope = GlobalScope::from_context(*cx, InRealm::Already(&in_realm_proof)); let url = global_scope.get_url(); (url.scheme() == "about" && url.as_str() != "about:blank") || - ScriptThread::is_servo_privileged(url) + ScriptThread::is_servo_privileged(url) || + prefs::get().dom_servo_gc_enabled } } } From c86fb8225d98fda793d3af820a9e7600dfe3a5f3 Mon Sep 17 00:00:00 2001 From: Jane <5373400+janeoa@users.noreply.github.com> Date: Thu, 21 May 2026 10:37:17 +0200 Subject: [PATCH 2/4] Rename dom_servo_gc_enabled pref into to expose_servointernals_globally Signed-off-by: Jane <5373400+janeoa@users.noreply.github.com> --- components/config/prefs.rs | 6 ++++-- components/script/dom/servointernals.rs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/components/config/prefs.rs b/components/config/prefs.rs index f680584fe6b51..79d0f3d410cf4 100644 --- a/components/config/prefs.rs +++ b/components/config/prefs.rs @@ -183,7 +183,6 @@ pub struct Preferences { pub dom_serviceworker_timeout_seconds: i64, // feature: SharedWorker | #7458 | Web/API/SharedWorker pub dom_sharedworker_enabled: bool, - pub dom_servo_gc_enabled: bool, pub dom_servo_helpers_enabled: bool, pub dom_servoparser_async_html_tokenizer_enabled: bool, pub dom_testbinding_enabled: bool, @@ -350,6 +349,9 @@ pub struct Preferences { /// Whether to run accessibility tree integrity checks, and any other expensive checks. /// This should only be true in tests. pub expensive_accessibility_test_assertions_enabled: bool, + /// Exposes internal JS API functions that are usually restricted to `about:...` pages + /// Useful if you want to get memory report or force GC in a test page + pub expose_servointernals_globally: bool } impl Preferences { @@ -400,7 +402,6 @@ impl Preferences { dom_serviceworker_enabled: false, dom_serviceworker_timeout_seconds: 60, dom_sharedworker_enabled: false, - dom_servo_gc_enabled: false, dom_servo_helpers_enabled: false, dom_servoparser_async_html_tokenizer_enabled: false, dom_testbinding_enabled: false, @@ -518,6 +519,7 @@ impl Preferences { webgl_testing_context_creation_error: false, user_agent: String::new(), viewport_meta_enabled: false, + expose_servointernals_globally: false } } diff --git a/components/script/dom/servointernals.rs b/components/script/dom/servointernals.rs index 2cfbb0d717f94..50f9ea7894479 100644 --- a/components/script/dom/servointernals.rs +++ b/components/script/dom/servointernals.rs @@ -219,7 +219,7 @@ impl ServoInternalsHelpers for ServoInternals { let url = global_scope.get_url(); (url.scheme() == "about" && url.as_str() != "about:blank") || ScriptThread::is_servo_privileged(url) || - prefs::get().dom_servo_gc_enabled + prefs::get().expose_servointernals_globally } } } From 97197bd860fc5d19401b5344b81738ee157457e6 Mon Sep 17 00:00:00 2001 From: Jane <5373400+janeoa@users.noreply.github.com> Date: Thu, 21 May 2026 10:43:32 +0200 Subject: [PATCH 3/4] Address mach test tidy comment on trailing coma Signed-off-by: Jane <5373400+janeoa@users.noreply.github.com> --- components/config/prefs.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/config/prefs.rs b/components/config/prefs.rs index 79d0f3d410cf4..4b04ac1502864 100644 --- a/components/config/prefs.rs +++ b/components/config/prefs.rs @@ -351,7 +351,7 @@ pub struct Preferences { pub expensive_accessibility_test_assertions_enabled: bool, /// Exposes internal JS API functions that are usually restricted to `about:...` pages /// Useful if you want to get memory report or force GC in a test page - pub expose_servointernals_globally: bool + pub expose_servointernals_globally: bool, } impl Preferences { @@ -519,7 +519,7 @@ impl Preferences { webgl_testing_context_creation_error: false, user_agent: String::new(), viewport_meta_enabled: false, - expose_servointernals_globally: false + expose_servointernals_globally: false, } } From 5cfab3136dc3296e3b3ac17a86628c4245474898 Mon Sep 17 00:00:00 2001 From: Asset Malik <5373400+janeoa@users.noreply.github.com> Date: Thu, 21 May 2026 11:49:06 +0200 Subject: [PATCH 4/4] Update components/config/prefs.rs comment Co-authored-by: Narfinger Signed-off-by: Asset Malik <5373400+janeoa@users.noreply.github.com> --- components/config/prefs.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/config/prefs.rs b/components/config/prefs.rs index 4b04ac1502864..fab5ce12d3e2f 100644 --- a/components/config/prefs.rs +++ b/components/config/prefs.rs @@ -349,7 +349,7 @@ pub struct Preferences { /// Whether to run accessibility tree integrity checks, and any other expensive checks. /// This should only be true in tests. pub expensive_accessibility_test_assertions_enabled: bool, - /// Exposes internal JS API functions that are usually restricted to `about:...` pages + /// Exposes internal JS API functions that are usually restricted to `about:...` pages for every page /// Useful if you want to get memory report or force GC in a test page pub expose_servointernals_globally: bool, }