This is a useful feature to have in a browser engine, so I think it
should be enabled by default. I believe that the original concern was
that there was a security issue, but this certainly has the same
security concerns as normal file loading.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This will prevent rust-analyzer from suggesting the import of these
types when dealing with `crossbeam` channels.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* script: Make DOM proxy handlers generic over DOM types.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* script: Make finalize and trace hooks generic over DOM types.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
There are a few methods are still difficult to implement without
the help of surfman. To simplify the trait methods, all methods that
return surfman types are removed. They are either handled by
embedders themselves or abstract to simpler types that servo
components need. The most noticeable changes are:
- Methods related to native surface are moved to servo_glue. The
embedder should decide when to remove/replace the surface and it's
outside of servo's scope.
- Methods required by servo media now return exact media types for it.
The other major change is sevevral difficult trait methods that are
reuiqred by WebGL and Servo media have default implementation. So they
can be optional for users to implement.
Signed-off-by: Wu Wayne <yuweiwu@pm.me>
This change adds the second major part of the new API: delegates which
have methods called by the Servo loop. When a delegate is set on a
`WebView` or on `Servo` itself, the event loop will call into
appropriate delegate methods. Applications can implement the delegate on
their own structs to add special behavior per-`WebView` or for all
`WebView`s.
In addition, each delegate has a default implementation, which
automatically exposes "reasonable" behavior such as by-default allowing
navigation.
There's a lot more work to do here, such as refining the delegate
methods so that they all have nice interfaces, particulary with regard
to delegate methods that need an asynchronous response. This will be
handed gradually as we keep working on the API.
Signed-off-by: Delan Azabani <dazabani@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
A box is usually sized by the formatting context in which it participates.
However, tables have some special sizing behaviors that we implemented
with a `content_inline_size_for_table` override.
However, breaking the assumptions of the formatting context isn't great.
It was also bad for performance that we could try to layout a table
among floats even though it wouldn't en up fitting because of a larger
min-content size.
Therefore, this changes the logic so that formatting contexts use some
special sizing for tables, and then tables only override that amount
when there are collapsed columns. Eventually, we should try to remove
that case too, see https://github.com/w3c/csswg-drafts/issues/11408
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
* Make traverse_preorder follow children of shadow hosts
Children of shadow hosts are not displayed, but they
still exist in the DOM and must be traversed.
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Fix traverse_preorder over shadow roots
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Update WPT expectations
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Clean up some stale debug options for ServoDriver
Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com>
* Fix wpt manifest
Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com>
---------
Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com>
Remove this event which is completely unused. In addition, lots of code
becomes dead once this happens, so remove that as well. It may be
possible that a different behavior is necessary immediately following a
window resize, but the new API will handle this in a different way than
this embedder event -- which complicates how the event loop is spun in
both the API and servoshell.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* change http-network-or-cache-fetch to take FetchParams argument instead of request
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* change http-network-fetch to take fetchParams as an argument
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* run formatter
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* renaming variable to be similar to step in spec
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
* refixing usage of http_request after rebasing
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
---------
Signed-off-by: Lloyd Massiah <artmis9@protonmail.com>
These will be a single method in the upcoming `WebView` delegate, so it
makes sense to also combine the internal message to match this. In
addition, since `LoadStatus` is now exposed to the API if there is ever
the need to add more statuses or to move to an event-based version, the
API is already set up for this.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
The outer display type of a table element applies to the table wrapper
box. The table grid box needs to be block-level as defined in
https://drafts.csswg.org/css-tables/#table-grid-box
Therefore this sets `display: table` on table grid boxes, and then when
painting collapsed table borders we can use the usual logic to compute
the StackingContextSection.
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
In #35075 I painted them in front of the decorations (backgrounds and
borders) of any block-level box in the same stacking context. I did that
because other browsers paint them in front of the decorations of the
descendants of the table, but my approach also painted them in front of
decorations of following siblings of the table, which was wrong.
This patch makes it so that collapsed table orders are painted in the
same step as decorations. However, tables defer painting their collapsed
borders after the decorations of their descendants.
This matches Blink and WebKit, and brings us closer to Gecko (which is
slightly different in some corner cases).
Signed-off-by: Oriol Brufau <obrufau@igalia.com>