aboutsummaryrefslogtreecommitdiffstats
path: root/components/script_layout_interface/message.rs
Commit message (Collapse)AuthorAgeFilesLines
* Refactor scrolls on the window object (#29680)Martin Robinson2023-09-151-3/+3
| | | | | | | | | | | | | | Refactor the scrolling and scrollable area calculation on the window object, to make it better match the specification. This has some mild changes to behavior, but in general things work the same as they did before. This is mainly preparation for properly handling viewport propagation of the `overflow` property but seems to fix a few issues as well. There is one new failure in Layout 2020 regarding `position: sticky`, but this isn't a big deal because there is no support for `position: sticky` in Layout 2020 yet. Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
* Strict import formatting (grouping and granularity) (#30325)Samson2023-09-111-6/+7
| | | | | * strict imports formatting * Reformat all imports
* remove `extern crate` (#30311)Samson2023-09-081-0/+1
| | | | | | | | | | | * remove extern crate * Update components/script_plugins/lib.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Scroll from script should trigger a reflowMartin Robinson2023-04-251-6/+6
| | | | | | | | | Scrolling from script should flow layout and send a display list to WebRender. This allows all of the scroll nodes to exist in WebRender before asking it to move the node. See https://gist.github.com/paulirish/5d52fb081b3570c81e3a. Fixes #29659.
* ensure clean shutdown of all threads running JSGregory Terzian2020-06-301-1/+1
|
* Add DocumentAnimationSet and AnimationSetKeyMartin Robinson2020-06-151-4/+2
| | | | | | | This will be used in order to hold animations for pseudo elements in the DocumentAnimationSet. Also no longer store the OpaqueNode in the animation and transition data structures. This is already part of the DocumentAnimationSet key.
* Store resolved font style in canvas context stateUtsav Oza2020-06-101-3/+3
|
* Query layout to resolve canvas font property valueUtsav Oza2020-06-101-0/+3
|
* Implement concept of dirty rootAnthony Ramine2020-05-191-0/+2
|
* Move most animation processing to scriptMartin Robinson2020-05-121-7/+9
| | | | | | | This is preparation for sharing this code with layout_2020 and implementing selective off-the-main-thread animations. We still look for nodes not in the flow tree in the layout thread.
* Start having animations conform to the HTML specMartin Robinson2020-05-051-2/+2
| | | | | | | | | | | | | | This is a small step toward fixing #19242. The main idea is that the clock for animations should advance as the event loop ticks. We accomplish this by moving the clock from layout and naming it the "animation timeline" which is the spec language. This should fix flakiness with animations and transitions tests where a reflow could move animations forward while script was running. This change also starts to break out transition and animation events into their own data structure, because it's quite likely that the next step in fixing #19242 is to no longer send these events through a channel.
* Use a restyle for animation ticksMartin Robinson2020-05-051-9/+2
| | | | | | | | | | | | | | This change corrects synchronization issues with animations, by reworking the animation processing model to do a quick restyle and incremental layout when ticking animations. While this change adds overhead to animation ticks, the idea is that this will be the fallback when synchronous behavior is required to fulfill specification requirements. In the optimistic case, many animations could be updated and applied off-the-main-thread and then resynchronized when style information is queried by script. Fixes #13865.
* Add support for animationend eventMartin Robinson2020-05-011-1/+1
| | | | | | | | | | This is triggered when an animation finishes. This is a high priority because it allows us to start rooting nodes with animations in the script thread. This doesn't yet cause a lot of tests to pass because they rely on the existence of `Document.getAnimations()` and the presence of `animationstart` and animationiteration` events.
* Don't go through the layout thread to retrieve a node's primary styleAnthony Ramine2020-04-071-3/+3
|
* Make DOM own the style and layout data, in an UnsafeCellAnthony Ramine2020-04-041-6/+1
| | | | The previous Cell was a lie.
* Pass pending restyles instead of draining them from layoutAnthony Ramine2020-03-281-0/+2
|
* Move PendingRestyle to the style_layout_interface crateAnthony Ramine2020-03-281-1/+28
|
* Make Background Hang Monitor OptionalKunal Mohan2020-02-231-1/+1
| | | | | | This is done by wrapping all channels of communication and related objects inside Option which are configured using flag inside servo_config.
* remove option for origin and mirror changes to layout_thread_2020Kunal Mohan2020-02-181-2/+2
|
* Take origin from window instead of creating a new one in case of reflowKunal Mohan2020-02-151-1/+3
| | | | | | | | | | Everytime a new LayoutContext was created, it created a new origin which caused endless stream of image loads to occur in case of reflow. The reason for this was that the existing image, although cached successfully, was not used because the entry in hashmap did not match because of different(new) origin. This is solved by storing the origin of a window in enum ScriptReflow and used in creating new LayoutContext in case of reflow.
* Improve the name the NodeGeometryQueryMartin Robinson2020-02-051-3/+3
| | | | | | | This query is used to get the clientTop, clientWidth, clientHeight, clientLeft properties of DOM objects. "NodeGeometry" doesn't really capture what these properties do as they often are returning the width of element border.
* Ensure layout/script always have a correct viewport size when a new pipeline ↵Josh Matthews2019-11-061-0/+1
| | | | is created.
* dom: Calculate the viewport size of iframes when they are first added to the ↵Josh Matthews2019-11-061-1/+4
| | | | tree.
* restructure content process shutdown ack with threaded sender, without layoutGregory Terzian2019-08-171-1/+0
|
* Update euclid.Emilio Cobos Álvarez2019-07-231-1/+1
| | | | | | | | There are a few canvas2d-related dependencies that haven't updated, but they only use euclid internally so that's not blocking landing the rest of the changes. Given the size of this patch, I think it's useful to get this landed as-is.
* Fix some new warningsSimon Sapin2019-06-221-1/+1
|
* Measure layout queries blocked by ongoing layoutPhilipp Albrecht2019-04-131-0/+2
|
* Rename NewLayoutThreadInfo to LayoutThreadInitAnthony Ramine2019-01-141-2/+2
| | | | Following the convention of our other init structs.
* Make some cosmetic changes to ReflowGoal methodsAnthony Ramine2019-01-141-24/+24
|
* Make a bunch of layout queries morally saferAnthony Ramine2019-01-091-7/+12
|
* Rustfmt has changed its default style :/Simon Sapin2018-12-281-1/+1
|
* style: Make Servo use a single thread-pool for layout-related tasks per-process.Emilio Cobos Álvarez2018-12-231-1/+0
| | | | | | Instead of per-document. This also allows to reuse this thread-pool if needed for other stuff, like parallel CSS parsing (#22478), and to share more code with Gecko, which is always nice.
* Cancel animations that affect nodes that do not participate in layout.Josh Matthews2018-12-101-0/+3
|
* introduce a background-hang-monitor:Gregory Terzian2018-11-261-1/+2
| | | | | Mac-Os implementation of a thread sampler, Linux and Windows skeleton implementations.
* Update MPL license to https (part 4)Jan Andre Ikenmeyer2018-11-191-1/+1
|
* Update crossbeam-channel to 0.3Bastien Orivel2018-11-181-1/+1
|
* `cargo fix --edition-idioms`Simon Sapin2018-11-081-3/+3
|
* Reorder importsPyfisch2018-11-061-2/+2
|
* Sort `use` statementsSimon Sapin2018-11-061-2/+2
|
* `cargo fix --edition`Simon Sapin2018-11-061-2/+2
|
* Replace mpsc with crossbeam/servo channel, update ipc-channelSimon Sapin2018-09-121-1/+1
| | | | Co-authored-by: Gregory Terzian <gterzian@users.noreply.github.com>
* fix time measurecsmoe2018-03-251-21/+0
|
* introduce layout query timestampcsmoe2018-03-181-0/+21
|
* extract querymsg from ReflowGoalmoe2018-03-171-21/+38
|
* Implement element.innerText getterFernando Jiménez Moreno2018-02-131-2/+5
|
* Update WebRenderMartin Robinson2018-02-061-4/+3
| | | | | | | | | This allows servo to use the ExternalScrollId API from WebRender fixing some issues related to duplicate scroll root ids. Fixes #17176. Fixes #19287. Fixes #19648.
* Add layout RPC query for getting an element's styleJon Leighton2018-01-281-6/+5
| | | | | | | | This enables us to implement Element::has_css_layout_box() in a more direct way, and also enables us to remove some of the existing more specific queries. Fixes #19811.
* changed f64 to u64 for navigation start timing until it had to be floatddh2017-11-011-1/+1
|
* Use WebRender to compute text index on click eventsMartin Robinson2017-10-181-1/+1
| | | | | | This is the second half of switching over to WebRender for hit testing. Now that WebRender gives us the location of the hit tested point in the display item, we can use that to calculate text index.
* Switch to using WebRender hit testingMartin Robinson2017-10-171-11/+15
| | | | | | | | This trades quite a bit of complicated code in Servo for few more messages and a significant performance improvement. In particular, WebRender can search the entire display list at once instead of ping-ponging down the pipeline tree. This allows us to send mouse events to the correct pipeline immediately.