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

Replace initial about:blank on navigation #16848

Closed

Conversation

cbrewster
Copy link
Contributor

@cbrewster cbrewster commented May 12, 2017


  • There are tests for these changes OR
  • These changes do not require tests because _____

This change is Reviewable

@highfive
Copy link

Heads up! This PR modifies the following files:

  • @fitzgen: components/script/dom/htmliframeelement.rs
  • @KiChjang: components/script/dom/htmliframeelement.rs

@highfive highfive added the S-awaiting-review There is new code that needs to be reviewed. label May 12, 2017
@cbrewster
Copy link
Contributor Author

@bors-servo try

@bors-servo
Copy link
Contributor

⌛ Trying commit a6f7117 with merge 171cb09...

bors-servo pushed a commit that referenced this pull request May 12, 2017
Replace initial about:blank on navigation

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14720 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
@bors-servo
Copy link
Contributor

💔 Test failed - linux-dev

@highfive highfive added the S-tests-failed The changes caused existing tests to fail. label May 12, 2017
@cbrewster cbrewster force-pushed the replace_initial_about_blank branch from a6f7117 to dce09a1 Compare May 12, 2017 23:37
@highfive highfive removed the S-tests-failed The changes caused existing tests to fail. label May 12, 2017
@asajeffrey
Copy link
Member

LGTM. Squash, update the manifest, and r=me.

Add test for initial about:blank replacement
@cbrewster cbrewster force-pushed the replace_initial_about_blank branch from dce09a1 to d357783 Compare May 17, 2017 16:52
@cbrewster
Copy link
Contributor Author

@bors-servo r=asajeffrey

@bors-servo
Copy link
Contributor

📌 Commit d357783 has been approved by asajeffrey

@highfive highfive assigned asajeffrey and unassigned metajack May 17, 2017
@highfive highfive added S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. and removed S-awaiting-review There is new code that needs to be reviewed. labels May 17, 2017
@bors-servo
Copy link
Contributor

⌛ Testing commit d357783 with merge beeb5c2...

bors-servo pushed a commit that referenced this pull request May 17, 2017
…ffrey

Replace initial about:blank on navigation

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14720 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16848)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

💔 Test failed - linux-rel-wpt

@highfive highfive added S-tests-failed The changes caused existing tests to fail. and removed S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. labels May 17, 2017
@jdm
Copy link
Member

