[rfc][icedtea-web] Make 'getvalue' nonblocking to reduce hanging chance & improve responsivity
Adam Domurad
adomurad at redhat.com
Fri Jun 7 11:11:55 PDT 2013
Hi all. I am very happy to present this patch!
All Firefox hanging bugs had a common theme, Firefox waits for the
result of some function to finish from the plugin, and IcedTea-Web
plugin-side waits as well for the java-side.
This patch should reduce the chance of Firefox outright hanging, by
making the most frequent site of these occurences nonblocking. This will
also improve responsivity, eg Firefox no longer 'hangs' while waiting
for you to accept or deny a confirmation message.
The patch delays waiting for initialization of the applet until its
absolutely needed - which is only when the applet is communicated with
using liveconnect.
This especially benefits the majority of applets that do not use
liveconnect. Eg the applets at
http://www.walter-fendt.de/ph14e/resultant.htm no longer presents a
blank page for a while, for me.
The patch introduces (with tests) a helper class, NPObjectRef. This was
done to make this patch easier to reason about. It should be far easier
to know now when to retain/release an object (almost always automatic,
only call raw_retain() when returning raw NPObject* to browser).
It also introduces a wrapper around g_strdup_printf with a (very) simple
test.
I have done testing on the patch and it looks OK, but I will still test
it more.
Cheers,
-Adam
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Non-blocking-npapi-getvalue.patch
Type: text/x-patch
Size: 36196 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130607/a6d49022/Non-blocking-npapi-getvalue.patch
More information about the distro-pkg-dev
mailing list