FYI for anyone interested in the progress of this, I'd say it's moving to later 
stages now... 

It took me a really long time to figure out the cause of the seg fault crash, 
but I eventually figured it out after much trawling though Git deltas...  It 
was caused by NPVersion() returning a version of NPAPI that WebKit didn't 
actually support (someone bumped it after Qt 4.5.3 -- WebKit Bug #34539) and by 
the Java plugin actually calling those missing APIs to fetch info from the host 
app (which is also why the debug traces are non-Qt/non-App junk). 

To get Applets going, you must apply 3 patches in your src/3rdparty/webkit or 
qtwebkit-source-2.0 folder:

  1) Implement NPN_(Get|Set)ValueForURL I created for #34539 -> 
https://bugs.webkit.org/attachment.cgi?id=51264
     - If anyone knows how to get WebKit's http proxy info without calling Qt 
classes directly, please let me know

  2) The original Java Applet support patch I created for #33044 -> 
https://bugs.webkit.org/attachment.cgi?id=51265
     - On Windows this will search the registry to find the plugins
     - On Linux, and OSX it will search the paths shown in PluginDatabase.cpp 
(i.e. contents of QTWEBKIT_PLUGIN_PATH environment variable, or locations like 
"/Library/Internet Plug-ins/" on OSX)

  3) A 1-line patch to Arora to enable Java Applet support -> 
https://bugs.webkit.org/attachment.cgi?id=49066
OR
  4) A 1-line patch to QtLauncher to enable Java Applet support -> 
https://bugs.webkit.org/attachment.cgi?id=51268

These patches together will allow Java to run on Arora/QtLauncher on Windows, 
they may also work on OSX and Linux.   I have not been able to successfully get 
this going on OSX, rather I see a blue brick which I suspect is a 
plugin/plugin-bundle configuration issue coming from me having a x86_64 build 
arch and not having the plugins in the right places (I get various CFBundle not 
found messages relating to Java).

Could use help with:
  - people testing on other OSes, I don't have test machines or much time to 
test beyond Windows.

  - help with improving these patches so they can be moved upstream.

  - creating a non-stub implementation for NPN_GetAuthenticationInfo

  - writing some kind of tests for the WebKit build processes

Cheers,

-G
IRC: jumpkick

Here are those bugs for reference:
https://bugs.webkit.org/show_bug.cgi?id=34539 -- Wrong NPVersion() + 
NPN_(Get|Set)ValueForURL implementation patch 
https://bugs.webkit.org/show_bug.cgi?id=33044 -- Java Applet patch


On 2009-12-30, at 2:16 AM, Garth Dahlstrom wrote:

