Skip to content
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

Update WebIDL definition(s) to use new mixin syntax #497

Closed
1 task
tobie opened this issue Nov 3, 2017 · 4 comments
Closed
1 task

Update WebIDL definition(s) to use new mixin syntax #497

tobie opened this issue Nov 3, 2017 · 4 comments
Assignees

Comments

@tobie
Copy link
Member

tobie commented Nov 3, 2017

Hi all!

WebIDL recently introduced dedicated syntax for mixins.

This syntax replaces the [NoInterfaceObject] extended attribute and implements statement which have been deprecated (except for a few legacy uses cases explicitely mentioned in the spec).

You can read more about it here.

In most cases, the changes should be relatively straightforward. The now deprecated:

interface Foo { };

[NoInterfaceObject]  // (Mostly) DEPRECATED
interface Bar { };
Foo implementes Bar; // DEPRECATED

should just be rewritten as:

interface Foo { };

interface mixin Bar { };
Foo includes Bar;

Additonaly, a section on when to use partials and mixins has been added to the spec. It's short and might be worth a read.

It seems the following interfaces in the Media Capture and Streams spec are impacted by this change:

  • NavigatorUserMedia

We're sorry for the inconvenience this causes, but our hope is that this ultimately makes things simpler and clearer for everybody.

As always, please feel free to reach out if you have any questions.

Thanks!


Tracked in: whatwg/webidl#472 | Original pull-request: whatwg/webidl#433

@tobie tobie mentioned this issue Nov 3, 2017
4 tasks
@alvestrand
Copy link
Contributor

alvestrand commented Nov 4, 2017

From the advice section at https://heycam.github.io/webidl/#using-mixins-and-partials it seems that we should just say

partial interface Navigator {
    [SameObject]
    readonly attribute MediaDevices mediaDevices;
};

and leave it at that. This popularizes the idea of using "partial" across several specifications; is this a desirable evolution of "partial"?

@tobie
Copy link
Member Author

tobie commented Nov 6, 2017

This popularizes the idea of using "partial" across several specifications; is this a desirable evolution of "partial"?

I think that's one of its main purpose. That said you're free to put everything in a mixin and include that, if it makes more sense for your particular use case.

@marcoscaceres
Copy link
Member

Seems this was fixed by #509 - could this issue be closed?

@jan-ivar
Copy link
Member

I believe so. @tobie can you close it? - I don't have the power to apparently.

@tobie tobie closed this as completed May 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants