On Jul 23, 2009, at 5:38 PM, Eric Seidel wrote:

I'm trying to get a JSDOMGlobalObject from a Node*.  A Node* should
always have one, but our current path through Frame* can sometimes
fail.

Right - what confuses me is that you posted the toJS() function for DOMWindow, where there's no document or node involved. It does go through the frame, but that's to convert properly to the outer window, which is what you should get when you expose a window object to JS. I think it's reasonable for a document to know about its innner window, in our current design.

 - Maciej


-eric

On Thu, Jul 23, 2009 at 5:33 PM, Maciej Stachowiak<m...@apple.com> wrote:

On Jul 23, 2009, at 5:23 PM, Eric Seidel wrote:

It seems all lookups of the current globalObject go through the frame.
document()->frame()->script()->globalObject() is one example.

Another:
JSValue toJS(ExecState*, DOMWindow* domWindow)
{
   if (!domWindow)
       return jsNull();
   Frame* frame = domWindow->frame();
   if (!frame)
       return jsNull();
   return frame->script()->windowShell();
}

Why?  Shouldn't the Document know what its JSDOMGlobalObject is,
regardless of whether its currently in a Frame or not?

The document should probably know its own inner window object, while the frame should hold on to the outer window. I'm not entirely clear on how the
document relates to the code you quoted though.
 - Maciej


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

Reply via email to