> On 2009-12-29, at 9:33 AM, Kenneth Christiansen wrote:
> 
>> Hi there Garth!
> 
> Hi Kenneth,
> 
>> That is really good news! You should create a bug report for tracking your 
>> progress on bugs.webkit.org, could you do that?
> 
> It is done!  :D   Bug #33044 ( https://bugs.webkit.org/show_bug.cgi?id=33044 )
> 
>> Instead of rebasing it to the Qt 4.6, you should make it work for trunk 
>> WebKit. There is a gitorious git clone of WebKit svn trunk at gitorious.org, 
>> you could use that for helping the rebasing.
> 
> Unfortunately, I have a requirement to deliver a product based on a stable 
> version of Qt.   So while I agree it would make things easier from a WebKit 
> source integration perspective, I don't have the cycles / capability to 
> integrate and test an unstable WebKit into Qt (my experience has been both 
> WebKit and Qt are quite large beasts to build).   My hope is if it does get 
> ported to Qt 4.6 it will be a straightforward apply to Git trunk being that 
> the trail will be less cold then snapshot used for Qt 4.5.
> 
> Cheers,
> 
> -G
> 
> 
>> Cheers and happy new year.
>> Kenneth 
>> 
>> On Wed, Dec 23, 2009 at 9:44 PM, Garth Dahlstrom <[email protected]> wrote:
>> Hi QtWebkit and Arora lists,
>> 
>> A colleague (John Spicer) and I have been working on a patch to support Java 
>> Applets in QtWebKit.    We finally have something that sort of works and are 
>> now keen to rally some help from the interested communities to get over the 
>> latest humps, complete the effort and get it rolled up into QtWebkit and Qt.
>> 
>> Qt w/ WebKit + WebKit debugging symbols can be a bit unruly to get built, 
>> but I'm somewhat of an expert at building the beast, so if anyone needs 
>> assistance getting set-up let me know (I can post an entire Qt 4.5.3 build 
>> w/ patch applied if that helps).
>> 
>> You can see the patch in action, using with Qt's Demo Browser app, here:
>>  -> 
>> http://arora-dev.googlegroups.com/web/qt-demos-browser-java-applet.png?gsc=uyLiEwsAAAA_opuiF-PJ23f8yKxuAQCQ
>>   [Note: that JavaEnabled must be set to true in the Demo Browser 
>> application as is highlighted at the top of the screenshot, line 247]
>> 
>> What have going:
>> * Sun Plugin2 applet working - requires Java 1.6.0 update 17
>> * Loads Applets contained in Jar files -- i.e. 
>> http://java.com/en/download/help/testvm.xml works
>> * Windows is the only place we've been working
>> 
>> What we need help with:
>> * Rebasing the patch onto 4.6.0 (we had a go at it, but a lot has changed 
>> between 4.5.3 and 4.6.0, and we were not successful)
>> * Porting the patch to other platforms OSX, Linux
>> * .class based applets like that found on javatester.org, doesn't load... 
>> (I've included that at the bottom of this message)
>> * Testing and test cases for things that need to be checked
>> * other stuff I'm not thinking of?
>> 
>> I'm looking for help in whatever capacity people can help in and advice on 
>> how to move this ball forward.
>> 
>> Cheers & Happy Holidays,
>> 
>> -G
>> 
>> Garth Dahlstrom, 2Keys Corporation
>> IRC: jumpkick
>> gtalk: ironstorm
>> 
>> 
>> 
>> 
>> 
>> 
>> JavaTester .class based applet exception from Java Console:
>> 
>> basic: Added progress listener: 
>> sun.plugin.util.grayboxpainter$grayboxprogressliste...@12b3d53
>> network: Cache entry not found [url: 
>> http://javatester.org/version.html/JavaVersionDisplayApplet.class, version: 
>> null]
>> network: Connecting 
>> http://javatester.org/version.html/JavaVersionDisplayApplet.class with 
>> proxy=DIRECT
>> network: Connecting http://javatester.org:80/ with proxy=DIRECT
>> network: Cache entry not found [url: 
>> http://javatester.org/version.html/JavaVersionDisplayApplet/class.class, 
>> version: null]
>> network: Connecting 
>> http://javatester.org/version.html/JavaVersionDisplayApplet/class.class with 
>> proxy=DIRECT
>> basic: load: class JavaVersionDisplayApplet.class not found.
>> load: class JavaVersionDisplayApplet.class not found.
>> java.lang.ClassNotFoundException: JavaVersionDisplayApplet.class
>>    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
>>    at java.lang.ClassLoader.loadClass(Unknown Source)
>>    at java.lang.ClassLoader.loadClass(Unknown Source)
>>    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
>>    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
>>    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown 
>> Source)
>>    at java.lang.Thread.run(Unknown Source)
>> Caused by: java.io.IOException: open HTTP connection 
>> failed:http://javatester.org/version.html/JavaVersionDisplayApplet/class.class
>>    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
>>    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
>>    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
>>    at java.security.AccessController.doPrivileged(Native Method)
>>    ... 7 more
>> Exception: java.lang.ClassNotFoundException: JavaVersionDisplayApplet.class
>> _______________________________________________
>> webkit-qt mailing list
>> [email protected]
>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt
>> 
>> 
>> 
>> 
>> -- 
>> Kenneth Rohde Christiansen
>> Technical Lead / Senior Software Engineer
>> Qt Labs Americas, Nokia Technology Institute, INdT
>> Phone  +55 81 8895 6002 / E-mail kenneth.christiansen at openbossa.org
> 

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

Reply via email to