Commit graph

23590 commits

Author SHA1 Message Date
Anthony Ramine
02fb5a68e6 Remove a bunch of _forever suffixes in Attr methods
They don't return &'static references anymore.
2020-03-30 13:09:03 +02:00
Anthony Ramine
ba5bcec7e4 Make LayoutDom<'dom, T> be a mere reference wrapper 2020-03-30 13:09:02 +02:00
Anthony Ramine
ea9e62bdca Fix LayoutDom::unsafe_get
The raw pointer can be used to extend the lifetime of the inner T
to beyond 'dom.
2020-03-30 13:07:36 +02:00
Anthony Ramine
4279fe5933 Fix LayoutElementHelpers::get_classes_for_layout
It should not return a 'static reference
2020-03-30 13:07:27 +02:00
Anthony Ramine
05c71dff88 Fix AttrHelpersForLayout
We should never be returning 'static stuff from attrs, that's a big lie.
2020-03-30 13:07:27 +02:00
Anthony Ramine
4a17950331 Make LayoutShadowRootHelpers methods take self 2020-03-30 13:07:27 +02:00
Anthony Ramine
86296b84ff Clean up LayoutShadowRootHelpers::get_style_data_for_layout
Parameter E is unused and the result should be bound by 'dom.
2020-03-30 13:07:25 +02:00
Anthony Ramine
206157dd74 Make LayoutNodeHelpers methods take self 2020-03-29 19:34:22 +02:00
Anthony Ramine
467913acdb Make LayoutElementHelpers methods take self 2020-03-29 19:31:54 +02:00
Anthony Ramine
9b2debe678 Give a lifetime parameter to LayoutDocumentHelpers 2020-03-29 19:29:02 +02:00
Anthony Ramine
f0c98bfa5c Give a lifetime parameter to LayoutCharacterDataHelpers 2020-03-29 19:25:46 +02:00
Anthony Ramine
d87444cb1f Make LayoutCanvasWebGLRenderingContextHelpers methods take self 2020-03-29 17:52:34 +02:00
Anthony Ramine
301acdc309 Make LayoutSVGSVGElementHelpers methods take self 2020-03-29 17:25:00 +02:00
Anthony Ramine
56793f24da Make HTMLTableSectionElementLayoutHelpers methods take self 2020-03-29 17:23:52 +02:00
Anthony Ramine
5d3274c181 Make HTMLTableRowElementLayoutHelpers methods take self 2020-03-29 17:23:31 +02:00
Anthony Ramine
83045c7e68 Make HTMLTableElementLayoutHelpers methods take self 2020-03-29 17:22:47 +02:00
Anthony Ramine
09600301c5 Make HTMLTableCellElementLayoutHelpers methods take self 2020-03-29 17:22:11 +02:00
Anthony Ramine
f794feb6f4 Make LayoutHTMLMediaElementHelpers methods take self 2020-03-29 17:21:38 +02:00
Anthony Ramine
e590251e5f Make LayoutHTMLImageElementHelpers methods take self 2020-03-29 17:20:40 +02:00
Anthony Ramine
1504f35031 Make HTMLIFrameElementLayoutMethods methods take self 2020-03-29 17:19:59 +02:00
Anthony Ramine
668ef35612 Make HTMLHRLayoutHelpers methods take self 2020-03-29 17:19:32 +02:00
Anthony Ramine
fea4a2e629 Make HTMLFontElementLayoutHelpers methods take self 2020-03-29 17:18:59 +02:00
Anthony Ramine
56ef9b5170 Make LayoutHTMLCanvasElementHelpers methods take self 2020-03-29 17:18:31 +02:00
Anthony Ramine
e7cfd0c409 Make HTMLBodyElementLayoutHelpers methods take self 2020-03-29 17:17:00 +02:00
Anthony Ramine
9d337ea013 Make LayoutCanvasRenderingContext2DHelpers methods take self 2020-03-29 16:08:53 +02:00
bors-servo
15d8c6058b
Auto merge of #26048 - nox:layout-2020-transparent-data, r=jdm
Give a lifetime parameter to LayoutDom
2020-03-28 13:37:31 -04:00
Anthony Ramine
dba6a635e5 Give a lifetime parameter to LayoutDom 2020-03-28 15:37:57 +01:00
Anthony Ramine
60ca98b753 Pass pending restyles instead of draining them from layout 2020-03-28 15:37:56 +01:00
Anthony Ramine
400c7012b1 Make ServoLayoutNode::new return a free lifetime value
Binding the scope of the ServoLayoutNode value to the originating
TrustedNodeAddress is just theater.
2020-03-28 14:06:08 +01:00
Anthony Ramine
df0118dd10 Move PendingRestyle to the style_layout_interface crate 2020-03-28 14:00:53 +01:00
bors-servo
7d66871a9f
Auto merge of #26046 - mrobinson:arcrefcell-hoisting, r=SimonSapin
layout_2020: Use ArcRefCell to track hoisted fragments

