[webkit-gtk] Migrating to Webkit2 from WebKit1

Carlos Garcia Campos cgarcia at igalia.com
Thu Dec 12 11:42:04 PST 2013

El jue, 12-12-2013 a las 11:25 -0800, Niranjan Rao escribió:
> Greetings,


> I am trying scope efforts required to migrate to Webkit2 from Webkit1. I 
> came across blog entry by Carlos Garcia Campos at 
> http://blogs.igalia.com/carlosgc/2013/09/10/webkit2gtk-web-process-extensions/, 
> which answered some of questions/problems I had with newer release, it 
> raised some new questions as I started digging into API.
> Currently we use webkit 2.0.1 release in Webkit1 mode. We would like to 
> move latest and greatest to use some new useful features (big thank you 
> for these features).
> My application is in Java using JNI calls to webkit. Its a scraping 
> application for all practical purposes where code "understands" contents 
> of the page and then decides which field needs to filled, selected or 
> clicked. In other words it drives browser window in similar way a human 
> will drive, but decisions coming from code which involves heavy DOM 
> access and manipulation.
> 1. How long webkit1 support will be active? Will there be a cutoff point 
> that says Webkit1 will not be supported after this point

WebKit1 is in maintenance mode, we only fix bugs and some minor API
additions like settings and all in a very low priority. But we don't
have plans to remove WebKit1 in the short term.

> 2. Can  Webkit2 be used by python libraries using introspection? While 
> not necessary for our code, it makes life easier to do quick test in python.

Yes, with some limitations. Web Extensions can't be used for now. We are
not generating the introspection files for the web extensions API (I
plan to fix that soon), but the main problem is that web extensions are
a shared library loaded at run time by the web process, so I don't know
how to make that work in python. 

> 3. New window - could not locate equivalent of "create-web-view" signal 
> so far. If a page needs to have new window, how do I handle this?


> 5. My code does lot of DOM manipulation. We have  a driver thread which 
> channels DOM requests to GUI thread using gtk_idle_add. With new 
> architecture with extensions and processes, do we need to change this 
> strategy?

You need to move all that code to a web extension, and use a different
way to communicate with the UI process. In Epiphany, we use D-Bus for
such communication, see:


> 6. WebKitWebPage::send-request - what exactly is treated as resource? 

Everything that is loaded by the frame loader, CSS, images, scripts,
fonts, etc.

> Any thing that will be fetched from remote server like images/css etc? 


> What about pdf or other files than browser won't display.

This signal is emitted before the request is actually sent to the
server, so that it happens before the policy checker decides whether to
handle that in the web view or not.

> 7. Any other notes/warnings your care to add

Feel free to ask any other question :-)

> Appreciate the great work and new functionality,
> Niranjan

Carlos Garcia Campos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <https://lists.webkit.org/pipermail/webkit-gtk/attachments/20131212/cfb655ed/attachment.sig>

More information about the webkit-gtk mailing list