Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 510905 (Webkit2FuncRetVal)

Summary: [GTK3][Webkit2] Implement webkit2 support for browser function (Part 2: Java return a value from callback.)
Product: [Eclipse Project] Platform Reporter: Leo Ufimtsev <lufimtse>
Component: SWTAssignee: Leo Ufimtsev <lufimtse>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: akurtakov, daniel_megert, denis.roy, gautier.desaintmartinlacaze, loskutov, lshanmug, markus.kell.r
Version: 4.7   
Target Milestone: 4.8 M5   
Hardware: PC   
OS: Linux   
URL: https://etherpad.openstack.org/p/EclipseBug510905
See Also: https://bugs.eclipse.org/bugs/show_bug.cgi?id=518961
https://bugs.eclipse.org/bugs/show_bug.cgi?id=521255
https://bugs.eclipse.org/bugs/show_bug.cgi?id=508217
https://git.eclipse.org/r/106164
https://git.eclipse.org/r/110256
https://bugs.eclipse.org/bugs/show_bug.cgi?id=430538
https://bugs.eclipse.org/bugs/show_bug.cgi?id=527564
https://bugs.eclipse.org/bugs/show_bug.cgi?id=476642
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=8009c3b86dee4f50191b785f9c121ef5cdd24746
https://git.eclipse.org/r/112743
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=95367b1fc23f9ea8ca08752b75ba1cefe9ca838d
https://git.eclipse.org/r/112843
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=046cce2c7c22bc552489d4d7870b7b1919930c67
https://git.eclipse.org/r/112847
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=d3d082282785170b3c46bf628ba9427979d49640
https://bugs.eclipse.org/bugs/show_bug.cgi?id=528287
https://bugs.eclipse.org/bugs/show_bug.cgi?id=432944
https://git.eclipse.org/r/113021
https://git.eclipse.org/r/113022
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=c0925b528e5ba379d83868fd67f1aff0e88be8de
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=ccddf4d86de9b18c70f5ee874a6495a2eaeeed6d
https://git.eclipse.org/r/113030
https://git.eclipse.org/r/113029
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=87ad67c89aea7399b495bc6b63cebc72115bed9c
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=0998f3f4251de4c14b95810f9f5534eb46ad36e8
https://git.eclipse.org/r/113031
https://git.eclipse.org/r/113091
https://git.eclipse.org/r/113092
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=9c55d07591d154b42f50854c7654c7e856ae1587
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=cf6eae19947ae022733790303bba743fdcc0af93
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=0b13ae7a288041245b030d0d11d81e0e61a5745f
https://git.eclipse.org/r/113185
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=9f13fe28a434720b783cb6e1681537bbe5331077
Whiteboard: To be verified.
Bug Depends on: 526722, 527699    
Bug Blocks: 441568, 516838    

Description Leo Ufimtsev CLA 2017-01-23 15:43:25 EST
The mechanism whereby javascript calls java in Part1 (Bug 508217) has a limitation.

Javascript can reach Java's callback. But the callback on the javaside cannot return a value back to javascript.

I don't think this functionality is used much, but never the less it is a current limitation.
(Note, Java can execute javascript via 'execute()' call still).

The jUnit test case for this scenario is:
org.eclipse.swt.tests.junit.Test_org_eclipse_swt_browser_Browser.test_BrowserFunction_callback_with_javaReturningInt()

The api that I used in Part1 allows Javascript to call Java asynchronously. 
I.e, meaning once the callback is executed on the java side, it doesn't return a value:
https://webkitgtk.org/reference/webkit2gtk/stable/WebKitUserContentManager.html#WebKitUserContentManager-script-message-received

This is a limitation of the webkit2 api itself. The signal has a void return value and since it is async, the call from javascript to java is not executed right away, but is delayed for a bit.

One possible (complex) solution might be:
- Create webkitweb extension (this is tricky..)
- Manually create a C/Javascript object (webkit1 does this, 'external', might re-use this functionality). 
- Expose Js function/object via JavaSciptCoreApi
- Suggested by aperezdc/mcatanzaro on freednode#webkitgtk+

