On 2/20/13 7:26 AM, Anne van Kesteren wrote:
These already cannot be just localName checks
They often are in practice for extensions and web script.
For browser code or better-written extensions and web script they're
typically localName + namespaceURI checks.
I also fail to see exactly what the problem is here, an
example would help.
Here's a simple example.
Say you have a browser extension that hooks into the context menu code
and adds items to context menus for images that do something the user
wants. How does it detect images? Given that instanceof tends to be a
broken puppy when multiple globals are involved (though we're working on
finally getting that fixed), it would typically do things like (for a
well-written extension):
if ((isHTML(element) &&
(element.localName == "img" ||
(element.localName == "input" &&
element.type == "image"))) ||
(isSVG(element) && element.localName == "img")) {
// Add my context menu items
}
(maybe with some extra complexity for <object>).
Now if you create a custom element inheriting from HTMLImageElement but
not using "img" as the localName suddenly the extension won't show its
context menu items on that image and the user will be unhappy because
they can't do things with that image that they can do with all other images.
-Boris