This avoids the use of lookup tables for containing blocks when
constructing the stacking context tree.

This seems to catch some laid-out hoisted fragments that were otherwise
dropped in the previous design. The changes cause one new test to pass
and one to fail. Visual examination of the failing tests reveals that
it's a progression (list markers are appearing when they were previously
not rendered).

<!-- 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 #___ (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. -->
2020-03-27 12:20:08 -04:00
bors-servo
a927f1ad8a
Auto merge of #25998 - jdm:vao-drop, r=nox
Avoid a panic when closing webgl pages using VAOs

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #25891
- [x] These changes do not require tests because GC behaviour at shutdown is nondeterministic and difficult to test
2020-03-27 09:55:12 -04:00
Martin Robinson
19f4b708b3 layout_2020: Use ArcRefCell to track hoisted fragments
This avoids the use of lookup tables for containing blocks when
constructing the stacking context tree.

This seems to catch some laid-out hoisted fragments that were otherwise
dropped in the previous design. The changes cause one new test to pass
and one to fail. Visual examination of the failing tests reveals that
it's a progression (list markers are appearing when they were previously
not rendered).
2020-03-27 13:02:22 +01:00
bors-servo
4dbe3b30cd
Auto merge of #26037 - mrobinson:arcrefcell-fragment-tree, r=SimonSapin
layout_2020: Use ArcRefCell in the fragment tree

This will allow mutability which is useful for things like animations.

<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they should not change behavior.

<!-- 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. -->
2020-03-26 10:23:23 -04:00
bors-servo
0ed0c0d9f0
Auto merge of #26029 - paulrouget:uitask, r=jdm
Set user interactions for tasks

fix #26026

I need help here. Retrieving the interaction flag from the promise handle crashes.

```rust
let interaction = GetPromiseUserInputEventHandlingState(promise);
```

```
Stack trace for thread "ScriptThread PipelineId { namespace_id: PipelineNamespaceId(1), index: PipelineIndex(1) }"
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /Users/paul/.cargo/git/checkouts/backtrace-rs-96ebaf1bcb788384/91a0aa4/src/backtrace/libunwind.rs:86
      backtrace::backtrace::trace_unsynchronized
             at /Users/paul/.cargo/git/checkouts/backtrace-rs-96ebaf1bcb788384/91a0aa4/src/backtrace/mod.rs:66
   1: <servo::backtrace::Print as core::fmt::Debug>::fmt
             at ports/glutin/backtrace.rs:49
   2: <&mut W as core::fmt::Write>::write_fmt
   3: std::io::Write::write_fmt
             at /rustc/45ebd5808afd3df7ba842797c0fcd4447ddf30fb/src/libstd/io/mod.rs:1427
   4: servo::backtrace::print
             at ports/glutin/backtrace.rs:17
   5: servo::install_crash_handler::handler
             at ports/glutin/main2.rs:68
   6: <unknown>
   7: _ZN2JS37GetPromiseUserInputEventHandlingStateENS_6HandleIP8JSObjectEE
             at /Users/paul/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/2392ebc/mozjs/js/src/vm/JSObject.h:106
```
2020-03-26 09:15:00 -04:00
Anthony Ramine
04af32128c Add a 'dom lifetime to GetLayoutData 2020-03-26 13:17:46 +01:00
Paul Rouget
5621c887fd Propagate user interacting flag to timers and promises 2020-03-26 08:36:57 +01:00
bors-servo
a9965db69f
Auto merge of #26005 - jdm:hubs-csp, r=nox
Update content-security-policy.

