-
Notifications
You must be signed in to change notification settings - Fork 20
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
Consider merging immersive-ar
into WebXR
#32
Comments
Part of the reason behind the module split was so that we could cleanly define all of the AR stuff in a separate module. Moving this back makes modules less useful. That said, we could do the minimal change here: move |
Isn't there a way to say "this is additive to the thing in the main spec"? It's understood that this module build on webxr, so in general we'll need a convention to say "add or change some definition in the main spec" |
Currently there is no machine-readable way to say an enum is an extension of another one. There is an existing discussion to allow it: whatwg/webidl#184 |
@blairmacintyre No, see whatwg/webidl#184 . Talking to folks at TPAC it seemed like partial enums weren't really desirable. This is doable for spec text (which we'll have to do a bunch), but less so for webidls, especially since they're slurped by various tools (which is AIUI the context of this issue). It might be possible to tweak the tooling to support this, idk. |
In this case, it may be possible to simply define It's fairly similar to what @Manishearth suggests above with the exception that I do not think we should have one spec requiring to fail and another saying otherwise because the conflict between the two specs would prevent browsers to properly implement one or the other. |
Wouldn't that make it harder to add other modes later (ie |
I think we have precedent with specs explicitly overriding others, especially if we call it out in the first spec. There will need to be some form of overriding no matter what. We could also do it as a DOMString, yes. I feel like that's not as good for documentation. |
I think @mounirlamouri's suggestion matches what Permissions spec does: it simply describes it's for another spec and skips everything else. |
No, it wouldn't. The only impact would be that if we send a version of WebXR to REC, it may miss new values that are in the ED. Though, this is mostly an administrative problem, it has no practical impact.
|
/agenda to figure out what we want to do here |
Honestly my preference would be to keep enums well scoped to the documents that define their behavior, but given that it appears partial enums are not being considered I don't think we can conscionably continue to write spec text as if they exist. That leaves us with two clear alternatives:
The latter approach is certainly more extensible, and it may be prudent for something that we expect to be amended frequently. (Perhaps this is how we should manage the That's especially true for an enum defined in a spec outside the IW group's control, like Gamepad. In that case it seems pretty clear that the recommendation is that we work with the host spec to incorporate our desired enum value. It's obviously not desirable to jump into asking a different spec for modifications right away, though, so I would recommend that until a proposal solidifies we leave an ISSUE in the spec text indicating the desired additions to the other spec in lieu of duplicating the enum or faking partial enum support. Given all that, my suggested changes (though I'm not particularly excited about them) are:
|
The whole point of modularizing is to change the behavior of the WebXR spec. If the TAG is against this, do we need to revisit that decision? Another advantage of moving to |
This decision happened before I joined this project. I am missing too much context to answer. This said, in principle, having modules for incubation doesn't require us to have different specs when going to REC. The modules could be merged into the main spec when they are ready. They could also be treated as different spec.
This is a fair point and a common concern. In practice, we don't really expect too many values here and |
Is this really the case? My understanding of this when talking to webidl (and one TAG) person, informally, was that they don't like webidl partials (dictionaries and enums, interfaces are kinda necessary) because they cause problems, but specs extending each other in spec text is okay. I was mostly focused on the partial enums though, so I could be wrong here. |
I was told by one person that they consider I didn't say that it wasn't okay to extend another spec but it's not okay to modify its behaviour in the manner of a hot fix/patch in the other spec. The line between extending and modifying can be thin and I wouldn't be surprised that some of the guidelines surfacing are to avoid people walking on the wrong side of it: if you can't have partial interfaces/dictionary, you must surface the entry point to your change in the main spec. |
Yep, what I heard was also that many consider |
That's all correct. The important part is what you call "extend" in this context. |
Related issue: immersive-web/webxr#817. |
Removing the agenda label because it was discussed, if it needs more time feel free to re-agenda it. |
This issue is fixed by PR #38 |
Currently there are two enums named
XRSessionMode
in Web IDL world, one from WebXR Device API and another from WebXR AR module. As they can cause potential confusion, could we consider merging those two?Relevant issues:
The text was updated successfully, but these errors were encountered: