Summary
Drop [Custom=LegacyCallAsFunction] for HTMLEmbedElement and HTMLObjectElement, so that document.createElement("embed")() throws with "x is not a function".
Motivation
The base motivation is getting rid of more custom bindings and reducing unimportant differences between our IDL and the spec.
A legacy caller in WebIDL allows an instance to be invoked as a function. HTML used to have this for embed and object, but no more:
https://github.com/whatwg/html/pull/1979 https://github.com/w3c/web-platform-tests/pull/4084
Per the tests for embed and object, the legacy caller is supported by Chrome and Firefox, but not Edge or Safari. It is being removed from Gecko.
Compatibility Risk
Any content that invokes embeds or objects as functions will throw exceptions. There's not much hope of identifying this in httparchive, so use counters are all we have to estimate risk, and they are rounding to zero.
Alternative implementation suggestion for web developers
Just remove these calls. If there is in fact some plugin out there where the legacy caller does something useful, please comment on the issue.
Usage information from UseCounter
https://www.chromestatus.com/metrics/feature/timeline/popularity/152
https://www.chromestatus.com/metrics/feature/timeline/popularity/153
OWP launch tracking bug
Entry on the feature dashboard
Requesting approval to remove too?
Yes, but I'll add a deprecation message for one release cycle before removing.
LGTM2
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.