mirror of
https://github.com/servo/servo.git
synced 2025-07-03 13:33:39 +01:00
Auto merge of #11511 - Ms2ger:jsurl-crash, r=nox
Add a missing JSAutoCompartment to javascript url handling. - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes OR <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11511) <!-- Reviewable:end -->
This commit is contained in:
commit
3eb9403b4d
2 changed files with 7 additions and 2 deletions
|
@ -30,6 +30,7 @@ use dom::bindings::inheritance::Castable;
|
||||||
use dom::bindings::js::{JS, MutNullableHeap, Root, RootCollection};
|
use dom::bindings::js::{JS, MutNullableHeap, Root, RootCollection};
|
||||||
use dom::bindings::js::{RootCollectionPtr, RootedReference};
|
use dom::bindings::js::{RootCollectionPtr, RootedReference};
|
||||||
use dom::bindings::refcounted::{LiveDOMReferences, Trusted};
|
use dom::bindings::refcounted::{LiveDOMReferences, Trusted};
|
||||||
|
use dom::bindings::reflector::Reflectable;
|
||||||
use dom::bindings::str::DOMString;
|
use dom::bindings::str::DOMString;
|
||||||
use dom::bindings::trace::JSTraceable;
|
use dom::bindings::trace::JSTraceable;
|
||||||
use dom::bindings::utils::WRAP_CALLBACKS;
|
use dom::bindings::utils::WRAP_CALLBACKS;
|
||||||
|
@ -54,7 +55,8 @@ use ipc_channel::ipc::{self, IpcSender};
|
||||||
use ipc_channel::router::ROUTER;
|
use ipc_channel::router::ROUTER;
|
||||||
use js::glue::GetWindowProxyClass;
|
use js::glue::GetWindowProxyClass;
|
||||||
use js::jsapi::{DOMProxyShadowsResult, HandleId, HandleObject, RootedValue};
|
use js::jsapi::{DOMProxyShadowsResult, HandleId, HandleObject, RootedValue};
|
||||||
use js::jsapi::{JSContext, JS_SetWrapObjectCallbacks, JSTracer, SetWindowProxyClass};
|
use js::jsapi::{JSAutoCompartment, JSContext, JS_SetWrapObjectCallbacks};
|
||||||
|
use js::jsapi::{JSTracer, SetWindowProxyClass};
|
||||||
use js::jsval::UndefinedValue;
|
use js::jsval::UndefinedValue;
|
||||||
use js::rust::Runtime;
|
use js::rust::Runtime;
|
||||||
use layout_interface::{self, NewLayoutThreadInfo, ReflowQueryType};
|
use layout_interface::{self, NewLayoutThreadInfo, ReflowQueryType};
|
||||||
|
@ -1599,6 +1601,7 @@ impl ScriptThread {
|
||||||
|
|
||||||
// Script source is ready to be evaluated (11.)
|
// Script source is ready to be evaluated (11.)
|
||||||
unsafe {
|
unsafe {
|
||||||
|
let _ac = JSAutoCompartment::new(self.get_cx(), window.reflector().get_jsobject().get());
|
||||||
let mut jsval = RootedValue::new(self.get_cx(), UndefinedValue());
|
let mut jsval = RootedValue::new(self.get_cx(), UndefinedValue());
|
||||||
window.evaluate_js_on_global_with_result(&script_source, jsval.handle_mut());
|
window.evaluate_js_on_global_with_result(&script_source, jsval.handle_mut());
|
||||||
let strval = DOMString::from_jsval(self.get_cx(),
|
let strval = DOMString::from_jsval(self.get_cx(),
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
[javascript-url-return-value-handling.html]
|
[javascript-url-return-value-handling.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: CRASH
|
[Test that javascript: evaluation only performs a navigation to the\n result when the result is a string value.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue