aboutsummaryrefslogtreecommitdiffstats
path: root/components/script_layout_interface/rpc.rs
Commit message (Collapse)AuthorAgeFilesLines
* Move `*_traits` and other shared types to `shared`Martin Robinson2023-11-031-75/+0
| | | | | | | | | | | | This is the start of the organization of types that are in their own crates in order to break dependency cycles between other crates. The idea here is that putting these packages into their own directory is the first step toward cleaning them up. They have grown organically and it is difficult to explain to new folks where to put new shared types. Many of these crates contain more than traits or don't contain traits at all. Notably, `script_traits` isn't touched because it is vendored from Gecko. Eventually this will move to `third_party`.
* Refactor scrolls on the window object (#29680)Martin Robinson2023-09-151-1/+1
| | | | | | | | | | | | | | 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>
* 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/+4
|
* Don't go through the layout thread to retrieve a node's primary styleAnthony Ramine2020-04-071-8/+0
|
* dom: Calculate the viewport size of iframes when they are first added to the ↵Josh Matthews2019-11-061-0/+4
| | | | tree.
* 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.
* Remove unused code from script* cratesest312019-06-021-4/+1
|
* Update MPL license to https (part 4)Jan Andre Ikenmeyer2018-11-191-1/+1
|
* Reorder importsPyfisch2018-11-061-1/+1
|
* Implement element.innerText getterFernando Jiménez Moreno2018-02-131-1/+2
|
* Update WebRenderMartin Robinson2018-02-061-4/+4
| | | | | | | | | 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-22/+7
| | | | | | | | 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.
* Switch to using WebRender hit testingMartin Robinson2017-10-171-7/+1
| | | | | | | | 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.
* Upgrade to the latest version of WebRenderMartin Robinson2017-07-131-1/+1
|
* Bump euclid to 0.14.Nicolas Silva2017-06-141-2/+1
|
* Send information to script as part of finishing layout.Josh Matthews2017-05-151-5/+0
| | | | | | | This avoids the need for multiple layout RPC operations immediately following return of control to script. This means that layout and script can continue to operate in parallel at this point, rather than one potentially waiting on the shared mutex to be unlocked.
* Root nodes for the duration of their CSS transitions.Josh Matthews2017-05-151-0/+2
| | | | | | | | This ensures that we can pass a node address as part of the asynchronous transition end notification, making it safe to fire the corresponding DOM event on the node from the script thread. Without explicitly rooting this node when the transition starts, we risk the node being GCed before the transition is complete.
* Eliminate ScrollRootIdMartin Robinson2017-04-201-2/+2
| | | | | | | Just use WebRender's ClipId directly. This will allow us to create and use ReferenceFrames in the future, if we need to do that. It will also make it easier to have Servo responsible for creating the root scrolling area, which will allow removing some old hacks in the future.
* s/nodes_from_point/nodes_from_point_response and change test from reftest to ↵Fernando Jiménez Moreno2017-03-021-1/+1
| | | | regular test checking only the fixed crash
* Trigger reflow on document.elementsFromPointFernando Jiménez Moreno2017-03-021-1/+2
|
* Make script thread initiate requests for images needed by layout.Josh Matthews2017-02-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In support of this goal, the layout thread collects information about CSS images that are missing image data and hands it off to the script thread after layout completes. The script thread stores a list of nodes that will need to be reflowed after the associated network request is complete. The script thread ensures that the nodes are not GCed while a request is ongoing, which the layout thread is incapable of guaranteeing. The image cache's API has also been redesigned in support of this work. No network requests are made by the new image cache, since it does not possess the document-specific information necessary to initiate them. Instead, there is now a single, synchronous query operation that optionally reserves a slot when a cache entry for a URL cannot be found. This reserved slot is then the responsibility of the queryer to populate with the contents of the network response for the URL once it is complete. Any subsequent queries for the same URL will be informed that the response is pending until that occurs. The changes to layout also remove the synchronous image loading code path, which means that reftests now test the same code that non-test binaries execute. The decision to take a screenshot now considers whether there are any outstanding image requests for layout in order to avoid intermittent failures in reftests that use CSS images.
* layout: Expose whether the element was rendered in content_box_query to script.Emilio Cobos Álvarez2017-01-171-1/+1
| | | | But don't change the API yet.
* Position insertion point in input field with mouseFlorian Merz2017-01-111-0/+5
|
* Use PropertyId instead of Atom for CSSStyleDeclaration::get_computed_styleSimon Sapin2016-12-091-1/+1
|
* Reimplement scrolling to fragmentsMartin Robinson2016-11-291-0/+5
| | | | | | | | This reimplemntation of the feature uses ScrollRootIds to scroll particular scrollable areas of the page. Fixes #13736. Fixes #10753.
* Remove concept of Layers from ServoMartin Robinson2016-10-211-7/+0
| | | | | | | | Layers were a feature of the legacy drawing path. If we re-add them at some point, it probably makes more sense to make them a product of display list inspection. This change also remove a bunch of dead painting code.
* layout: Take into account the client point for fixed positioned stacking ↵Emilio Cobos Álvarez2016-08-081-1/+1
| | | | contexts.
* Move LayoutRPC to script_layout_interface.Ms2ger2016-06-201-0/+96