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

What to do about features that only have one implementation and likely will forever? #209

Closed
domenic opened this issue Sep 29, 2015 · 6 comments
Assignees

Comments

@domenic
Copy link
Member

domenic commented Sep 29, 2015

This has come up a few times:

There are also a few other only-in-one-browser features that are slightly different. They haven't been objected to by the other engines, but they've stuck around for a long time with only one implementation:

  • <dialog>; Blink only
  • BroadcastChannel; Gecko only
  • <menu> and friends; Gecko only, and only some parts of the spec

Other examples not in HTML:

  • Filesystem API
  • Blink's web components implementations, especially HTML imports

In all of these cases, what is our best strategy? Should we remove them? Deprecate them? Should we try to move them to some separate spec as a sort of historical reference for single UAs? Should we mark them with big red boxes of some sort? (Or maybe the caniuse in the sidebar is enough?)

It seems weird to have specs that are essentially documentation for single-vendor features.

@annevk
Copy link
Member

annevk commented Sep 29, 2015

If they have been objected to by a majority we should definitely add warnings. Ideally we have the objections on record.

If we don't have objections we should figure out what the likelihood of it getting implemented is. And perhaps what the likelihood of getting it removed is.

@foolip
Copy link
Member

foolip commented Oct 5, 2015

We also have the reverse kind of situation, where a bad/silly/useless API is implemented by every vendor except one, as is the case with isSameNode(), initMessageEvent() and innerText.

@foolip
Copy link
Member

foolip commented Oct 5, 2015

As for features with just one implementation where that single vendor isn't excited about removing it, maybe we could set a deadline in the spec, to say that if there isn't a second implementation within a year (or something) it will be removed?

Of course, that doesn't work for single-vendor features that don't have a spec, nor does it work for everyone-except-one-vendor features that already has a spec.

@rocallahan
Copy link

Some features with only one implementation are clearly misfeatures that should just be removed from implementations sooner or later. showModalDialog is in that category. Maybe also microdata. These features should be red-flagged in specs and then removed from specs when they're removed from implementations.

Other features with only one implementation are potentially good ideas but perhaps too low priority to ever get interoperably implemented. MediaController may be in this category. These features should probably be flagged as "at risk" in specs. Over time these could move to the former category, or get implemented by other browsers.

Other features with only one implementation are just waiting for other browsers to catch up and we expect that to happen within a few years. Maybe BroadcastChannel is in this category? For these we just leave the spec as-is.

We don't necessarily know or agree which features are in which category. It may not become clear for years or ever. I think we need to carry on handling these on a feature-by-feature basis.

@foolip
Copy link
Member

foolip commented Oct 22, 2015

Assigned to @domenic to decide if there's anything actionable to do in this issue or if we should close it. I basically agree that we need to handle this on a case-by-case basis, while of course learning from previous cases.

@domenic
Copy link
Member Author

domenic commented Oct 22, 2015

Yeah, seems like the discussion here has run its course.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants