Commit graph

25052 commits

Author SHA1 Message Date
Anthony Ramine
f014da9565 Introduce LayoutDom::is
Just like Castable::is.
2020-03-31 22:06:40 +02:00
Anthony Ramine
9c8540af5c Make layout methods accessing rare data be safe
They don't do anything fancy so there is no additional unsafety calling them
compared to using LayoutDom in the first place, the usual story of all
those changes.
2020-03-31 22:04:35 +02:00
Anthony Ramine
414d477b54 Don't generate rare_data_for_layout methods anymore
It is only used twice.
2020-03-31 21:54:02 +02:00
Anthony Ramine
dd750c6f86 Introduce LayoutDom::to_layout_slice
It generalises <LayoutDom<Element>>::attrs.
2020-03-31 21:39:45 +02:00
Anthony Ramine
72c0771299 Make a bunch of LayoutDocumentHelpers be safe
The other methods are actually unsafe.
2020-03-31 21:39:45 +02:00
Anthony Ramine
e561911066 Make LayoutCanvasRenderingContext2DHelpers::get_canvas_id be safe 2020-03-31 21:23:55 +02:00
Anthony Ramine
fbc3e430ab Make a bunch or trivial LayoutElementHelpers safe 2020-03-31 20:37:57 +02:00
bors-servo
148c24c29c
Auto merge of #26072 - dralley:fix-assertion-layout2020, r=mrobinson
Ensure reference frame is popped in layout 2020

closes: #26066

Should be equivalent to https://github.com/servo/servo/pull/26063 for layout2020

---
<!-- 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
- [ ] `./mach test-tidy` does not report any errors
- [x] These changes fix #26066 (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
2020-03-31 14:16:00 -04:00
Anthony Ramine
a913c6650d Reduce scope of unsafe block in LayoutHTMLCanvasElementHelpers::data 2020-03-31 19:06:25 +02:00
Anthony Ramine
5ff931d171 Introduce <LayoutDom<Element>>::attrs()
This safe method is the basic block to access element attributes from layout.
We reuse it in the other attr-related layout methods to remove a pretty big
source of rampant unsafe code between script and layout.
2020-03-31 18:46:49 +02:00
Anthony Ramine
0bda174823 Merge RawLayoutElementHelpers into LayoutElementHelpers 2020-03-31 18:30:42 +02:00
Anthony Ramine
3b504148d5 Move around some code in the element
The intent is to merge the two layout helper traits together
so I'm moving them around to make later diffs more readable.
2020-03-31 18:02:02 +02:00
bors-servo
3aa15e3fa3
Auto merge of #26070 - servo:layout-2020-more-cleanups, r=SimonSapin
Make LayoutNodeHelpers::text_content return a cow

What does it mean? It means that layout can process `Text` nodes' contents by just borrowing them, potentially saving us from a lot of unnecessary tempoorary allocations, which is nice.
2020-03-31 10:51:18 -04:00
bors-servo
09271826f6
Auto merge of #26038 - CYBAI:mozjs-sourcetext, r=jdm
Use rust-mozjs exposed function to generate SourceText

With the exposed functions from mozjs, we can get rid of the `get_source_text` in `script_module`.

---
<!-- 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 do not require tests because it just tries to use exposed functions from mozjs to create `SourceText`

<!-- 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-31 09:40:50 -04:00
Daniel Alley
814478bee0 Ensure reference frame is popped in layout 2020
closes: #26066
2020-03-31 09:37:08 -04:00
CYBAI
018b23d43b Use mozjs exposed function to generate SourceText 2020-03-31 22:29:53 +09:00
Anthony Ramine
fb1ff3f097 Remove an obsolete comment 2020-03-31 15:23:06 +02:00
Anthony Ramine
6fe294fa5b Make LayoutNodeHelpers::text_content return a cow 2020-03-31 15:02:13 +02:00
Anthony Ramine
409bd3d989 Make LayoutCharacterDataHelpers::data_for_layout be safe 2020-03-31 14:57:44 +02:00
Anthony Ramine
00c5ec202c Make LayoutHTMLTextAreaElementHelpers::value_for_layout safe 2020-03-31 14:35:37 +02:00
bors-servo
234c8557ed
Auto merge of #26067 - paulrouget:contextTitle, r=jdm
Make it possible to add a title to context menu

Fixes #26061
2020-03-31 08:33:14 -04:00
Anthony Ramine
e1e913d33c Make LayoutHTMLInputElementHelpers::value_for_layout return a cow 2020-03-31 14:30:18 +02:00
Anthony Ramine
3e875ce3eb Introduce AttrHelpersForLayout::namespace 2020-03-31 14:06:22 +02:00
Anthony Ramine
47c9f19121 Don't clone the result of AttrHelpersForLayout::local_name
There is no need to do that. Embrace returning borrows from the DOM, it good.
2020-03-31 14:02:14 +02:00
Anthony Ramine
4db84bede8 Rename AttrHelpersForLayout methods 2020-03-31 13:58:50 +02:00
Anthony Ramine
4c16729a01 Make AttrHelpersForLayout methods be safe
The unsafety isn't there, it's in the creation of the LayoutDom<T> values.
2020-03-31 13:54:52 +02:00
Paul Rouget
0b489a0135 Make it possible to add a title to context menu 2020-03-31 12:25:54 +02:00
bors-servo
f9e7c6b9dc
Auto merge of #26054 - shnmorimoto:fix_tojson_unconditionally_serializes, r=jdm
Fix tojson unconditionally serializes

