RCP with SWT.Browser and XULRunner
Asked Answered
A

4

8

I'm developing an RCP application (Windows) with SWT.Browser (SWT.MOZILLA):

Browser browser = new Browser(parent, SWT.MOZILLA);

It's working fine with the old XULRunner 3.6.23 and the installation described here:

xulrunner.exe --register-global

I want to use the new XULRunner 8.x, but as mentioned here the old way to install XULRunner was removed.

So I added the XULRunner-Path programmatically:

System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "Path\\To\\xulrunner_8.x"); 

But when I start my application, I'll get the following error

org.eclipse.swt.SWTError: XPCOM error -2147467261

So what's the preferred way to embed XULRunner 8.x with an RCP application and avoiding this error?

Adlar answered 25/10, 2011 at 14:38 Comment(2)
I don't think SWT.Browser supports XULRunner versions newer than 1.9.2 (corresponding to Firefox 3.6): eclipse.org/swt/faq.php#browserlinuxLema
@WladimirPalant: You are right. I overlooked this information @eclipse.org/swt/faq.php. Thanks!Adlar
A
8

As of Eclipse 3.8 / 4.2 M6 the org.eclipse.swt.browser now supports embedding XULRunner 10.0.x, but you must ship a XULRunner 10 runtime and explicitly point at it as described in the FAQ:

...    
    System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "path\to\xulrunner_10"); 
...

The XULRunner 10 runtime can be downloaded from ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/10.0/runtimes/

JavaXPCOM

Mozilla is not maintaining JavaXPCOM anymore, but as Grant Gayed says:

The Browser does not require JavaXPCOM in order for it to work, it just exposes it to apps that want to use it themselves through its getWebBrowser() method.

Linux

XULRunner 10 will currently not run under Linux because of Mozilla bug 720682.

Adlar answered 29/4, 2012 at 22:6 Comment(0)
S
2

For Windows you can also use the Internet-Explorer as browser until eclipse supports xulrunner correctly (will be in a 4.3.x version).

For IE:

just specify

    -Dorg.eclipse.swt.browser.DefaultType=ie,mozilla

at the eclipse.ini.

You can read more about it here.

Spiceberry answered 21/5, 2013 at 7:10 Comment(0)
A
0

I am running on windows7(64 bit) and have new xulrunner vresion:31.0.0 ([http://wiki.mozilla-x86-64.com/Download][1])

But when i try to give a path it given me error System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "path\to\xulrunner_31\");

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.processCommandResult(MessagingInterface.java:342)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.syncSend(MessagingInterface.java:329)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.syncSend_(SWTNativeInterface.java:392)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.syncSend(NativeInterface.java:104)
    at chrriis.dj.nativeswing.swtimpl.Message.syncSend(Message.java:64)
    at chrriis.dj.nativeswing.swtimpl.CommandMessage.syncExec(CommandMessage.java:55)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.runSync(SWTNativeComponent.java:201)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.createNativePeer(SWTNativeComponent.java:1009)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.access$17(SWTNativeComponent.java:989)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent$12.run(SWTNativeComponent.java:882)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:708)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent$CMN_createControl.run(SWTNativeComponent.java:663)
    at chrriis.dj.nativeswing.swtimpl.CommandMessage.runCommand(CommandMessage.java:61)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.runMessageCommand(NativeInterface.java:172)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.runMessageCommand(SWTNativeInterface.java:1429)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.runMessage(MessagingInterface.java:121)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.processReceivedMessages(MessagingInterface.java:106)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.access$2(MessagingInterface.java:94)
    at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface$2$2.run(MessagingInterface.java:442)
    at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$OutProcess.runNativeSide(SWTNativeInterface.java:1352)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.main_(SWTNativeInterface.java:1461)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.main(NativeInterface.java:224)
Caused by: org.eclipse.swt.SWTError: XPCOM error 0x80004005
    at org.eclipse.swt.browser.Mozilla.error(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.initXULRunner(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.create(Unknown Source)
    at org.eclipse.swt.browser.Browser.<init>(Unknown Source)
    at chrriis.dj.nativeswing.swtimpl.components.core.NativeWebBrowser.createControl(NativeWebBrowser.java:431)
    ... 19 more

Without that it showing IE 9.0 or with another xulunner which i not confirm from where get this is working fine but showing firefox version 5.0. Any idea how i can update with latest firefox version.

Amiamiable answered 11/2, 2015 at 12:45 Comment(1)
According to bugs.eclipse.org/bugs/show_bug.cgi?id=422561 the latest supported version of XULrunner is 24 (as of Eclipse 4.4 M5).Adlar
S
0

Eclipse_4.4.2 now supports XULRunner24.0, you can try this version.

Shipway answered 5/6, 2015 at 6:19 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.