jdm commented May 18, 2017

  ▶ CRASH [expected OK] /_mozilla/mozilla/cross-origin-objects/cross-origin-postMessage.html
  │ 
  │ VMware, Inc.
  │ Gallium 0.4 on softpipe
  │ 3.3 (Core Profile) Mesa 12.0.1
  │ called `Option::unwrap()` on a `None` value (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(1) }, at /checkout/src/libcore/option.rs:329)
  │ stack backtrace:
  │    0:     0x7ff7be4a5d3c - backtrace::backtrace::trace::haa53f4880ff627c6
  │    1:     0x7ff7be4a6202 - backtrace::capture::Backtrace::new::h5f3de869c0349b3d
  │    2:     0x7ff7bcd99f25 - servo::main::{{closure}}::hc2262116bcc3d90c
  │    3:     0x7ff7bedf235a - std::panicking::rust_panic_with_hook
  │                         at /checkout/src/libstd/panicking.rs:550
  │    4:     0x7ff7bedf21a4 - std::panicking::begin_panic<collections::string::String>
  │                         at /checkout/src/libstd/panicking.rs:511
  │    5:     0x7ff7bedf2129 - std::panicking::begin_panic_fmt
  │                         at /checkout/src/libstd/panicking.rs:495
  │    6:     0x7ff7bedf20b7 - std::panicking::rust_begin_panic
  │                         at /checkout/src/libstd/panicking.rs:471
  │    7:     0x7ff7bee1dd9d - core::panicking::panic_fmt
  │                         at /checkout/src/libcore/panicking.rs:69
  │    8:     0x7ff7bee1dcd4 - core::panicking::panic
  │                         at /checkout/src/libcore/panicking.rs:49
  │    9:     0x7ff7bd582b09 - <script::dom::window::PostMessageHandler as script::script_thread::Runnable>::handler::h7249eed1a155d424
  │   10:     0x7ff7bd5d9135 - script::script_thread::ScriptThread::handle_msg_from_script::h0dbdd55b53278d41
  │   11:     0x7ff7bd5d0017 - script::script_thread::ScriptThread::handle_msgs::{{closure}}::h9e655a1ef871076f
  │   12:     0x7ff7bd5cb2e6 - script::script_thread::ScriptThread::handle_msgs::h45f8388d7e815d4f
  │   13:     0x7ff7bd040737 - std::sys_common::backtrace::__rust_begin_short_backtrace::h159e20038beb8f87
  │   14:     0x7ff7bd07e905 - std::panicking::try::do_call::h20908c8b38fdf297
  │   15:     0x7ff7bedf947a - panic_unwind::__rust_maybe_catch_panic
  │                         at /checkout/src/libpanic_unwind/lib.rs:98
  │   16:     0x7ff7bd262f23 - <F as alloc::boxed::FnBox<A>>::call_box::he85ee2aa097e69b3
  │   17:     0x7ff7bedf0ed5 - alloc::boxed::{{impl}}::call_once<(),()>
  │                         at /checkout/src/liballoc/boxed.rs:658
  │                          - std::sys_common::thread::start_thread
  │                         at /checkout/src/libstd/sys_common/thread.rs:21
  │                          - std::sys::imp::thread::{{impl}}::new::thread_start
  │                         at /checkout/src/libstd/sys/unix/thread.rs:84
  │   18:     0x7ff7bacb1183 - start_thread
  │   19:     0x7ff7ba7c8bec - clone
  │   20:                0x0 - <unknown>
  │ ERROR:servo: called `Option::unwrap()` on a `None` value
  └ Pipeline failed in hard-fail mode.  Crashing!

  ▶ Unexpected subtest result in /_mozilla/mozilla/mozbrowser/private_browsing.html:
  │ FAIL [expected PASS] Private browsing
  │   → assert_true: expected true got false
  │ 
  │ privateFrame.onload<@http://web-platform.test:8000/_mozilla/mozilla/mozbrowser/private_browsing.html:21:9
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1406:20
  └ Test.prototype.step_func/<@http://web-platform.test:8000/resources/testharness.js:1430:20

  ▶ TIMEOUT [expected OK] /_mozilla/mozilla/mozbrowser/mozbrowserlocationchange_event.html
  │ 
  │ VMware, Inc.
  │ Gallium 0.4 on softpipe
  └ 3.3 (Core Profile) Mesa 12.0.1

  ▶ Unexpected subtest result in /_mozilla/mozilla/mozbrowser/mozbrowserlocationchange_event.html:
  │ TIMEOUT [expected PASS] Browser API; mozbrowserlocationchange event
  └   → Test timed out

  ▶ CRASH [expected OK] /_mozilla/mozilla/cross-origin-objects/cross-origin-objects.html
  │ 
  │ VMware, Inc.
  │ Gallium 0.4 on softpipe
  │ 3.3 (Core Profile) Mesa 12.0.1
  │ called `Option::unwrap()` on a `None` value (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(1) }, at /checkout/src/libcore/option.rs:329)
  │ stack backtrace:
  │    0:     0x7fa0c7009d3c - backtrace::backtrace::trace::haa53f4880ff627c6
  │    1:     0x7fa0c700a202 - backtrace::capture::Backtrace::new::h5f3de869c0349b3d
  │    2:     0x7fa0c58fdf25 - servo::main::{{closure}}::hc2262116bcc3d90c
  │    3:     0x7fa0c795635a - std::panicking::rust_panic_with_hook
  │                         at /checkout/src/libstd/panicking.rs:550
  │    4:     0x7fa0c79561a4 - std::panicking::begin_panic<collections::string::String>
  │                         at /checkout/src/libstd/panicking.rs:511
  │    5:     0x7fa0c7956129 - std::panicking::begin_panic_fmt
  │                         at /checkout/src/libstd/panicking.rs:495
  │    6:     0x7fa0c79560b7 - std::panicking::rust_begin_panic
  │                         at /checkout/src/libstd/panicking.rs:471
  │    7:     0x7fa0c7981d9d - core::panicking::panic_fmt
  │                         at /checkout/src/libcore/panicking.rs:69
  │    8:     0x7fa0c7981cd4 - core::panicking::panic
  │                         at /checkout/src/libcore/panicking.rs:49
  │    9:     0x7fa0c60d0b22 - script::dom::window::Window::window_proxy::h2adb5ae2a9db2f0f
  │   10:     0x7fa0c5c88f16 - std::panicking::try::do_call::h8919eb191333203c
  │   11:     0x7fa0c795d47a - panic_unwind::__rust_maybe_catch_panic
  │                         at /checkout/src/libpanic_unwind/lib.rs:98
  │   12:     0x7fa0c64195d7 - script::dom::bindings::codegen::Bindings::WindowBinding::WindowBinding::get_self::h46dd29eb6f704aec
  │   13:     0x7fa0c6470624 - CallJitGetterOp
  │   14:     0x7fa0c5ec018c - script::dom::bindings::utils::generic_call::h86cbfedc7c4ee9ad
  │   15:     0x7fa0c67cc580 - CallJSNative
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxtinlines.h:232
  │                          - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:453
  │   16:     0x7fa0c67cc734 - 2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:517
  │   17:     0x7fa0c67cc7dd - 2js10CallGetterEP9JSContextN2JS6HandleINS2_5ValueEEES5_NS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:631
  │   18:     0x7fa0c67cc88f - CallGetter
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.cpp:1737
  │   19:     0x7fa0c67ccc25 - GetExistingProperty<(js::AllowGC)1u>
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.cpp:1789
  │                          - NativeGetPropertyInline<(js::AllowGC)1u>
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.cpp:2012
  │                          - 2js17NativeGetPropertyEP9JSContextN2JS6HandleIPNS_12NativeObjectEEENS3_INS2_5ValueEEENS3_I4jsidEENS2_13MutableHandleIS7_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.cpp:2046
  │   20:     0x7fa0c6638b24 - GetProperty
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.h:1481
  │                          - _Z23JS_ForwardGetPropertyToP9JSContextN2JS6HandleIP8JSObjectEENS2_I4jsidEENS2_INS1_5ValueEEENS1_13MutableHandleIS8_EE
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:2527
  │   21:     0x7fa0c60e956d - script::dom::windowproxy::get::h9feb4a454744998f
  │   22:     0x7fa0c6728400 - 2js5Proxy3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/proxy/Proxy.cpp:310
  │   23:     0x7fa0c6724fa0 - GetProperty
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.h:1480
  │                          - K2js7Wrapper3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/proxy/Wrapper.cpp:143
  │   24:     0x7fa0c6721847 - K2js23CrossCompartmentWrapper3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/proxy/CrossCompartmentWrapper.cpp:205
  │   25:     0x7fa0c6728400 - 2js5Proxy3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/proxy/Proxy.cpp:310
  │   26:     0x7fa0c66dc3cb - GetProperty
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.h:1480
  │                          - 2js11GetPropertyEP9JSContextN2JS6HandleIP8JSObjectEES6_NS3_I4jsidEENS2_13MutableHandleINS2_5ValueEE
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsobj.h:839
  │   27:     0x7fa0c67c8de1 - GetObjectElementOperation
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter-inl.h:453
  │                          - GetElementOperation
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter-inl.h:558
  │                          - Interpret
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:2711
  │   28:     0x7fa0c67cc14b - 2js9RunScriptEP9JSContextRNS_8RunState
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:399
  │   29:     0x7fa0c67cc328 - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:471
  │   30:     0x7fa0c67cc734 - 2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:517
  │   31:     0x7fa0c66ca40f - 2js9fun_applyEP9JSContextjPN2JS5Value
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsfun.cpp:1325
  │   32:     0x7fa0c67cc580 - CallJSNative
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxtinlines.h:232
  │                          - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:453
  │   33:     0x7fa0c67beefe - CallFromStack
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:504
  │                          - Interpret
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:2873
  │   34:     0x7fa0c67cc14b - 2js9RunScriptEP9JSContextRNS_8RunState
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:399
  │   35:     0x7fa0c67cc328 - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:471
  │   36:     0x7fa0c67cc734 - 2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:517
  │   37:     0x7fa0c66ca40f - 2js9fun_applyEP9JSContextjPN2JS5Value
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsfun.cpp:1325
  │   38:     0x7fa0c67cc580 - CallJSNative
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxtinlines.h:232
  │                          - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:453
  │   39:     0x7fa0c67beefe - CallFromStack
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:504
  │                          - Interpret
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:2873
  │   40:     0x7fa0c67cc14b - 2js9RunScriptEP9JSContextRNS_8RunState
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:399
  │   41:     0x7fa0c67cc328 - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:471
  │   42:     0x7fa0c67cc734 - 2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:517
  │   43:     0x7fa0c6662e20 - _Z20JS_CallFunctionValueP9JSContextN2JS6HandleIP8JSObjectEENS2_INS1_5ValueEEERKNS1_16HandleValueArrayENS1_13MutableHandleIS6_EE
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:2781
  │   44:     0x7fa0c626b7cd - script::dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull::Call::h256624740c59fe56
  │   45:     0x7fa0c5f7fee6 - script::dom::eventtarget::CompiledEventListener::call_or_handle_event::h7009b025b13671b7
  │   46:     0x7fa0c5f78c81 - script::dom::event::invoke::hbb25d04970be2cbd
  │   47:     0x7fa0c5f77c11 - script::dom::event::Event::dispatch::h3b48c68010618af2
  │   48:     0x7fa0c5f823ee - script::dom::eventtarget::EventTarget::fire_event_with_params::hfe32e25e500f72b6
  │   49:     0x7fa0c5fcfb36 - script::dom::htmliframeelement::HTMLIFrameElement::iframe_load_event_steps::h660c87e860edbde8
  │   50:     0x7fa0c6134d14 - script::script_thread::ScriptThread::handle_msg_from_constellation::hcac718c60534e9e5
  │   51:     0x7fa0c6134143 - script::script_thread::ScriptThread::handle_msgs::{{closure}}::h9e655a1ef871076f
  │   52:     0x7fa0c612f2e6 - script::script_thread::ScriptThread::handle_msgs::h45f8388d7e815d4f
  │   53:     0x7fa0c5ba4737 - std::sys_common::backtrace::__rust_begin_short_backtrace::h159e20038beb8f87
  │   54:     0x7fa0c5be2905 - std::panicking::try::do_call::h20908c8b38fdf297
  │   55:     0x7fa0c795d47a - panic_unwind::__rust_maybe_catch_panic
  │                         at /checkout/src/libpanic_unwind/lib.rs:98
  │   56:     0x7fa0c5dc6f23 - <F as alloc::boxed::FnBox<A>>::call_box::he85ee2aa097e69b3
  │   57:     0x7fa0c7954ed5 - alloc::boxed::{{impl}}::call_once<(),()>
  │                         at /checkout/src/liballoc/boxed.rs:658
  │                          - std::sys_common::thread::start_thread
  │                         at /checkout/src/libstd/sys_common/thread.rs:21
  │                          - std::sys::imp::thread::{{impl}}::new::thread_start
  │                         at /checkout/src/libstd/sys/unix/thread.rs:84
  │   58:     0x7fa0c3815183 - start_thread
  │   59:     0x7fa0c332cbec - clone
  │   60:                0x0 - <unknown>
  │ ERROR:servo: called `Option::unwrap()` on a `None` value
  └ Pipeline failed in hard-fail mode.  Crashing!

  ▶ OK [expected ERROR] /html/dom/dynamic-markup-insertion/opening-the-input-stream/009.html

  ▶ Unexpected subtest result in /html/dom/dynamic-markup-insertion/opening-the-input-stream/009.html:
  │ FAIL [expected PASS] document.open replacing singleton
  │   → steps is undefined
  │ 
  └ onload@http://web-platform.test:8000/html/dom/dynamic-markup-insertion/opening-the-input-stream/009.html:32:3

  ▶ CRASH [expected ERROR] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_script.html
  │ 
  │ VMware, Inc.
  │ Gallium 0.4 on softpipe
  │ 3.3 (Core Profile) Mesa 12.0.1
  │ called `Option::unwrap()` on a `None` value (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(1) }, at /checkout/src/libcore/option.rs:329)
  │ stack backtrace:
  │    0:     0x7fb34bab1d3c - backtrace::backtrace::trace::haa53f4880ff627c6
  │    1:     0x7fb34bab2202 - backtrace::capture::Backtrace::new::h5f3de869c0349b3d
  │    2:     0x7fb34a3a5f25 - servo::main::{{closure}}::hc2262116bcc3d90c
  │    3:     0x7fb34c3fe35a - std::panicking::rust_panic_with_hook
  │                         at /checkout/src/libstd/panicking.rs:550
  │    4:     0x7fb34c3fe1a4 - std::panicking::begin_panic<collections::string::String>
  │                         at /checkout/src/libstd/panicking.rs:511
  │    5:     0x7fb34c3fe129 - std::panicking::begin_panic_fmt
  │                         at /checkout/src/libstd/panicking.rs:495
  │    6:     0x7fb34c3fe0b7 - std::panicking::rust_begin_panic
  │                         at /checkout/src/libstd/panicking.rs:471
  │    7:     0x7fb34c429d9d - core::panicking::panic_fmt
  │                         at /checkout/src/libcore/panicking.rs:69
  │    8:     0x7fb34c429cd4 - core::panicking::panic
  │                         at /checkout/src/libcore/panicking.rs:49
  │    9:     0x7fb34ab7b22b - <script::dom::window::Window as script::dom::bindings::codegen::Bindings::WindowBinding::WindowBinding::WindowMethods>::Location::he0f17b8604c37653
  │   10:     0x7fb34a728dd6 - std::panicking::try::do_call::h84d89e91da44a626
  │   11:     0x7fb34c40547a - panic_unwind::__rust_maybe_catch_panic
  │                         at /checkout/src/libpanic_unwind/lib.rs:98
  │   12:     0x7fb34aec1c07 - script::dom::bindings::codegen::Bindings::WindowBinding::WindowBinding::get_location::hbd5408c2699bef54
  │   13:     0x7fb34af18624 - CallJitGetterOp
  │   14:     0x7fb34a96818c - script::dom::bindings::utils::generic_call::h86cbfedc7c4ee9ad
  │   15:     0x7fb34b274580 - CallJSNative
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxtinlines.h:232
  │                          - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:453
  │   16:     0x7fb34b274734 - 2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:517
  │   17:     0x7fb34b2747dd - 2js10CallGetterEP9JSContextN2JS6HandleINS2_5ValueEEES5_NS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:631
  │   18:     0x7fb34b27488f - CallGetter
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.cpp:1737
  │   19:     0x7fb34b274c25 - GetExistingProperty<(js::AllowGC)1u>
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.cpp:1789
  │                          - NativeGetPropertyInline<(js::AllowGC)1u>
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.cpp:2012
  │                          - 2js17NativeGetPropertyEP9JSContextN2JS6HandleIPNS_12NativeObjectEEENS3_INS2_5ValueEEENS3_I4jsidEENS2_13MutableHandleIS7_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.cpp:2046
  │   20:     0x7fb34b0e0b24 - GetProperty
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.h:1481
  │                          - _Z23JS_ForwardGetPropertyToP9JSContextN2JS6HandleIP8JSObjectEENS2_I4jsidEENS2_INS1_5ValueEEENS1_13MutableHandleIS8_EE
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:2527
  │   21:     0x7fb34ab9156d - script::dom::windowproxy::get::h9feb4a454744998f
  │   22:     0x7fb34b1d0400 - 2js5Proxy3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/proxy/Proxy.cpp:310
  │   23:     0x7fb34b1ccfa0 - GetProperty
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/NativeObject.h:1480
  │                          - K2js7Wrapper3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/proxy/Wrapper.cpp:143
  │   24:     0x7fb34b1c9847 - K2js23CrossCompartmentWrapper3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/proxy/CrossCompartmentWrapper.cpp:205
  │   25:     0x7fb34b1d0400 - 2js5Proxy3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/proxy/Proxy.cpp:310
  │   26:     0x7fb34b2761d0 - GetProperty
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsobj.h:831
  │                          - 2js11GetPropertyEP9JSContextN2JS6HandleINS2_5ValueEEENS3_IPNS_12PropertyNameEEENS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:4161
  │   27:     0x7fb34b26753b - GetPropertyOperation
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:189
  │                          - Interpret
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:2590
  │   28:     0x7fb34b27414b - 2js9RunScriptEP9JSContextRNS_8RunState
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:399
  │   29:     0x7fb34b274328 - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:471
  │   30:     0x7fb34b274734 - 2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_E
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Interpreter.cpp:517
  │   31:     0x7fb34b10ae20 - _Z20JS_CallFunctionValueP9JSContextN2JS6HandleIP8JSObjectEENS2_INS1_5ValueEEERKNS1_16HandleValueArrayENS1_13MutableHandleIS6_EE
  │                         at /home/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:2781
  │   32:     0x7fb34ad2e67b - script::dom::bindings::codegen::Bindings::FunctionBinding::Function::Call::h805369e735159a68
  │   33:     0x7fb34aa37877 - script::dom::globalscope::GlobalScope::fire_timer::h8fa72269c74bb907
  │   34:     0x7fb34abdc0d1 - script::script_thread::ScriptThread::handle_msgs::{{closure}}::h9e655a1ef871076f
  │   35:     0x7fb34abd72e6 - script::script_thread::ScriptThread::handle_msgs::h45f8388d7e815d4f
  │   36:     0x7fb34a64c737 - std::sys_common::backtrace::__rust_begin_short_backtrace::h159e20038beb8f87
  │   37:     0x7fb34a68a905 - std::panicking::try::do_call::h20908c8b38fdf297
  │   38:     0x7fb34c40547a - panic_unwind::__rust_maybe_catch_panic
  │                         at /checkout/src/libpanic_unwind/lib.rs:98
  │   39:     0x7fb34a86ef23 - <F as alloc::boxed::FnBox<A>>::call_box::he85ee2aa097e69b3
  │   40:     0x7fb34c3fced5 - alloc::boxed::{{impl}}::call_once<(),()>
  │                         at /checkout/src/liballoc/boxed.rs:658
  │                          - std::sys_common::thread::start_thread
  │                         at /checkout/src/libstd/sys_common/thread.rs:21
  │                          - std::sys::imp::thread::{{impl}}::new::thread_start
  │                         at /checkout/src/libstd/sys/unix/thread.rs:84
  │   41:     0x7fb3482bd183 - start_thread
  │   42:     0x7fb347dd4bec - clone
  │   43:                0x0 - <unknown>
  │ ERROR:servo: called `Option::unwrap()` on a `None` value
  └ Pipeline failed in hard-fail mode.  Crashing!

  ▶ Unexpected subtest result in /html/semantics/forms/form-submission-0/form-data-set-usv.html:
  │ FAIL [expected PASS] Submitting a form data set that contains unpaired surrogates must convert to Unicode scalar values
  │   → assert_equals: expected "69 6e 70 75 74 31 ef bf bd 3d 69 6e 70 75 74 31 ef bf bd 0d 0a 69 6e 70 75 74 32 ef bf bd 3d 69 6e 70 75 74 32 ef bf bd 0d 0a 69 6e 70 75 74 33 ef bf bd 3d 69 6e 70 75 74 33 ef bf bd 0d 0a 69 6e 70 75 74 34 ef bf bd 3d 69 6e 70 75 74 34 ef bf bd 0d 0a" but got "\n  \n  \n    option\n  \n  \n  \n\n\n\n\"use strict\";\n\nconst form = document.querySelector(\"form\");\n\nfor (let el of Array.from(form.querySelectorAll(\"input\"))) { // Firefox/Edge support\n  el.name = el.id + \"\\uDC01\";\n  el.value = el.id + \"\uDC01\";\n}\n\nconst select = document.querySelector(\"select\");\nselect.name = select.id + \"\uDC01\";\nselect.firstElementChild.value = select.id + \"\uDC01\";\n\n"
  │ 
  │ window.onload</iframe.onload<@http://web-platform.test:8000/html/semantics/forms/form-submission-0/form-data-set-usv.html:23:7
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1406:20
  └ Test.prototype.step_func_done/<@http://web-platform.test:8000/resources/testharness.js:1446:17

  ▶ OK [expected TIMEOUT] /html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html

  ▶ FAIL [expected PASS] /_mozilla/mozilla/stylesheet-adopt-panic.html
  └   → /_mozilla/mozilla/stylesheet-adopt-panic.html aa7c29113837a443cdc2f4e97b98ab7d18b45f6d
/_mozilla/mozilla/stylesheet-adopt-panic-ref.html 015a11ff3ffbfe99fe5e69a815b2a7600caf86e1
Testing aa7c29113837a443cdc2f4e97b98ab7d18b45f6d == 015a11ff3ffbfe99fe5e69a815b2a7600caf86e1

  ▶ Unexpected subtest result in /fetch/api/request/multi-globals/url-parsing.html:
  │ FAIL [expected PASS] should parse the URL relative to the current settings object
  └   → promise_test: Unhandled rejection with value: object "TypeError: Url could not be parsed"

  ▶ Unexpected subtest result in /fetch/api/response/multi-globals/url-parsing.html:
  │ FAIL [expected PASS] should parse the redirect Location URL relative to the current settings object
  └   → promise_test: Unhandled rejection with value: object "TypeError: ServoUrl could not be parsed"

  ▶ Unexpected subtest result in /html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function.html:
  │ FAIL [expected PASS] Set location from a function called from a parent
  │   → assert_equals: expected "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/source/support/location-set.html" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function.html"
  │ 
  │ onload</fr.onload<@http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function.html:15:7
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1406:20
  └ Test.prototype.step_func_done/<@http://web-platform.test:8000/resources/testharness.js:1446:17

  ▶ Unexpected subtest result in /html/browsers/history/joint-session-history/joint-session-history-only-fully-active.html:
  └ PASS [expected FAIL] Do only fully active documents count for session history?

  ▶ Unexpected subtest result in /html/browsers/history/the-location-interface/location_assign_about_blank.html:
  └ PASS [expected FAIL] location.assign with initial about:blank browsing context