<!-- 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 #25281

<!-- 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-31 02:33:53 -04:00
bors-servo
687156ac90
Auto merge of #26063 - dralley:fix-assertion, r=cbrewster
Fix failing assertion -- failure to pop reference frame

closes #23438

In-depth description here: https://github.com/servo/servo/issues/23438#issuecomment-605553001

---
<!-- 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
- [ ] `./mach test-tidy` does not report any errors
- [x] These changes fix #23438 (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
2020-03-31 00:04:46 -04:00
bors-servo
42463c4c44
Auto merge of #26062 - jdm:jsup, r=Manishearth
Update mozjs.

Fix #26040. Incorporate upstream patches to improve JIT codegen on arm64.
2020-03-30 23:51:47 -04:00
Daniel Alley
3258bcaa8b Fix failing assertion -- failure to pop reference frame
closes #23438
2020-03-30 23:29:19 -04:00
Shinichi Morimoto
74995a5287 fixed CGCollectJSONAttributesMethod 2020-03-31 09:37:07 +09:00
bors-servo
029049b486
Auto merge of #26041 - jdm:dwrote-up, r=asajeffrey
Update dwrote to 0.11.

Fix #25962.
2020-03-30 20:25:40 -04:00
bors-servo
77b02393fb
Auto merge of #26009 - SasiDharKM:master, r=jdm
Implementation for ImageBitmap

<!-- Please describe your changes on the following line: -->
Created the boilerplate code for the image bitmap implementation.

---
<!-- 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 #20650

<!-- 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-30 19:26:39 -04:00
Josh Matthews
33ddf3eef3 Update mozjs. 2020-03-30 17:45:28 -04:00
santoshpavan
8c405546a2 Implement ImageBitmap interface
Implementation of ImageBitmap

ImageBitMap webidl file added

Implementation of ImageBitmap

mentioned the correct origin link

basic new and new_inherited

updated the mod.rs file to include imagebitmap

imagebitmap implemented

changed according to Serialization

implemented serializable

get methods for width and height

basic imagebitmap

added missing crates

added Vec and missing crates

Syntax fixes

Reformatting and minor error fixes

Implementation of  ImageBitmap

tidy-test runs

Took out extra parameters in reflect_dom_object call

added comments with specification links for webidl functions

changing the code based on review comments

adding resolved changes form the pull request

Changes based on pr review

Changes based on pr review

ran test-tidy and fmt

removed the duplicate crate

removed unnecessary crates

Kept only the relevant crate import

Updated test expectations, exposed interface list, and manifest
2020-03-30 15:52:15 -04:00
bors-servo
c8479c8b90
Auto merge of #26036 - gterzian:add_ipc_router_shutdown, r=Manishearth
Add ipc router shutdown

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

Explicitly shutting down IPC router as part of shutdown, for contexts see https://github.com/servo/servo/pull/25685#pullrequestreview-364604068

Note that the call to `shutdown` is idempotent, so it shouldn't matter whether the call in the constellation and the script-thread are actually on the same `ROUTER` in single-process mode...

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

<!-- 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-30 14:09:46 -04:00
bors-servo
69004e43dd
Auto merge of #26025 - szeged:webgl_draw_range_elements, r=jdm
Add support for DrawRangeElements in WebGL2

Adds initial support for the WebGL2 `DrawRangeElements` call.

<!-- Please describe your changes on the following line: -->
I have started working on this function, but not sure how could I check for the Uniform Block Backing (https://www.khronos.org/registry/webgl/specs/latest/2.0/#ACTIVE_UNIFORM_BLOCK_BACKING).
I am looking for some advice.

---
<!-- 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] There are tests for these changes

cc @mmatyas @zakorgy @jdm
<!-- 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-30 13:59:05 -04:00
Gregory Terzian
53497fe87f shutting down IPC router thread when a process shuts down. 2020-03-31 00:49:28 +08:00
bors-servo
236762880c
Auto merge of #26058 - servo:layout-2020-improvements, r=SimonSapin
Make many improvements to the layout/script comms story

Now `LayoutDom<'dom, T>` is a mere wrapper around a `&'dom T`.
2020-03-30 10:56:35 -04:00
bors-servo
fd6f9140f7
Auto merge of #26056 - gterzian:enable_atomics_wait_on_dedicated_worker, r=jdm
Enable Atomics.wait in a dedicated worker agent

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

FIX #25191

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

<!-- 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-30 10:42:23 -04:00
Istvan
bfa43fbeba Add support for DrawRangeElements in WebGL2
Adds initial support for the WebGL2 `DrawRangeElements` call.
2020-03-30 13:55:01 +02:00
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
Gregory Terzian
3ce6109836 enable Atomics.wait in a dedicated worker agent 2020-03-30 15:23:04 +08:00