- From: Robert O'Callahan <robert@ocallahan.org>
- Date: Wed, 2 Jul 2014 09:30:29 +1200
- To: Domenic Denicola <domenic@domenicdenicola.com>
- Cc: Rik Cabanier <cabanier@gmail.com>, Dirk Schulze <dschulze@adobe.com>, Ian Hickson <ian@hixie.ch>, "public-script-coord@w3.org" <public-script-coord@w3.org>
- Message-ID: <CAOp6jLakT8GonRxOwG-pKzz4nfvLQjfye8zTP3U=Xprhb5ZycA@mail.gmail.com>
On Wed, Jul 2, 2014 at 8:29 AM, Domenic Denicola < domenic@domenicdenicola.com> wrote: > Roc's earlier message hinted at a way out of the latter. In the interest > of being constructive and making some more actionable suggestions in this > thread, here is a draft of what I think would solve both problems while > maintaining (as far as I can tell) the desired properties of a solution: > > https://gist.github.com/domenic/8f96ca2eccff5df951ef > > Notably: > > - DOMRect is a mutable DOMRect that can be used for whatever. > - DOMQuadBounds serves as the bounds for a quad. > - DOMRectUtils gives you the top/right/bottom/left utilities, as well as a > place to put future rect-related utilities, and is implemented by (but not > inherited from) DOMRect and DOMQuadBounds. > > What do you think? > Thanks. That's not bad but it seems like a regression from the current spec in a few ways: 1) Web authors can't extend DOMRectUtils with new methods in one place. They'd have to add new methods to both DOMQuadBounds.prototype and DOMRect.prototype. In the current spec, they only have to add methods to DOMRectReadOnly. 2) In practice, exposing DOMQuadBounds seems unnecessary. The only thing it provides that the current spec does not is the ability for authors to construct a DOMQuadBounds of a non-DOMQuad JS object. But it's unclear whether anyone wants that, and it adds significant complexity to the browser implementation of DOMQuadBounds. In fact I can't think of anything like this (a DOM object that wraps a JS object) in the Web platform today. 3) There is nothing to keep DOMRect and DOMQuadBounds consistent in the syntax and semantics of their common members other than editor vigilance. Nothing even states what consistency is required. 4) Problems 1 through 3 get worse every time we add a new browser-implemented read-only rectangle view, e.g. if we add DOMPolygon.bounds or Canvas2DPath.bounds. I'd like to push a little more against the requirement that every host object class have a corresponding WebIDL interface. That seems to require spec work and API maintenance for no author benefit, as well as making specs improperly dependent on implementation details (that could legitimately vary across implementations). Rob -- Jtehsauts tshaei dS,o n" Wohfy Mdaon yhoaus eanuttehrotraiitny eovni le atrhtohu gthot sf oirng iyvoeu rs ihnesa.r"t sS?o Whhei csha iids teoa stiheer :p atroa lsyazye,d 'mYaonu,r "sGients uapr,e tfaokreg iyvoeunr, 'm aotr atnod sgaoy ,h o'mGee.t" uTph eann dt hwea lmka'n? gBoutt uIp waanndt wyeonut thoo mken.o w
Received on Tuesday, 1 July 2014 21:30:57 UTC