-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use spec concept of Navigable #31520
Comments
I think the concept of a Navigable is wider than a WebView. An iframe and be a Navigable, but an iframe is not a WebView, which is a top level series of Documents. The WebView terminology comes from what Android, Blink, and WebKit use and it has a pretty common understanding (https://en.wikipedia.org/wiki/WebView). |
Thanks for the info.
Sounds like https://html.spec.whatwg.org/multipage/#traversable-navigable (which is indeed a narrower concept). |
I think it's a great idea to use the spec language the for code that implements it, but I'm not sure it makes sense for this to always be exposed in the Constellation and definitely not the API. Folks using Servo will know what a WebView is, which make it a very useful name. |
I agree WebView should be a term for external users. The code implementation itself should keep with spec. |
As I am looking into #31505, I came across what to me is a new concept in the spec: the navigable.
It is described in the spec as:
This appears to match what we call a Webview, see
servo/components/constellation/webview.rs
Line 10 in 3a3e76a
If that is correct, I think it would be nice to use the same name as the spec.
Besides just renaming, I think we should try to stay as close to the spec as possible in terms of managing these, and their interactions with other concepts like session history, as well as the "update the rending" stuff in the HTML event-loop. As a quick example of how this matters, see https://html.spec.whatwg.org/multipage/webappapis.html#event-loop-processing-model:window-event-loop-3, which states that:
That sentence actually crosses between
script
andconstellation
, in the sense that "active document" involves the session history, and "navigable" could be a top-level BC or an iframe in that event-loop. Also "rendering opportunity" requires some knowledge of the rendering cycle.Needless to say, to properly "wait for a rendering opportunity for an active document for one navigable" will require some cooperation between script and the constellation beyond what we are currently doing(I think).
For example, running the resize steps for a document should be done as part of the "update the rendering" task in
script
, but currently we are simply handling incoming messages from the constellation for a given pipeline, which to me appears to be lacking the necessary context to determine whether this is an actual rendering opportunity for an active docume of (which?) navigable.I'll try to come-up with more specific examples as I work through #31505, and make this issue more actionable.
The text was updated successfully, but these errors were encountered: