aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings
Commit message (Collapse)AuthorAgeFilesLines
* Don't root a Realm that's used for one call.dom-protosJosh Matthews2023-05-291-3/+3
|
* Formatting.Josh Matthews2023-05-284-35/+52
|
* Support arbitrary protos when wrapping DOM objects with constructors.Josh Matthews2023-05-283-7/+7
|
* Support arbitrary protos when wrapping EventTarget objects.Josh Matthews2023-05-285-18/+181
|
* Auto merge of #29798 - jdm:per-interface-codegen, r=jdmbors-servo2023-05-262-30/+74
|\ | | | | | | | | | | | | | | | | | | | | Extract bodies of generated binding helpers into common code This is part of fixing #29770, by extracting common behaviour that [will be called](https://searchfox.org/mozilla-central/rev/2d678a843ceab81e43f7ffb83212197dc10e944a/dom/bindings/BindingUtils.cpp#3744) from new code in interface.rs. --- - [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
| * Formatting.Josh Matthews2023-05-261-8/+2
| |
| * Use an enum to pass the index value for interfaces/protos.Josh Matthews2023-05-262-9/+27
| |
| * Extract bodies of DefineDOMInterface and GetProtoObject/GetConstructorObject ↵Josh Matthews2023-05-262-30/+62
| | | | | | | | out of generated bindings.
* | Make GlobalScope.get_cx a static method.Josh Matthews2023-05-203-4/+6
|/
* Clean up debug optionsMartin Robinson2023-05-011-1/+1
|
* clean up lints and tidy errorsDelan Azabani2023-03-231-2/+1
|
* revert: Introduce `Untransplantable` trait to indicate transplantability at ↵Delan Azabani2023-03-233-261/+17
| | | | | | the type level (8f7b0cff87f0eab921e13e6990d76e12935e8675)
* apply yvt/servo/fix-named-window-getterDelan Azabani2023-03-233-17/+261
|
* apply pylbrecht/servo/named.window.getter (closes #27952)Delan Azabani2023-03-233-17/+32
|
* Fix Codegensagudev2023-02-203-40/+40
|
* ReadableStream WebIDL.py patchsagudev2023-02-203-5/+202
|
* Update plysagudev2023-02-1960-297/+9624
|
* Update WebIDLsagudev2023-02-1977-4712/+9079
|
* Fix WebIDL.py patchessagudev2023-02-193-26/+20
|
* Auto merge of #29250 - fabricedesre:no-deprecated-symbol-to-jsid, r=delanbors-servo2023-01-181-11/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace use of the deprecated RUST_SYMBOL_TO_JSID by SymbolId <!-- Please describe your changes on the following line: --> A simple replacement of a deprecated function, according to changes in https://github.com/servo/mozjs/pull/315 That removes the only build warning I saw when doing a clobber. --- <!-- 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 - [ ] These changes fix #___ (GitHub issue number if applicable) <!-- Either: --> - [ ] There are tests for these changes OR - [ X] These changes do not require tests because no behavior change is expected. <!-- 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. -->
| * Replace use of the deprecated RUST_SYMBOL_TO_JSID by SymbolIdThe Capyloon Team2023-01-161-11/+4
| |
* | Stringify unknown JavaScript objects in global exception handlersMartin Robinson2023-01-121-30/+38
|/ | | | | | | | | | | | | | | | | | | When turning DOM exceptions into `ErrorInfo` always try to stringify the JavaScript value, even if it's an object that isn't a `DOMException` or native exception. This means that exceptions that extend the `Error` prototype are now stringified. The result is that test output for WPT global assertion failures is more useful. For instance for the test include-frames-from-child-same-origin-grandchild.sub.html: Before: ``` uncaught exception: unknown (can't convert to string) ``` After: ``` uncaught exception: Error: assert_equals: expected 4 but got 3 ```
* Fix some build warningsMartin Robinson2023-01-111-0/+1
| | | | | | | | - Mark some instances of unused fields and variables as as allowed, when they are used for memory management. - Remove the use of some deprecated function.s Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Format.Josh Matthews2022-11-233-6/+15
|
* Changes for spidermomkey upgrade.Josh Matthews2022-11-238-101/+97
|
* Auto merge of #28663 - saschanaz:void-undefined, r=jdmbors-servo2022-01-1637-292/+292
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert Web IDL void to undefined <!-- Please describe your changes on the following line: --> Thanks to my tool https://github.com/saschanaz/gecko-webidl 🙌 Build is failing on my current VS2022+Python 3.10 environment, but the IDL tests are passing anyway, so... --- <!-- 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 #27660 <!-- Either: --> - [x] There are tests for these changes <!-- 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. -->
| * Update CodegenRust.pyKagami Sascha Rosylight2022-01-051-7/+7
| |
| * Try rolling back python fixKagami Sascha Rosylight2022-01-051-1/+1
| |
| * Convert Web IDL void to undefinedKagami Sascha Rosylight2022-01-0536-286/+286
| | | | | | | | Fixes #27660
* | Upgrade HyperNaveen Gattu2022-01-161-2/+2
|/
* semicolonNaveen Gattu2021-12-011-1/+1
|
* Update principals.rsNaveen Gattu2021-12-011-0/+1
|
* Perform non-null checks on pointers in subsumesNaveen Gattu2021-11-301-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need to ensure the passed in pointers are non-null prior to using them unchecked. Seeing sporadic crashes: ``` Stack trace for thread "Script(2,36)" 0: backtrace::backtrace::libunwind::trace at /Users/navgattu/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.63/src/backtrace/libunwind.rs:93:5 backtrace::backtrace::trace_unsynchronized at /Users/navgattu/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.63/src/backtrace/mod.rs:66:5 1: <servo::backtrace::Print as core::fmt::Debug>::fmt at /Users/navgattu/Documents/dev-git/servo/ports/winit/backtrace.rs:53:13 2: core::fmt::write at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/core/src/fmt/mod.rs:1117:17 3: std::io::Write::write_fmt at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/std/src/io/mod.rs:1667:15 4: servo::backtrace::print at /Users/navgattu/Documents/dev-git/servo/ports/winit/backtrace.rs:17:5 5: servo::crash_handler::install::handler at /Users/navgattu/Documents/dev-git/servo/ports/winit/crash_handler.rs:25:21 6: __sigtramp 7: core::ptr::non_null::NonNull<T>::as_ref at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/core/src/ptr/non_null.rs:317:20 8: alloc::rc::Rc<T>::inner at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/alloc/src/rc.rs:332:18 <alloc::rc::Rc<T> as core::clone::Clone>::clone at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/alloc/src/rc.rs:1479:9 9: <servo_url::origin::MutableOrigin as core::clone::Clone>::clone at /Users/navgattu/Documents/dev-git/servo/components/url/origin.rs:92:26 10: script::dom::bindings::principals::ServoJSPrincipals::origin at /Users/navgattu/Documents/dev-git/servo/components/script/dom/bindings/principals.rs:42:9 11: script::dom::bindings::principals::subsumes at /Users/navgattu/Documents/dev-git/servo/components/script/dom/bindings/principals.rs:136:22 12: _ZN2jsL30SavedFrameSubsumedByPrincipalsEP9JSContextP12JSPrincipalsN2JS6HandleIPNS_10SavedFrameEEE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/SavedStacks.cpp:617:10 _ZN2jsL20GetFirstMatchedFrameIFbP9JSContextP12JSPrincipalsN2JS6HandleIPNS_10SavedFrameEEEEEES8_S2_S4_RT_S9_NS5_20SavedFrameSelfHostedERb at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/SavedStacks.cpp:636:9 _ZN2jsL21GetFirstSubsumedFrameEP9JSContextP12JSPrincipalsN2JS6HandleIPNS_10SavedFrameEEENS4_20SavedFrameSelfHostedERb at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/SavedStacks.cpp:660:10 13: _ZN2js16UnwrapSavedFrameEP9JSContextP12JSPrincipalsN2JS6HandleIP8JSObjectEENS4_20SavedFrameSelfHostedERb at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/SavedStacks.cpp:744:10 14: _ZN2JS16BuildStackStringEP9JSContextP12JSPrincipalsNS_6HandleIP8JSObjectEENS_13MutableHandleIP8JSStringEEmN2js11StackFormatE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/SavedStacks.cpp:1041:13 15: mozjs::rust::CapturedJSStack::as_string at /Users/navgattu/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/09edacd/src/rust.rs:1377:17 16: script::dom::webglrenderingcontext::capture_webgl_backtrace::{{closure}} at /Users/navgattu/Documents/dev-git/servo/components/script/dom/webglrenderingcontext.rs:1939:46 17: core::option::Option<T>::and_then at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/core/src/option.rs:1043:24 18: script::dom::webglrenderingcontext::capture_webgl_backtrace at /Users/navgattu/Documents/dev-git/servo/components/script/dom/webglrenderingcontext.rs:1939:27 19: script::dom::webglrenderingcontext::WebGLRenderingContext::send_command at /Users/navgattu/Documents/dev-git/servo/components/script/dom/webglrenderingcontext.rs:397:28 20: script::dom::webglrenderingcontext::WebGLRenderingContext::get_gl_extensions at /Users/navgattu/Documents/dev-git/servo/components/script/dom/webglrenderingcontext.rs:913:9 21: <script::dom::webglrenderingcontext::WebGLRenderingContext as script::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextBinding::WebGLRenderingContextMethods>::GetSupportedExtensions::{{closure}} at /Users/navgattu/Documents/dev-git/servo/components/script/dom/webglrenderingcontext.rs:2330:27 22: script::dom::webgl_extensions::extensions::WebGLExtensions::init_once 23: <script::dom::webglrenderingcontext::WebGLRenderingContext as script::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextBinding::WebGLRenderingContextMethods>::GetSupportedExtensions at /Users/navgattu/Documents/dev-git/servo/components/script/dom/webglrenderingcontext.rs:2329:9 24: script::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextBinding::getSupportedExtensions::{{closure}}::{{closure}} at /Users/navgattu/Documents/dev-git/servo/target/debug/build/script-80d43fa6e481c605/out/Bindings/WebGLRenderingContextBinding.rs:1095:46 25: script::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextBinding::getSupportedExtensions::{{closure}} at /Users/navgattu/Documents/dev-git/servo/target/debug/build/script-80d43fa6e481c605/out/Bindings/WebGLRenderingContextBinding.rs:1090:33 26: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/core/src/ops/function.rs:280:13 27: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/core/src/panic/unwind_safe.rs:271:9 28: std::panicking::try::do_call at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/std/src/panicking.rs:403:40 29: <unknown> at /Users/navgattu/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/09edacd/src/glue.rs:299:6 30: std::panicking::try at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/std/src/panicking.rs:367:19 31: std::panic::catch_unwind at /rustc/0fa3190394475a84360b34e074e719d519bc40f1/library/std/src/panic.rs:129:14 32: mozjs::panic::wrap_panic at /Users/navgattu/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/09edacd/src/panic.rs:22:11 33: script::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextBinding::getSupportedExtensions at /Users/navgattu/Documents/dev-git/servo/target/debug/build/script-80d43fa6e481c605/out/Bindings/WebGLRenderingContextBinding.rs:1090:5 34: CallJitMethodOp at /Users/navgattu/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/09edacd/src/jsglue.cpp:663:12 35: script::dom::bindings::utils::generic_call 36: script::dom::bindings::utils::generic_method 37: _Z12CallJSNativeP9JSContextPFbS0_jPN2JS5ValueEEN2js10CallReasonERKNS1_8CallArgsE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:435:13 _ZN2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstructENS_10CallReasonE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:520:12 38: _ZN2js13CallFromStackEP9JSContextRKN2JS8CallArgsE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:584:10 _ZL9InterpretP9JSContextRN2js8RunStateE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:3244:16 39: _ZN2js9RunScriptEP9JSContextRNS_8RunStateE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:405:13 40: _ZN2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstructENS_10CallReasonE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:552:13 41: _ZN2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_EENS_10CallReasonE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:597:8 42: _ZN2js9fun_applyEP9JSContextjPN2JS5ValueE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/JSFunction.cpp:1166:10 43: _Z12CallJSNativeP9JSContextPFbS0_jPN2JS5ValueEEN2js10CallReasonERKNS1_8CallArgsE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:435:13 _ZN2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstructENS_10CallReasonE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/vm/Interpreter.cpp:520:12 44: _ZN2js3jit14DoCallFallbackEP9JSContextPNS0_13BaselineFrameEPNS0_15ICCall_FallbackEjPN2JS5ValueENS7_13MutableHandleIS8_EE at /Users/navgattu/Documents/dev-git/mozjs/mozjs/js/src/jit/BaselineIC.cpp:1841:10 ```
* fix(script): the condition for exposing a cross-origin setter is ↵yvt2021-08-171-1/+1
| | | | | | | | | | | | | | | | | | `CrossOriginWritable`, not `CrossOriginReadable` The expression `crossOriginIframe.contentWindow.location.href = "new href"` takes the following steps: (1) Get the setter for `href` by invoking `[[GetOwnProperty]]` on `crossOriginIframe.contentWindow. location`. (2) Call the setter, passing `crossOriginIframe. contentWindow` and `"new href"`. Since the target `Location` is cross origin, getting the setter succeeds only if the `CrossOriginWritable` extended attribute is present on the `href` attribute, and it's present. However, instead of `CrossOriginWritable`, `CrossOriginReadable` was checked mistakenly. Since `Location#href` has `CrossOriginWritable` but not `CrossOriginReadable`, this bug rendered `Location#href` inaccessible from a cross-origin document.
* fix(script): don't pass an unrooted slice to `from_rooted_slice`yvt2021-07-281-1/+6
|
* style(script): add underscore to unused parameteryvt2021-07-271-4/+3
|
* refactor(script): make grouping clearer while keeping `test-tidy` happyyvt2021-07-271-3/+4
|
* refactor(script): refactor common code into ↵yvt2021-07-271-20/+38
| | | | | | | | | `PropertyDefiner.generateUnguardedArray` There are code fragments in `(Method|Attr)Definer.generateArray` that are much alike. This commit refactors them into a new method of `PropertyDefiner` named `generateUnguardedArray` (in contrast to the existing method `generateGuardedArray`).
* refactor(script): squash `CGDOMJSProxyHandler_set`yvt2021-07-262-51/+49
| | | | | | The implementation in `crate::dom::bindings::proxyhandler:: maybe_cross_origin_set_rawcx` is now directly assigned to `ProxyTraps:: set`.
* doc(script): fix commentsyvt2021-07-261-4/+4
| | | | | `History` is not a maybe-cross-origin object. I must have been very sleepy when I wrote this.
* refactor(script): don't conjure up `ServoJSPrincipals` in ↵yvt2021-07-251-7/+24
| | | | | | | | `ServoJSPrincipalsRef::deref` It's technically safe to do because of `#[repr(transparent)]` and is a prerequisite of having `ServoJSPrincipalsRef: Copy`, but I guess it's not worth an `unsafe` block.
* refactor(script): apply suggestionsyvt2021-07-253-33/+24
|
* refactor(script): apply suggestionyvt2021-07-251-2/+1
| | | Co-authored-by: Josh Matthews <josh@joshmatthews.net>
* style(script): address `test-tidy` errorsyvt2021-07-173-2/+6
|
* feat(script): implement `getOwnEnumerablePropertyKeys` for `Location`yvt2021-07-171-3/+6
| | | | | | | | Fixes the following assertion from `tests/wpt/web-platform-tests/html/ browsers/origin/cross-origin-objects/cross-origin-objects.html`: assert_equals(Object.keys(win.location).length, 0, "Object.keys() gives the right answer for cross-origin Location");
* feat(script): implement the last step of `CrossOriginOwnPropertyKeys`yvt2021-07-171-7/+39
|
* doc(script): improve comments in `proxyhandler.rs`yvt2021-07-171-7/+23
|
* feat(script): Implement `[[Set]]` for `Location`yvt2021-07-172-3/+123
|
* feat(script): enable `js::ProxyOptions::setLazyProto` for maybe-cross-origin ↵yvt2021-07-171-2/+14
| | | | | | | | objects Setting the lazy proto option allows proxy handlers to provide dynamic prototype objects. This is necessary for the customization of `ProxyTraps::{get,set}PrototypeOf` to actually take effect.
* feat(script): Implement `[[{Get,Set}PrototypeOf]]` for `Location`yvt2021-07-172-19/+151
|