@bors-servo
Copy link
Contributor

☔ The latest upstream changes (presumably #16916) made this pull request unmergeable. Please resolve the merge conflicts.

@highfive highfive added the S-needs-rebase There are merge conflict errors. label May 22, 2017
@cbrewster
Copy link
Contributor Author

cbrewster commented Jun 4, 2017

@asajeffrey I wonder if the issues here have to do with subtle differences between normal navigations and navigations with replacement enabled...

Consider the case where a navigation occurs with replacement enabled:

  1. handle_activate_document_msg is called.
  2. UpdatePipelineId message is sent with Navigation as the reason (Doesn't terminate the iframe's load blocker).
  3. change_session_history is called.
  4. Replacement is enabled so the first branch of the if is used.
  5. traverse_to_frame is called.
  6. UpdatePipelineId message is sent with Traversal as the reason (Terminates the iframe's load blocker).

Should we be sending two UpdatePipelineId messages?
Also I think we can return from change_session_history after traverse_to_frame as traverse_to_frame handles updating the activity level of the pipelines and sends the frame tree, we probably shouldn't do this twice.

Navigating with replacement enabled also changes the timing of when the load event is fired. I assume this has to do with the UpdatePipelineId message with Traversal as the reason terminating the load blocker.
The crashes also seem to indicate that there are times where the browsing context is None...

I'm currently digging into our replacement navigation logic, but I wanted to know if you had any ideas.

@cbrewster
Copy link
Contributor Author

I wonder if we should not be using traverse_to_frame here and just add a method to BrowsingContext for replace, I think this breaks from the spec somewhat; however, the spec also states1 that all navigations should be using the traversal algorithm and we do not do that either.

1: https://html.spec.whatwg.org/multipage/browsers.html#update-the-session-history-with-the-new-page Step 2.2

@asajeffrey
Copy link
Member

Hmm, I see what you mean. We shouldn't be sending two UpdatePipelineid messages. I'd rather err on the side of becoming more spec-compatible if possible, and figure out how to get all navigations to use the traversal algorithm.

@bors-servo
Copy link
Contributor

🔒 Merge conflict

4 similar comments
@bors-servo
Copy link
Contributor

🔒 Merge conflict

@bors-servo
Copy link
Contributor

🔒 Merge conflict

@bors-servo
Copy link
Contributor

🔒 Merge conflict

@bors-servo
Copy link
Contributor

🔒 Merge conflict

@jdm
Copy link
Member

jdm commented Jul 31, 2017

@bors-servo: r-

@cbrewster
Copy link
Contributor Author

Closing until I have time to work on this again

@cbrewster cbrewster closed this Jul 31, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-needs-rebase There are merge conflict errors. S-tests-failed The changes caused existing tests to fail.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Iframes always load with about:blank in history
6 participants