This allows hubs.mozilla.org to load instead of panicking due to unimplemented CSP features.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24702
- [x] These changes do not require tests because we never enabled the CSP testsuite
2020-03-25 13:33:23 -04:00
Martin Robinson
7cb0069be5 layout_2020: Use ArcRefCell in the fragment tree
This will allow mutability which is useful for things like animations.
2020-03-25 17:57:17 +01:00
Josh Matthews
19216627d3 Update content-security-policy. 2020-03-25 09:11:09 -04:00
bors-servo
4f5110f34f
Auto merge of #26021 - paulrouget:revertFillText, r=jdm
Revert fillText()

Sadly, fillText crashes our HoloLens demos. See https://github.com/servo/servo/issues/26015

/cc @kaiakz
2020-03-24 08:14:24 -04:00
Paul Rouget
40f6cd87d4 Revert "Add a simple implementation of CanvasRenderingContext2d.fillText"
Windows crash: https://github.com/servo/servo/issues/26015
2020-03-24 10:35:52 +01:00
bors-servo
8b4d7c41ae
Auto merge of #26017 - humancalico:remove_legacy, r=jdm
Removed createTouch and createTouchList

<!-- 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 #25978
<!-- Either: -->
- [ ] 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. -->
2020-03-24 01:38:31 -04:00
Akshat Agarwal
2e1009da75 Removed createTouch and createTouchList 2020-03-24 03:41:42 +05:30
bors-servo
fcb99ae017
Auto merge of #26016 - servo:jdm-patch-36, r=SimonSapin
Force alert message to its own line.

This should avoid timeouts in WPT caused by output that looks like:
```
 │ 0:00:00.542631465 10817 0x7f9ccc161630 WARN                 playbin gstplaybin2.c:4663:autoplug_select_cb:<playbin> Could not activate sink oss4sink
  │ ALSA lib confmisc.c:767:(parse_card) ALERT: RESULT: ["/html/semantics/embedded-content/media-elements/event_pause_noautoplay.html",0,null,null,[["audio events - pause",0,null,null],["video events - pause",0,null,null],["calling play() then pause() on non-autoplay audio should trigger pause event",0,null,null],["calling play() then pause() on non-autoplay video should trigger pause event",0,null,null]]]
  │ cannot find card '0'
```
2020-03-23 14:14:15 -04:00
bors-servo
acd14672e1
Auto merge of #25888 - ferjm:text.decoration.2020, r=nox
Partial text decoration support for layout 2020

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #25166
- [X] There are tests for these changes
2020-03-23 11:18:18 -04:00
Josh Matthews
2aa415a3ff
Force alert message to its own line. 2020-03-23 11:08:42 -04:00
bors-servo
8bd3429069
Auto merge of #26012 - mrobinson:scrolling-overflow-cb, r=nox
layout_2020: Use the containing block more when calculating scrolling overflow

When calculating scrolling overflow calculation we cannot currently use
the actual containing block in all cases. This change increases the
amount that we do use the containing block.

<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they should not change behavior.

<!-- 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. -->
2020-03-23 08:36:56 -04:00
Fernando Jiménez Moreno
17948f3b39 Propagate text decoration where needed 2020-03-23 11:13:10 +01:00
Fernando Jiménez Moreno
83fc9943d3 Do not use buggy text_decorations_in_effect 2020-03-23 11:10:44 +01:00