Example:
https://git.gnome.org/browse/epiphany/tree/embed/web-extension/ephy-web-extension.c?h=gnome-3-14#n1302
Comment 1 Leo Ufimtsev CLA 2017-03-22 11:10:49 EDT
Investigating.
Comment 2 Markus Keller CLA 2017-03-23 09:21:25 EDT
A "disadvantage" of SWT's popularity is that we have to assume that there's always a user for any API that was published.

To find concrete cases, use searches like these:
https://www.google.com/search?q=site%3Agithub.com+"org.eclipse.swt.browser.BrowserFunction"+return
https://www.google.com/search?q=site%3Agit.eclipse.org+"org.eclipse.swt.browser.BrowserFunction"+return
http://www.massapi.com/class/org/eclipse/swt/browser/BrowserFunction.html

E.g. this one looks like an actual user of this functionality (note that locationtech.org is an Eclipse Foundation Working Group):

https://github.com/locationtech/geoff/blob/master/plugins/org.locationtech.geoff.ui.swt/src/org/locationtech/geoff/ui/swt/GeoMapComposite.java#L143
Comment 3 Leo Ufimtsev CLA 2017-03-24 10:44:27 EDT
(In reply to Markus Keller from comment #2)
> A "disadvantage" of SWT's popularity is that we have to assume that there's
> always a user for any API that was published.
> 
> To find concrete cases, use searches like these:
> https://www.google.com/search?q=site%3Agithub.com+"org.eclipse.swt.browser.
> BrowserFunction"+return

Interesting, I didn't think of this mechanism. Thank you for sharing.

> https://www.google.com/search?q=site%3Agit.eclipse.org+"org.eclipse.swt.
> browser.BrowserFunction"+return
> http://www.massapi.com/class/org/eclipse/swt/browser/BrowserFunction.html
> 
> E.g. this one looks like an actual user of this functionality (note that
> locationtech.org is an Eclipse Foundation Working Group):
> 
> https://github.com/locationtech/geoff/blob/master/plugins/org.locationtech.
> geoff.ui.swt/src/org/locationtech/geoff/ui/swt/GeoMapComposite.java#L143

Thank you for taking the time to find some use cases. Much appreciated. This is helpful. I was searching around for BrowserFunction 'return' use cases in the eclipse git repos:
https://git.eclipse.org/c/

Thus far I found that Nebular's Richtext editor is build via the Browser widget with BrowserFunction callback mechanisms. It may be a potential valid use case as well.
Comment 4 Eclipse Genie CLA 2017-10-03 16:04:00 EDT
New Gerrit change created: https://git.eclipse.org/r/106164
Comment 5 Eclipse Genie CLA 2017-10-17 17:10:54 EDT
New Gerrit change created: https://git.eclipse.org/r/110256
Comment 6 Leo Ufimtsev CLA 2017-11-23 16:25:25 EST
Need SWT natives to be build with RHEL 7.4 before I can merge.
Seems like it'll be next week ish. Tracked in:
Bug 476642 – Start building natives @eclipse.org infra 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=476642
Comment 8 Lakshmi P Shanmugam CLA 2017-12-01 16:10:04 EST
Hi Leo,
There are compilation errors while building the new library.
Please see:
https://hudson.eclipse.org/releng/view/SWT%20Natives/job/gtk_linux_x86/37/console
https://hudson.eclipse.org/releng/view/SWT%20Natives/job/gtk_linux_x86_64/29/console
Comment 9 Lakshmi P Shanmugam CLA 2017-12-01 17:45:28 EST
The new library is not built due to compilation errors but currently the gtk build jobs don't fail due to this. Rest of the libraries are built and committed as usual.

But, once the new library is built successfully, the library count has to changed in check_fragment_libraries in buildSWT.xml. Without this change the build will fail.
Comment 10 Lakshmi P Shanmugam CLA 2017-12-01 17:58:33 EST
(In reply to Lakshmi Shanmugam from comment #9)
> The new library is not built due to compilation errors but currently the gtk
> build jobs don't fail due to this. Rest of the libraries are built and
> committed as usual.
> 
> But, once the new library is built successfully, the library count has to
> changed in check_fragment_libraries in buildSWT.xml. Without this change the
> build will fail.

Also, I think some changes will be required in the Hudson build jobs to pick the library on ppc64(le) as it is placed under another directory.
Comment 11 Eclipse Genie CLA 2017-12-02 01:03:04 EST
New Gerrit change created: https://git.eclipse.org/r/112743
Comment 13 Lakshmi P Shanmugam CLA 2017-12-04 04:20:31 EST
Hi Alex, Leo,
Can we make a check if the webkit package required for building the new library is available or not before trying to build it?
Similar to the check we do for Cairo or AWT.
Having such a check will be useful to build SWT gtk libs on setups which don't have the required package.
Comment 14 Leo Ufimtsev CLA 2017-12-04 10:31:46 EST
(In reply to Lakshmi Shanmugam from comment #13)
> Hi Alex, Leo,
> Can we make a check if the webkit package required for building the new
> library is available or not before trying to build it?
> Similar to the check we do for Cairo or AWT.
> Having such a check will be useful to build SWT gtk libs on setups which
> don't have the required package.

Yes, I can implement such a guard.
Comment 15 Alexander Kurtakov CLA 2017-12-04 10:35:48 EST
(In reply to Leo Ufimtsev from comment #14)
> (In reply to Lakshmi Shanmugam from comment #13)
> > Hi Alex, Leo,
> > Can we make a check if the webkit package required for building the new
> > library is available or not before trying to build it?
> > Similar to the check we do for Cairo or AWT.
> > Having such a check will be useful to build SWT gtk libs on setups which
> > don't have the required package.
> 
> Yes, I can implement such a guard.

I'm not in favor of such guard. Most Linux users don't have webkit1(or won't have it on their next update) due to security issues with it thus having proper webkit2 is mandatory so we should look this webextension as crucial part of having proper browser implementaiton under linux.
Comment 16 Dani Megert CLA 2017-12-04 11:59:15 EST
Leo, you used the new "planning" feature and set a deadline. I would appreciate to no use that unless there's a definition of what this means in our project.
Comment 17 Leo Ufimtsev CLA 2017-12-04 12:15:52 EST
(In reply to Dani Megert from comment #16)
> Leo, you used the new "planning" feature and set a deadline. I would
> appreciate to no use that unless there's a definition of what this means in
> our project.

I see. Thanks for pointing out.
The planning feature is not new, it's always been there but was only visible to users in the 'time tracking' group (of which I was a member).
I've been using the timegroup tracking for well over a year to followup on tickets. (e.g add someone as a reviewer and then followup in a week).
But in Bugzilla 5 it's now made public and everyone can see. I can see how this could be confusing to users who see the bug, so it looks like I'll have to find some other way to followup with tickets :-/. Oh well.
Comment 18 Dani Megert CLA 2017-12-04 12:25:51 EST
(In reply to Leo Ufimtsev from comment #17)
> (In reply to Dani Megert from comment #16)
> > Leo, you used the new "planning" feature and set a deadline. I would
> > appreciate to no use that unless there's a definition of what this means in
> > our project.
> 
> I see. Thanks for pointing out.
> The planning feature is not new, it's always been there but was only visible
> to users in the 'time tracking' group (of which I was a member).
> I've been using the timegroup tracking for well over a year to followup on
> tickets. (e.g add someone as a reviewer and then followup in a week).
> But in Bugzilla 5 it's now made public and everyone can see. I can see how
> this could be confusing to users who see the bug, so it looks like I'll have
> to find some other way to followup with tickets :-/. Oh well.

I'd actually like to hide that again.
Comment 19 Leo Ufimtsev CLA 2017-12-04 12:49:00 EST
(In reply to Dani Megert from comment #18)
> (In reply to Leo Ufimtsev from comment #17)
> > (In reply to Dani Megert from comment #16)
> > > Leo, you used the new "planning" feature and set a deadline. I would
> > > appreciate to no use that unless there's a definition of what this means in
> > > our project.
> > 
> > I see. Thanks for pointing out.
> > The planning feature is not new, it's always been there but was only visible
> > to users in the 'time tracking' group (of which I was a member).
> > I've been using the timegroup tracking for well over a year to followup on
> > tickets. (e.g add someone as a reviewer and then followup in a week).
> > But in Bugzilla 5 it's now made public and everyone can see. I can see how
> > this could be confusing to users who see the bug, so it looks like I'll have
> > to find some other way to followup with tickets :-/. Oh well.
> 
> I'd actually like to hide that again.

I'm in favor because we use target milestone as time frames.
Comment 20 Alexander Kurtakov CLA 2017-12-04 12:58:49 EST
(In reply to Dani Megert from comment #18)
> (In reply to Leo Ufimtsev from comment #17)
> > (In reply to Dani Megert from comment #16)
> > > Leo, you used the new "planning" feature and set a deadline. I would
> > > appreciate to no use that unless there's a definition of what this means in
> > > our project.
> > 
> > I see. Thanks for pointing out.
> > The planning feature is not new, it's always been there but was only visible
> > to users in the 'time tracking' group (of which I was a member).
> > I've been using the timegroup tracking for well over a year to followup on
> > tickets. (e.g add someone as a reviewer and then followup in a week).
> > But in Bugzilla 5 it's now made public and everyone can see. I can see how
> > this could be confusing to users who see the bug, so it looks like I'll have
> > to find some other way to followup with tickets :-/. Oh well.
> 
> I'd actually like to hide that again.

Would you please handle this in dedicated bz? 
Leo, is this bug done? Can we resolve it for M4 ?
Comment 21 Eclipse Genie CLA 2017-12-04 22:17:08 EST
New Gerrit change created: https://git.eclipse.org/r/112843
Comment 23 Eclipse Genie CLA 2017-12-05 01:09:45 EST
New Gerrit change created: https://git.eclipse.org/r/112847
Comment 25 Dani Megert CLA 2017-12-05 03:18:05 EST
(In reply to Alexander Kurtakov from comment #20)
> Would you please handle this in dedicated bz? 

See bug 528132.
Comment 26 Leo Ufimtsev CLA 2017-12-05 12:13:07 EST
Versioned Webextensions folder verified to work on todays's build:
eclipse-SDK-I20171205-0800-, i.e, extension is extracted and loaded.

Also note, the make_linux.mak now rm/rmdir old webkitextensionsXXXX folder form binary repo, as per logic here:
https://git.eclipse.org/r/#/c/112843/1/bundles/org.eclipse.swt/Eclipse+SWT+PI/gtk/library/make_linux.mak


Open tasks (In order of priority):
[] Implement mechanism to extract webextensions folder when SWT is launched as part of Eclipse. (OSGI extraction mechanism)
[] Warning printed on 32bit Linux builds.
> webkitgtk_extension.c:280:4: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘gsize’ [-Wformat=]
>    g_error("Should only receive a single item in the tuple, but length is: %lu\n", g_variant_n_children(g_var_result));
>    ^rs

[] Don't build extension if webkit-extension pkg-config flags are not available.
[] Request Webkitgtk developers to implement a mechanism to load extension directly instead of having to specify a folder.
Comment 27 Eclipse Genie CLA 2017-12-07 13:05:04 EST
New Gerrit change created: https://git.eclipse.org/r/113021
Comment 28 Eclipse Genie CLA 2017-12-07 13:14:19 EST
New Gerrit change created: https://git.eclipse.org/r/113022
Comment 31 Eclipse Genie CLA 2017-12-07 14:30:49 EST
New Gerrit change created: https://git.eclipse.org/r/113030
Comment 32 Eclipse Genie CLA 2017-12-07 14:30:53 EST
New Gerrit change created: https://git.eclipse.org/r/113029
Comment 35 Eclipse Genie CLA 2017-12-07 15:25:43 EST
New Gerrit change created: https://git.eclipse.org/r/113031
Comment 36 Leo Ufimtsev CLA 2017-12-07 15:34:14 EST
Awaiting M4 release to submit/merge outstanding patches.
Comment 37 Eclipse Genie CLA 2017-12-08 12:05:24 EST
New Gerrit change created: https://git.eclipse.org/r/113091
Comment 38 Eclipse Genie CLA 2017-12-08 12:06:37 EST
New Gerrit change created: https://git.eclipse.org/r/113092
Comment 42 Leo Ufimtsev CLA 2017-12-08 12:40:14 EST
(In reply to Lakshmi Shanmugam from comment #13)
> Hi Alex, Leo,
> Can we make a check if the webkit package required for building the new
> library is available or not before trying to build it?
> Similar to the check we do for Cairo or AWT.
> Having such a check will be useful to build SWT gtk libs on setups which
> don't have the required package.

Done in:
https://git.eclipse.org/r/#/c/113031/
Comment 43 Leo Ufimtsev CLA 2017-12-08 12:42:31 EST
Feature implemented and (afaik) all outstanding issues were addressed.

I'll verify in tomorrow's(ish) build.
Comment 44 Leo Ufimtsev CLA 2017-12-11 09:49:15 EST
Verified against today's ibuild.

As note:

*) when SWT is ran as OSGI bundle, the extension is correctly extracted to 
./configuration/org.eclipse.osgi/215/0/.cp/webkitextensions4845/libswt-webkit2extension-gtk-4845.so
(And when swt is ran standalone, then they are extracted to ~/.swt/...)

*) 32bit compile warning fixed:
https://hudson.eclipse.org/releng/view/SWT%20Natives/job/gtk_linux_x86/lastBuild/console

*) webextension .so/dir are deleted by build script before new build.
Comment 45 Leo Ufimtsev CLA 2017-12-11 09:50:31 EST
Have to remove debug print statments from WebkitGTK.java and Library.java.
(Will do shortly).
Comment 46 Eclipse Genie CLA 2017-12-11 15:07:23 EST
New Gerrit change created: https://git.eclipse.org/r/113185
Comment 48 Leo Ufimtsev CLA 2017-12-11 15:08:21 EST
Debug messages removed. We're good to go.
Comment 49 Leo Ufimtsev CLA 2017-12-11 15:08:49 EST
As per previous comment, verified on today's IBuild.
Comment 50 Andrey Loskutov CLA 2017-12-11 15:59:02 EST
Leo, the Gerrit fails with compilation error:

[javac] Compiling 446 source files
/opt/public/hipp/homes/genie.platform/workspace/tmp/check.compile.master/build/org/eclipse/swt/browser/WebkitGDBus.java:92: error: cannot find symbol
		if (WebKitGTK.SWT_WEBKIT_DEBUG_MSGS) System.out.println("SWT_WEBKIT: Webkit GDBus is being initialized with id: " + uniqueId);
		             ^
  symbol:   variable SWT_WEBKIT_DEBUG_MSGS
  location: class WebKitGTK
/opt/public/hipp/homes/genie.platform/workspace/tmp/check.compile.master/build/org/eclipse/swt/browser/WebkitGDBus.java:92: error: illegal start of type
		if (WebKitGTK.SWT_WEBKIT_DEBUG_MSGS) System.out.println("SWT_WEBKIT: Webkit GDBus is being initialized with id: " + uniqueId);
		   ^

https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5755/console
https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5757/console
Comment 51 Leo Ufimtsev CLA 2017-12-11 16:05:41 EST
(In reply to Andrey Loskutov from comment #50)
> Leo, the Gerrit fails with compilation error:
> 
> [javac] Compiling 446 source files
> /opt/public/hipp/homes/genie.platform/workspace/tmp/check.compile.master/
> build/org/eclipse/swt/browser/WebkitGDBus.java:92: error: cannot find symbol
> 		if (WebKitGTK.SWT_WEBKIT_DEBUG_MSGS) System.out.println("SWT_WEBKIT:
> Webkit GDBus is being initialized with id: " + uniqueId);
> 		             ^
>   symbol:   variable SWT_WEBKIT_DEBUG_MSGS
>   location: class WebKitGTK
> /opt/public/hipp/homes/genie.platform/workspace/tmp/check.compile.master/
> build/org/eclipse/swt/browser/WebkitGDBus.java:92: error: illegal start of
> type
> 		if (WebKitGTK.SWT_WEBKIT_DEBUG_MSGS) System.out.println("SWT_WEBKIT:
> Webkit GDBus is being initialized with id: " + uniqueId);
> 		   ^
> 
> https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5755/
> console
> https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5757/
> console

Sorry, my bad. Was too hasty to merge previous patch. Will fix shortly.
Comment 52 Leo Ufimtsev CLA 2017-12-11 16:13:54 EST
(In reply to Andrey Loskutov from comment #50)
> https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5757/
> console

Fixed. Sorry for trouble caused.
Comment 53 Andrey Loskutov CLA 2017-12-11 16:24:49 EST
(In reply to Leo Ufimtsev from comment #52)
> (In reply to Andrey Loskutov from comment #50)
> > https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5757/
> > console
> 
> Fixed. Sorry for trouble caused.

Not sure. Now I see the crash in webkit code:
https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5759/console

[INFO] Running org.eclipse.swt.tests.junit.Test_org_eclipse_swt_browser_Browser Running Test_org_eclipse_swt_browser_Browser#test_TitleListener_removeWithNullArg Running Test_org_eclipse_swt_browser_Browser#test_getText_html Running Test_org_eclipse_swt_browser_Browser#test_LocationListener_then_ProgressListener Running Test_org_eclipse_swt_browser_Browser#test_OpenWindowListener_closeShell Running Test_org_eclipse_swt_browser_Browser#test_LocationListener_addAndRemove Running Test_org_eclipse_swt_browser_Browser#test_forward Running Test_org_eclipse_swt_browser_Browser#test_ProgressListener_addAndRemove Running Test_org_eclipse_swt_browser_Browser#test_CloseWindowListener_removeWithNullArg Running Test_org_eclipse_swt_browser_Browser#test_TitleListener_addAndRemove Running Test_org_eclipse_swt_browser_Browser#test_VisibilityWindowListener_eventSize Running Test_org_eclipse_swt_browser_Browser#test_OpenWindowListener_open_ChildPopup # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f05250c5ddd, pid=26887, tid=0x00007f05eb676700 # # JRE version: Java(TM) SE Runtime Environment (8.0_131-b11) (build 1.8.0_131-b11) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libwebkitgtk-3.0.so.0+0x44eddd] # # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # An error report file with more information is saved as: # /opt/public/hipp/homes/genie.platform/workspace/eclipse.platform.swt-Gerrit/hs_err_pid26887.log
Comment 54 Leo Ufimtsev CLA 2017-12-11 17:03:25 EST
(In reply to Andrey Loskutov from comment #53)
> (In reply to Leo Ufimtsev from comment #52)
> > (In reply to Andrey Loskutov from comment #50)
> > > https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5757/
> > > console
> > 
> > Fixed. Sorry for trouble caused.
> 
> Not sure. Now I see the crash in webkit code:
> https://hudson.eclipse.org/platform/job/eclipse.platform.swt-Gerrit/5759/
> console

This one is webkit1's unstable behavior. It tends to crash from time to time.
You can try to re-start the build, usually after 1-2 extra attempts it works.

In an eclipse, you can try to re-start your eclipse and then the tests usually pass again (or restart server?).

We hope to have the issue resolved once webkit2 is default on the test servers. (please follow webkit2 port bug to track).