From a93b778b5c9370b5c0cf42f788e65982c001234b Mon Sep 17 00:00:00 2001 From: Pauan Date: Wed, 22 Apr 2020 16:12:14 +0200 Subject: [PATCH] Fixing bug with Firefox extension content scripts (#2099) --- crates/js-sys/src/lib.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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() {