- From: Amelia Bellamy-Royds <amelia.bellamy.royds@gmail.com>
- Date: Sun, 21 Aug 2016 23:35:43 -0600
- To: Robert Longson <longsonr@gmail.com>
- Cc: www-svg <www-svg@w3.org>
- Message-ID: <CAFDDJ7x=G6d2NJZoQ3wEu9TvSkn2W1Zh9YZUVKbTfiU8HTwNTg@mail.gmail.com>
I think the logic for declaring them "No Interface Object" was that there are never instances of these interfaces (they are all mix-ins implemented by the different element interfaces), so there was no need to clutter up the global namespace. If it is a breaking change that is causing problems in implementations, that would be a good argument for implementing them as global objects. But there are likely to be other propblems: the hierarchy of interfaces was collapsed in many cases and names were changed. If tests are detecting the individual interface names, instead of the exposed methods and properties on the element interfaces, this re-organization becomes a breaking change, too. In contrast, if they are all "No Interface Object" interfaces, then the exact names and organization of the mix-in interfaces is safe to change, because it's never exposed in the API. Are you able to generate a full list of interfaces Firefox detects in test cases? ~ABR On 21 August 2016 at 15:07, Robert Longson <longsonr@gmail.com> wrote: > SVG 2 has this webidl definition of SVGZoomAndPan > > > [NoInterfaceObject] > interface *SVGZoomAndPan* { > > // Zoom and Pan Types > const unsigned short SVG_ZOOMANDPAN_UNKNOWN <https://www.w3.org/TR/SVG2/types.html#__svg__SVGZoomAndPan__SVG_ZOOMANDPAN_UNKNOWN> = 0; > const unsigned short SVG_ZOOMANDPAN_DISABLE <https://www.w3.org/TR/SVG2/types.html#__svg__SVGZoomAndPan__SVG_ZOOMANDPAN_DISABLE> = 1; > const unsigned short SVG_ZOOMANDPAN_MAGNIFY <https://www.w3.org/TR/SVG2/types.html#__svg__SVGZoomAndPan__SVG_ZOOMANDPAN_MAGNIFY> = 2; > > attribute unsigned short zoomAndPan <https://www.w3.org/TR/SVG2/types.html#__svg__SVGZoomAndPan__zoomAndPan>; > }; > > Without the NoInterfaceObject one could write something like > > if (element.zoomAndPan == SVGZoomAndPan.SVG_ZOOMANDPAN_DISABLE) > > While one now has to write it as > > if (element.zoomAndPan == SVGSVGElement.SVG_ZOOMANDPAN_DISABLE) > > The same applies to SVGUnitTypes. Do we mind about keeping backwards > compatibility with any existing usages like this. We found when making > this change that our own unit tests fail on SVGUnitTypes usage for > instance. > > Robert > >
Received on Monday, 22 August 2016 05:36:12 UTC