Thanks, that's a good place to start digging.
I'm trying to do see about doing a port of webkit to Squeak/Pharo.
So I'm trying to figure out where the lines are between the portable
and the platform specific code. Squeak has its own graphics system
and widget set. It doesn't use native widgets. So as I dig into it
I'm finding that:
1) Fetching data from URLS is platform specific?
2) Layout/Geometry and abstract painting seems to be done in
WebCore::Renderxxx but this isn't the DOM - correct?
3) The DOM is represented differently on every platform and bound to
javascript somehow? - so do I need to create a Smalltalk version of
the DOM based on some IDL? I see the code generator and two parallel
hierarchies in WebCore (I happen to be working on a Mac but I want it
to be as portable as Squeak which means using Squeak graphics and
either Smalltalk DOM objects, or C++ DOM bridged somehow).
I guess I'm trying to find the portable/platform interfaces and its
not so obvious which is which.
On Aug 15, 2009, at 4:40 AM, Ryan Leavengood wrote:
On Sat, Aug 15, 2009 at 6:31 AM, Eagle
Offshore<[email protected]> wrote:
Anybody got a snippet of code that shows how to take a URL string
and get it
loaded/parsed/and painted? I'm going round and round trying to
figure out
what class is the entry point to kick off the entire load/display
cycle.
Each port does it differently, but it generally will start with some
sort of binding in the actual "WebKit" part of the code. In fact each
port has a simple *Launcher application which should have the code you
are interested in. As an example, here is the main method of
GtkLauncher (WebKitTools/GtkLauncher/main.c):
int
main (int argc, char* argv[])
{
gtk_init (&argc, &argv);
if (!g_thread_supported ())
g_thread_init (NULL);
GtkWidget* vbox = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), create_toolbar (), FALSE,
FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), create_browser (), TRUE,
TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox), create_statusbar (), FALSE,
FALSE, 0);
main_window = create_window ();
gtk_container_add (GTK_CONTAINER (main_window), vbox);
gchar* uri = (gchar*) (argc > 1 ? argv[1] : "http://
www.google.com/");
webkit_web_view_load_uri (web_view, uri);
gtk_widget_grab_focus (GTK_WIDGET (web_view));
gtk_widget_show_all (main_window);
gtk_main ();
return 0;
}
The above makes use of the GTK port WebKit bindings (specifically it
uses webkit_web_view_load_uri) which are at WebKit/gtk/webkit. Other
ports are similar.
--
Regards,
Ryan
_______________________________________________
webkit-help mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-help
_______________________________________________
webkit-help mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-help