EmbeddedBrowserPrototypingJWebPane

Prototyping JWebPane integration (November/2009)

- no API for manipulation with cookies (add/remove cookie, clear cookie list). I assume that now each instance of JWebPane has it's own set of cookies, is that correct? This is required for integration of new Kenai web pages into the IDE. We need a way to silently log user in. The best solution would be injecting an appropriate cookie into embedded browser, the workaround is using JavaScript to log user in.

- no API to bind mouse and keyboard event with appropriate elements in DOM tree. We want to provide our own popup menu and have the possibility to react to mouse-over events. Without this API we can't implement some advanced web preview features, e.g. highlight appropriate html code snippet for DOM element under mouse cursor. We also want to provide our own popup menu or at least customize the existing one.

- no API to retrieve selected text. Text selection should be bound to NetBeans Copy/Cut clipboard actions.

- no binaries for Windows x64

- no binaries for Linux x64

- link error when running on OpenSolaris, workaroundable by specifying library path in system environment variable

- no Flash plugin

- no SVG support

- seems to be fairly stable and fast

- stability testing:

HW OS JDK Owner Status
Intel Mac 64b Mac OS-X Leopard 64b 6 64b Milan tested
Intel Mac 64b Win XP 32b in VBox (Mac OS-X Leopard 64b) 6 32b Milan tested
Intel Mac 64b Ubuntu 9.10 32b in VBox (Mac OS-X Leopard 64b) 6 32b Milan tested
Intel PC Ubuntu 9.10 32b 6 32b Tonda tested
Intel Mac 64b Mac OS-X Snow Leopard 64b 6 64b Tonda tested
Intel PC Win Vista 64b 6 32b Standa tested
Intel PC Win 7 32b in VBox 6 32b Standa tested
Intel PC Linux Ubuntu 64b in VBox 6 64b Standa binaries not available
Intel PC Solaris 32b in VBox 6 32b Standa tested

- testing results:

URL Intel Mac 64b

Mac OS-X Leopard 64b JDK 6 64b Milan

Intel Mac 64b

Win XP 32b in VBox JDK 6 32b Milan

Intel Mac 64b

Ubuntu 9.10 32b in VBox JDK 6 32b Milan

Intel PC

Ubuntu 9.10 32b JDK 6 32b Tonda

Intel Mac 64b

Mac OS-X Snow Leopard 64b JDK 6 64b Tonda

Intel PC

Win Vista 64b JDK 6 32b Standa

Intel PC

Win 7 32b in VBox JDK 6 32b Standa

Intel PC

Linux Ubuntu 64b in VBox JDK 6 64b Standa

Intel PC

Solaris 32b in VBox JDK 6 32b Standa

scrolling on some pages with images
tracked as P1 #6908771
VM crash
NetBeans Wiki login
tracked as P1 #6908349
VM crash VM crash VM crash VM crash VM crash VM crash VM crash no binaries VM crash
Kenai login
tracked as P1 #6908349
VM crash VM crash VM crash VM crash VM crash VM crash VM crash no binaries VM crash
Zpravy iDnes
tracked as P2 #6909729
doesn't load doesn't load doesn't load doesn't load doesn't load doesn't load doesn't load no binaries doesn't load
Plugin Portal
tracked as P2 #6909734
loads incorrectly loads incorrectly loads incorrectly loads incorrectly loads incorrectly loads incorrectly loads incorrectly no binaries loads incorrectly
any file download
tracked as P4 #6909743
loads as text loads as text loads as text loads as text loads as text loads as text loads as text no binaries loads as text
CSS Complex Spiral Broken OK ok broken no binaries ok
Math ML Broken Broken broken broken no binaries broken
Eagle Broken OK ok broken no binaries ok
Mozilla Stickies Broken Broken broken broken no binaries broken
Mine Hunter OK OK ok ok no binaries deadlock
Menu Bar OK OK ok ok no binaries ok
Credits OK OK ok ok no binaries ok
Bar Graph OK OK ok ok no binaries ok
Curvelicious Broken OK ok broken no binaries ok
Transitions Broken Broken broken broken no binaries broken
Toolbar Broken Broken broken broken no binaries broken
Webkit stickies Partially broken OK ok ok no binaries ok

Web pages for stability and performance testing:



Prototyping JWebPane integration (May/2009 - June/2009)

- uses Swing's default look and feel to render some HTML widgets (buttons, combo boxes etc) - this means the rendering looks different on different OS/LaF combinations and definitely does not render nice as native browsers

- noticeably slower rendering and page scrolling in comparison to a native browser solution

- experienced JVM crashes when playing with the prototype

- problems with keyboard input (e.g. ENTER in a search field did not work, TAB does not move keyboard focus between input fields)

- cookies are not persisted (e.g. login to netbeans.org websites does not work)

- no API for cookies management

- JavaScript support not working 100% (e.g. download page on netbeans.org does not detect and set your OS as the default target platform for the download)

- doesn't work well with some browser plugins, e.g. Flash (as of June 30th)

- doesn't allow manipulations with HTML document (no access to DOM tree) (as of June 30th)

- doesn't work on Windows Vista 64bit

- native binaries must be placed in netbeans/bin folder when running under Windows XP and in JDK's bin folder when running under Linux

- not possible to locate selected element in DOM tree (required to implement pop-up menu)

- no SVG support

- OutOfMemoryError when setting fontsize:

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
	at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:59)
	at java.awt.image.ComponentSampleModel.createDataBuffer(ComponentSampleModel.java:397)
	at sun.awt.image.ByteInterleavedRaster.<init>(ByteInterleavedRaster.java:72)
	at sun.awt.image.ByteInterleavedRaster.createCompatibleWritableRaster(ByteInterleavedRaster.java:1310)
	at java.awt.image.AffineTransformOp.createCompatibleDestImage(AffineTransformOp.java:448)
	at java.awt.image.AffineTransformOp.filter(AffineTransformOp.java:209)
	at org.webkit.webcore.platform.graphics.WCGraphics2DContext.drawPattern(WCGraphics2DContext.java:357)
	at org.webkit.webcore.platform.WCWidget.twkUpdateContents(Native Method)
	at org.webkit.webcore.platform.WidgetDelegate$2.run(WidgetDelegate.java:94)
	at org.webkit.webcore.platform.SimplifiedWebKitFlow.invokeAndWait(SimplifiedWebKitFlow.java:25)
	at org.webkit.webcore.platform.WidgetDelegate.paintComponent(WidgetDelegate.java:90)
	at javax.swing.JComponent.paint(JComponent.java:1027)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JViewport.paint(JViewport.java:747)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)
	at javax.swing.JComponent.paint(JComponent.java:1036)
	at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
	at javax.swing.JComponent.paintChildren(JComponent.java:864)

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo