diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index debc67d2..fb7bff4f 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -4747,9 +4747,11 @@ pub fn global() -> Object { fn get_global() -> Result; } - let static_object = Global::get_global_this() - .or_else(|_| Global::get_self()) + // The order is important: in Firefox Extension Content Scripts `globalThis` + // is a Sandbox (not Window), so `globalThis` must be checked after `window`. + let static_object = Global::get_self() .or_else(|_| Global::get_window()) + .or_else(|_| Global::get_global_this()) .or_else(|_| Global::get_global()); if let Ok(obj) = static_object { if !obj.is_undefined() {