-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Remove <applet> #1399
Remove <applet> #1399
Conversation
LGTM. |
Missed the obsolete attributes section:
I am a little concerned that this removal is premature given that applet is currently implemented in 3/4 rendering engines. We have signs Edge is interested in removal, but we have heard negative signs from Gecko and no signs from WebKit. Our precedents for removing features of this magnitude includes:
In contrast, we have
My thoughts would be to tag this with "do not merge yet" until we get a clearer sign that this is on track for removal across the board. |
Yeah, I agree. I left |
Well, everything else in that section refers to an element that is defined in the spec, per the note at the top:
In other words, the rest of the section says "on element X, which exists, the attribute Y no longer exists." Whereas if we leave applet in there, it'll be saying "on element X, which no longer exists, the attribute Y no longer exists." Kind of redundant. |
Yep, but that's also true for frameset, frame and marquee which are listed. But we can remove those too. |
Those are all defined in the spec... authors aren't suppose to use them, but they're defined. After this change, applet will not be. |
e2a6c60
to
46cfa63
Compare
We've got a bug and an assignee (me) for removal of the applet tag in Gecko. https://bugzilla.mozilla.org/show_bug.cgi?id=1279218 |
(Close to landing is inaccurate, my bad. It's more that we've now got @qdot looking into it.) |
I think we might as well wait until Firefox has shipped. |
I think we should wait until at least one major browser ships this change in its stable release. It's unlikely that WebKit removes this element in near future regardless, however, due to compatibility concerns. |
@rniwa Chromium removed support in Sep 2015, so has been shipping in Chrome and Opera for a while now. |
I filed an issue for Edge now as it seems there wasn't one. https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11946645/ We also still need tests for this. Do Chromium or Gecko have tests or plan to write/change tests that can be upstreamed to web-platform-tests? |
I suspect Gecko would do that, though help appreciated. Running |
I'll handle the web platform test changes as part of the landing criteria for applet removal in Gecko. Just curious, do we also want to deprecate code/codebase/codetype/archive/classid applet parameters that are reflected in object? |
Great question. Interestingly all but classid are in the obsolete section of the spec; classid affects the object processing model. See "whenever one of the following conditions occur" in the object element. (Although I believe there are open issues about the object processing model not being super accurate, so I am not sure if that's true...) Does anyone know if classid has an effect on, e.g., Flash? It may just be easiest to leave them alone. But if implementers are up for it, it might be nice to remove this cruft too. It does seem unlikely that anyone is relying on the reflection of those Java-specific attributes into the object element given lack of Java support... @foolip, maybe you can give Chromium thoughts? |
In gecko, classid was only used for java (See comments near http://searchfox.org/mozilla-central/source/dom/base/nsObjectLoadingContent.cpp#1625), which is why I included it as a possible candidate for deprecation. We're removing a ton of java support code along with applet, so all that code will be excised anyways. |
@qdot according to https://lists.w3.org/Archives/Public/public-whatwg-archive/2006Aug/0134.html by @bzbarsky, back in the day Fx used to ignore the |
I prefer to leave the reflecting attributes alone. We have lots of obsolete reflecting attributes, they are cheap to support and there's non-zero risk in removing them. |
@domenic, in Chromium, the classid attribute still appears in HTMLObjectElement, where at least part of it points back to the HTML spec: That's all what the element "represents", i.e. layout. AFAICT, the classid attribute isn't used to actually load anything, I can't find anything corresponding to this: "If the classid attribute is present, and has a value that isn't the empty string, then: if the user agent can find a plugin suitable according to the value of the classid attribute, and either plugins aren't being sandboxed or that plugin can be secured, then that plugin should be used, and the value of the data attribute, if any, should be passed to the plugin. If no suitable plugin can be found, or if the plugin reports an error, jump to the step below labeled fallback." Not sure what to make of that. If the reflected attributes are implemented everywhere, then keeping them even if the attributes do nothing would make sense to me. |
Sounds like we'll leave all the reflecting attributes in. I'll file a separate issue to investigate the object processing model. |
Actually, I guess it is fine. That step about using I think there's a larger cleanup to be done around the |
Note that Safari does support non-Flash plugins. |
Hmm. I think Safari started giving back empty arrays for |
It looks like Mozilla is implementing this; we should get ready to land, and also we should put some tests together. I can try to find time myself. |
* Removed applet from document.all[name] collection. * Removed applet from document[name] collection. * Removed applet from window[name] collection. * The document.applets collection now returns an empty collection. * Removed handling for applet in <iframe sandbox>. * Removed rendering rules for applet. * Removed the element itself and HTMLAppletElement. * <applet> now uses HTMLUnknownElement. The parser is intentionally not changed. Fixes #454.
Rebased this PR. It does seem like WPT still needs updates since with https://hg.mozilla.org/integration/autoland/rev/e6f1f895449d @qdot simply rebased the results rather than fixed the tests... |
@annevk Sorry, was kind of on a deadline for getting this in, and I wasn't sure what order the WPTs needed to be updated in relative to the spec. I'll file a followup in bugzilla and get that taken care of? |
Ok, WPT updates happening at https://bugzilla.mozilla.org/show_bug.cgi?id=1386008 |
Rereading this thread I'm left unsure as to whether there's still outstanding feedback on the PR. In any case it needs another round of review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with my latest commit which removes a few extra things.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
<applet> was removed from the spec in whatwg/html#1399.
applet
fromdocument.all[name]
collection.applet
fromdocument[name]
collection.applet
fromwindow[name]
collection.document.applets
collection now returns an empty collection.applet
in<iframe sandbox>
.applet
.HTMLAppletElement
.<applet>
now usesHTMLUnknownElement
.The parser is intentionally not changed.
Fixes #454.
Bugs:
Chromium: https://crbug.com/470301 (removed support in Sep 2015)
WebKit: https://bugs.webkit.org/show_bug.cgi?id=157926
Gecko: https://bugzilla.mozilla.org/show_bug.cgi?id=1279218
Edge: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11946645/