Closed Bug 863954 Opened 12 years ago Closed 4 years ago

Can't have C++-implemented WebIDL interface inheriting from JS-implemented interface (or vice versa) when unforgeable members are present attributes

Categories

(Core :: DOM: Bindings (WebIDL), defect, P5)

x86
macOS
defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: bzbarsky, Unassigned)

References

(Blocks 1 open bug)

Details

The problem is that unforgeables get copied onto descendant interfaces. But the signature is not the same for JS-implemented and C++-implemented, so this: [Unforgeable] readonly attribute long unforgeableAttr; gives a "int32_t GetUnforgeableAttr(ErrorResult&)" member on the autogenerated C++ implementation for the JS-implemented interface but a call like: self->UnforgeableAttr(); in the binding for the C++-implemented interface. And vice versa if the JS-implemented thing inherits from a C++-implemented thing. The good news is that unforgeable stuff is rare...
The bad news is that we have JS-implemented events and want to make Event.isTrusted unforgeable. I suppose we could flag copied unforgeable stuff so we don't munge its signature... Any brighter ideas?
Blocks: 637248
Or I just make MozInterAppMessageEvent (which is currently the only JS implemented event) to use webidl event codegen ;) I removed some JS implementations few days ago, but apparently missed MozInterAppMessageEvent.
https://bugzilla.mozilla.org/show_bug.cgi?id=1472046 Move all DOM bugs that haven’t been updated in more than 3 years and has no one currently assigned to P5. If you have questions, please contact :mdaly.
Priority: -- → P5
Component: DOM → DOM: Core & HTML
Component: DOM: Core & HTML → DOM: Bindings (WebIDL)

We're trying to deprecate JS implemented WebIDL, so no need to add new features to it (and Event.isTrusted was marked unforgeable ages ago).

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.