On Jan 25, 2013, at 4:23 PM, Maciej Stachowiak <m...@apple.com> wrote:

> 
> On Jan 25, 2013, at 4:13 PM, Adam Barth <aba...@webkit.org> wrote:
> 
>> On Fri, Jan 25, 2013 at 2:08 PM, Dirk Schulze <dschu...@adobe.com> wrote:
>>> On Jan 25, 2013, at 9:14 AM, Adam Barth <aba...@webkit.org> wrote:
>>>> On Fri, Jan 25, 2013 at 8:11 AM, Dirk Schulze <dschu...@adobe.com> wrote:
>>>>> This is a followup to the multiple inheritance discussion.
>>>>> 
>>>>> Adam, I checked the IDL files on SVG2 [1]. The interfaces for SVG2 do not 
>>>>> have multiple inheritances of interfaces that are exposed to bindings. 
>>>>> But SVG2 still uses the "implements" statement for "[NoInterfaceObject]" 
>>>>> interfaces [2]. This should at least address your initial concern not to 
>>>>> inherit from different interfaces exposed to bindings.
>>>>> 
>>>>> However, during a discussion on IRC I got the impression that we do not 
>>>>> plan to support the "implements" statement because it can do "weird" 
>>>>> things. If this is right, I would like to understand why this is the case?
>>>> 
>>>> We don't intend to support all the possible things that you can do
>>>> with "implements."  With "implements", you can define arbitrarily
>>>> complicated relationships between interfaces, including some that can
>>>> be implemented only with a QueryInterface-like mechanism.  We're not
>>>> going to implement QueryInterface, so we're not going to implement any
>>>> specifications that require it.
>>> 
>>> This sounds that you consider having "implements" in our WebIDL 
>>> interpreter, or at least would not block adding this per se. This was my 
>>> concern in the first place, since this is already in use in a lot of 
>>> specifications (just with [NoInterfaceObject] as far as I saw).
>> 
>> WebKit doesn't have an WebIDL interpretor.  We have a WebKitIDL
>> compiler.  If you spec something that requires a QueryInterface-like
>> mechanism in the implementation, we will not implement it regardless
>> of what language you write the specification in.  It's a conscious
>> design decision not to implement a COM-like (or XPCOM-like) system.
> 
> Setting aside the more general question, does the SVG2 set of interfaces 
> effectively require a QueryInterface-like mechanism? What limitations, if 
> any, on the use of "implements" would a spec have to follow to dodge this 
> bullet? SVG2 is still evolving, so I suspect it could adjust its use of 
> "implements" if it's an issue for us.

SVG2 does not require any inter process communication. The QueryInterface was 
an example of Adam what we should not implement. SVG2 uses WebIDL's 
"implements" statement for [NoInterfaceObject] interfaces, as the HTML 
specification is doing it. But SVG uses multiple "implements" statements per 
interface:

interface SVGViewSpec
 {
  readonly attribute SVGTransformList transform;
  readonly attribute SVGElement viewTarget;
  readonly attribute DOMString viewBoxString;
  readonly attribute DOMString preserveAspectRatioString;
  readonly attribute DOMString transformString;
  readonly attribute DOMString viewTargetString;
};
SVGViewSpec implements SVGFitToViewBox;
SVGViewSpec implements SVGZoomAndPan;

SVGFitToViewBox and SVGZoomAndPan are both NoInterfaceObjects.

I hope that I am not mistaken and that this is not what you mean with 
QueryInterface.

> 
> If SVG2 does happen to avoid the problem, would we want to use "implements" 
> as the syntax in WebKitIDL or would we want a different syntax? I could see 
> arguments either way.

I think it would be desirable to follow WebIDL and the syntax of this 
specifications as long as the goals overlap.

> 
> (FWIW I agree that we don't want to end up in a position where we'd have to 
> implement a QI-like mechanism for the sake of the bindings, but I can't tell 
> from the conversation so far if this is an immediate issue with SVG2, or just 
> a possible issue with other potential uses of "implements").

If I understand Adam correctly, then the later. If there are problems with the 
SVG2 specification, then I am happy to talk with the SVG WG and find solutions. 
But the SVG WG still needs to cover the behavior of SVG 1.1 as much as possible.

Greetings,
Dirk

> 
> Regards,
> Maciej
> 

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to