On May 15, 2009, at 7:35 AM, Jack Wootton wrote:

4. Create the context:

JSGlobalContextRef context = JSGlobalContextCreate(globalObjectClass);

You will only do this if you’re using JavaScript outside of a web page. If you want to do this in conjunction with WebKit you’ll need to get the context from WebKit APIs. On Mac OS X the relevant API is - [WebFrame globalContext].

1. Who should share the context? Is a single context used for a single webpage / frame?

See my answer above.

2. Where do I define the class that will actually handle the implementation of any methods on my new object?

I don’t understand the “where” question. Do it wherever makes sense in your program, and call JSClassCreate. Then when it's time to make an object, pass the JSClassRef to JSObjectMake.

3. The object has been made using "JSObjectMake", but how is it added to WebKit?

A common thing to do is to create an object and then put it in a property of the window object, which is the global object inside the web browser. That’s done on Mac OS X by implementing the webView:windowScriptObjectAvailable: method of the frame load delegate. The window script object is a WebScriptObject, and you can get the JSObject version of it by calling the JSObject method on it. Then you can set your object as a property of the window object with the JSObjectSetProperty function.

    -- Darin

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to