"Benjamin D. Smedberg" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> mark kaplun wrote:
>  > Benjamin Smedberg wrote:
> >>QI the object to nsISVGValue. That is a pseudo-interface implemented by
> >>nsSVGMatrix that a JS object can't implement.
>
> > Please don't do it this way. IIRC when xpconnect wrap the JS object it
first
> > ensures that the JS object implements all of the reqired interfaces, so
QI
>
> What "required interfaces"? The only thing that xpconnect ensures is
> that the JS object implements nsIDOMSVGMatrix, which is not enough... we
> want to ensure that we are passed *our implementation* of nsIDOMSVGMatrix.
>
> > will probably not help you to know if the object is a C++ or JS object.
In
>
> JS objects cannot implement nsISVGValue, because that pseudo-interface
> is declared in a C++ .h file, not in an .idl file, so there is no
> typelib information for xpconnect to use to proxy the interface.
>
> > any case I think that you should not limit the ability to call setMatrix
> > from JS unless you redefine the function as a nonscript one in the IDL
file.
>
> It's part of the DOM, it can't be [noscript]. The goal is not to limit
> who can call setMatrix, but to sanity-check the parameters.
>
> --BDS

I think that I get what you are trying to do, but I still have a question.
How do I create a new matrix in JS? (I failed to find a way in LXR but maybe
it is just me).

Side note: looking at the matrix IDL I don't see why it should be created
only at C++ as there is no aperent link to a DOM node or attribute.

Side note two: There are places in the code
http://lxr.mozilla.org/seamonkey/source/content/svg/content/src/nsSVGPoint.cpp#104
that currently check only that the matrix being passed is not null.

Sorry for being annoying,
  Mark.


_______________________________________________
Mozilla-xpcom mailing list
[EMAIL PROTECTED]
http://mail.mozilla.org/listinfo/mozilla-xpcom

Reply via email to