Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option::unwrap() on None in script::dom::document::ElementFromPoint #18478

Open
mateon1 opened this issue Sep 13, 2017 · 2 comments
Open

Option::unwrap() on None in script::dom::document::ElementFromPoint #18478

mateon1 opened this issue Sep 13, 2017 · 2 comments

Comments

@mateon1
Copy link
Contributor

@mateon1 mateon1 commented Sep 13, 2017

Found on http://sta.sh

called `Option::unwrap()` on a `None` value (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(0) }, at /checkout/src/libcore/option.rs:335)
stack backtrace:
   0:     0x55d23f0292e4 - backtrace::backtrace::libunwind::trace
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/libunwind.rs:53
                         - backtrace::backtrace::trace<closure>
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/mod.rs:42
   1:     0x55d23f02386f - backtrace::capture::{{impl}}::new
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/capture.rs:64
   2:     0x55d23a756ccc - servo::main::{{closure}}
                        at /shared/dev/rust/servo/ports/servo/main.rs:130
   3:     0x55d241a3d316 - std::panicking::rust_panic_with_hook
                        at /checkout/src/libstd/panicking.rs:612
   4:     0x55d241a3d134 - std::panicking::begin_panic<alloc::string::String>
                        at /checkout/src/libstd/panicking.rs:572
   5:     0x55d241a3d0a9 - std::panicking::begin_panic_fmt
                        at /checkout/src/libstd/panicking.rs:522
   6:     0x55d241a3d03a - std::panicking::rust_begin_panic
                        at /checkout/src/libstd/panicking.rs:498
   7:     0x55d241a77660 - core::panicking::panic_fmt
                        at /checkout/src/libcore/panicking.rs:71
   8:     0x55d241a77596 - core::panicking::panic
                        at /checkout/src/libcore/panicking.rs:51
   9:     0x55d23c6299e6 - core::option::{{impl}}::unwrap<script_traits::WindowSizeData>
                        at /checkout/src/libcore/macros.rs:32
  10:     0x55d23cdd0a1e - script::dom::document::{{impl}}::ElementFromPoint
                        at /shared/dev/rust/servo/components/script/dom/document.rs:3627
  11:     0x55d23ea2202b - script::dom::bindings::codegen::Bindings::DocumentBinding::DocumentBinding::elementFromPoint::{{closure}}
                        at /shared/dev/rust/servo/target/debug/build/script-d00ee28330b6ecd4/out/Bindings/DocumentBinding.rs:3535
  12:     0x55d23e786e6f - core::ops::function::FnOnce::call_once<closure,()>
                        at /checkout/src/libcore/ops/function.rs:223
  13:     0x55d23e417aca - std::panic::{{impl}}::call_once<bool,closure>
                        at /checkout/src/libstd/panic.rs:296
  14:     0x55d23d30363c - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,bool>
                        at /checkout/src/libstd/panicking.rs:480
  15:     0x55d241a443bc - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  16:     0x55d23d1b134d - std::panicking::try<bool,std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  17:     0x55d23e6af961 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,bool>
                        at /checkout/src/libstd/panic.rs:361
  18:     0x55d23e4c2bd2 - js::panic::wrap_panic<std::panic::AssertUnwindSafe<closure>,bool>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/panic.rs:22
  19:     0x55d23cf7e534 - script::dom::bindings::codegen::Bindings::DocumentBinding::DocumentBinding::elementFromPoint
                        at /shared/dev/rust/servo/target/debug/build/script-d00ee28330b6ecd4/out/Bindings/DocumentBinding.rs:3506
  20:     0x55d23f271fee - CallJitMethodOp
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/jsglue.cpp:516
  21:     0x55d23cd6d6be - script::dom::bindings::utils::generic_call
                        at /shared/dev/rust/servo/components/script/dom/bindings/utils.rs:446
  22:     0x55d23cd6d891 - script::dom::bindings::utils::generic_method
                        at /shared/dev/rust/servo/components/script/dom/bindings/utils.rs:454
  23:     0x55d23f8edf7b - _ZN2js12CallJSNativeEP9JSContextPFbS1_jPN2JS5ValueEERKNS2_8CallArgsE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxtinlines.h:232
  24:     0x55d23f8bc3d3 - _ZN2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstructE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:453
  25:     0x55d23f8bc6fa - InternalCall
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:498
  26:     0x55d23f8bc724 - _ZN2js13CallFromStackEP9JSContextRKN2JS8CallArgsE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:504
  27:     0x55d23f8c9750 - Interpret
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:2873
  28:     0x55d23f8bc055 - _ZN2js9RunScriptEP9JSContextRNS_8RunStateE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:399
  29:     0x55d23f8bc4a2 - _ZN2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstructE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:471
  30:     0x55d23f8bc6fa - InternalCall
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:498
  31:     0x55d23f8bc724 - _ZN2js13CallFromStackEP9JSContextRKN2JS8CallArgsE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:504
  32:     0x55d23f2ab880 - DoCallFallback
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jit/BaselineIC.cpp:5970
  33:     0x7f563aba7e23 - <unknown>
ERROR:servo: called `Option::unwrap()` on a `None` value
@jdm
Copy link
Member

@jdm jdm commented Sep 13, 2017

Looks like the window is missing a window size at the point when we execute JS.

@mateon1
Copy link
Contributor Author

@mateon1 mateon1 commented Sep 19, 2017

Testcase (requires two files):

index.html

<iframe src="./aux.html" style="visibility: hidden"></iframe>

aux.html

<script>document.elementFromPoint(0,0);</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.