Open Bug 1713877 Opened 3 years ago Updated 2 months ago

Determine long term replacement for LegacyNoInterfaceObject WebIDL attribute used in the WebExtensions WebIDL binding definitions

Categories

(WebExtensions :: General, task, P3)

task

Tracking

(Not tracked)

People

(Reporter: rpl, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [addons-jira])

This is a follow up for Bug 1682632 and Bug 1688040:

  • as part of Bug 1631581 we have renamed NoInterfaceObject into LegacyNoInterfaceObject across mozilla-central (to align our webidl attributes with a similar change applied to the w3c specs, references: https://github.com/heycam/webidl/issues/350 and https://github.com/heycam/webidl/pull/870)

  • In the patches attached to Bug 1682632 and Bug 1688040 that WebIDL attribute is still being used for the definition of Extension API namespace objects (for the WebIDL interface describing browser/chrome globals and for the WebIDL interface describing the each API, browser.alarms, browser.runtime, browser.test, and some other API object as the the extension port object etc.)

At the moment it looks that there are a number of other pre-existing WebIDL interfaces using the LegacyNoInterfaceObject, but we would like to evaluate a long term approach sooner rather than later and then update the WebExtensions API webidl files to not use the legacy webidl attribute as soon as possible.

As a side note:

  • an older attempt to spec the extensions API using WebIDL (https://browserext.github.io/browserext) was using the same NoInterfaceObject WebIDL attribute on the definition of the API namespaces (e.g. see here)
  • In chromium some of the Extensions API are described in idl files ([1]) that are instead using namespace and some interface nested into the namespace block (e.g. see scripting.idl here)

[1] which seem to be using a WebIDL syntax but with a custom set of extended WebIDL attributes (some other APIs are still described in json files)

Blocks: 1609923
See Also: → 1682632, 1688040
Assignee: nobody → lgreco
Severity: -- → N/A
Status: NEW → ASSIGNED
Priority: -- → P2

Unassigning myself (I will assign it back to me once I'll get back to actively work on it).

Assignee: lgreco → nobody
Status: ASSIGNED → NEW
Whiteboard: [addons-jira]
Priority: P2 → P3
You need to log in before you can comment on or make changes to this bug.