Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrik Suzzi2016-06-27 23:22:40 +0000
committerPatrik Suzzi2016-06-30 11:16:43 +0000
commitd087a6b7e24c09db8fa729b985383ba168fb4055 (patch)
tree2df902921ae107db516967c14dc61755de012bb6 /bundles
parentc574fc16a5885c8fb52341afec376d203c2ae9be (diff)
downloadeclipse.platform.swt-d087a6b7e24c09db8fa729b985383ba168fb4055.tar.gz
eclipse.platform.swt-d087a6b7e24c09db8fa729b985383ba168fb4055.tar.xz
eclipse.platform.swt-d087a6b7e24c09db8fa729b985383ba168fb4055.zip
Bug 496854 - Eclipse should display libwebgtk version when using gtk
With this change proposal, WebKit stores the WebKitGTK version in system properties, after the first time the WebKitGTK is used. Change-Id: Ide338b198fa67e65422ee1aeb363c5a6cf8a4b50 Signed-off-by: Patrik Suzzi <psuzzi@gmail.com>
Diffstat (limited to 'bundles')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java57
1 files changed, 28 insertions, 29 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java b/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java
index d65638e0ca..9675d82487 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk/org/eclipse/swt/browser/WebKit.java
@@ -94,6 +94,8 @@ class WebKit extends WebBrowser {
static final String KEY_CHECK_SUBWINDOW = "org.eclipse.swt.internal.control.checksubwindow"; //$NON-NLS-1$
+ static final String SWT_WEBKITGTK_VERSION = "org.eclipse.swt.internal.webkitgtk.version"; //$NON-NLS-1$
+
/* the following Callbacks are never freed */
static Callback Proc2, Proc3, Proc4, Proc5, Proc6;
static Callback JSObjectHasPropertyProc, JSObjectGetPropertyProc, JSObjectCallAsFunctionProc;
@@ -227,6 +229,24 @@ class WebKit extends WebBrowser {
}
}
+ /**
+ * Gets the webkit version, within an <code>int[3]</code> array with
+ * <code>{major, minor, micro}</code> version
+ */
+ private static int[] internalGetWebkitVersion(){
+ int [] vers = new int[3];
+ if (WEBKIT2){
+ vers[0] = WebKitGTK.webkit_get_major_version ();
+ vers[1] = WebKitGTK.webkit_get_minor_version ();
+ vers[2] = WebKitGTK.webkit_get_micro_version ();
+ } else {
+ vers[0] = WebKitGTK.webkit_major_version ();
+ vers[1] = WebKitGTK.webkit_minor_version ();
+ vers[2] = WebKitGTK.webkit_micro_version ();
+ }
+ return vers;
+ }
+
static String getString (long /*int*/ strPtr) {
int length = OS.strlen (strPtr);
byte [] buffer = new byte [length];
@@ -248,16 +268,8 @@ static boolean IsInstalled () {
// TODO webkit_check_version() should take care of the following, but for some
// reason this symbol is missing from the latest build. If it is present in
// Linux distro-provided builds then replace the following with this call.
- int major, minor, micro;
- if (WEBKIT2){
- major = WebKitGTK.webkit_get_major_version ();
- minor = WebKitGTK.webkit_get_minor_version ();
- micro = WebKitGTK.webkit_get_micro_version ();
- } else {
- major = WebKitGTK.webkit_major_version ();
- minor = WebKitGTK.webkit_minor_version ();
- micro = WebKitGTK.webkit_micro_version ();
- }
+ int [] vers = internalGetWebkitVersion();
+ int major = vers[0], minor = vers[1], micro = vers[2];
IsWebKit14orNewer = major > 1 ||
(major == 1 && minor > 4) ||
(major == 1 && minor == 4 && micro >= 0);
@@ -558,18 +570,11 @@ long /*int*/ webViewProc (long /*int*/ handle, long /*int*/ arg0, long /*int*/ a
@Override
public void create (Composite parent, int style) {
if (ExternalClass == 0) {
+ int [] vers = internalGetWebkitVersion();
+ System.setProperty(SWT_WEBKITGTK_VERSION,
+ String.format("%s.%s.%s", vers[0], vers[1], vers[2])); // $NON-NLS-1$
if (Device.DEBUG) {
- int major, minor, micro;
- if (WEBKIT2){
- major = WebKitGTK.webkit_get_major_version ();
- minor = WebKitGTK.webkit_get_minor_version ();
- micro = WebKitGTK.webkit_get_micro_version ();
- } else {
- major = WebKitGTK.webkit_major_version ();
- minor = WebKitGTK.webkit_minor_version ();
- micro = WebKitGTK.webkit_micro_version ();
- }
- System.out.println("WebKit version " + major + "." + minor + "." + micro); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ System.out.println(String.format("WebKit version %s.%s.%s", vers[0], vers[1], vers[2])); //$NON-NLS-1$
}
JSClassDefinition jsClassDefinition = new JSClassDefinition ();
byte[] bytes = Converter.wcsToMbcs (null, CLASSNAME_EXTERNAL, true);
@@ -786,14 +791,8 @@ public void create (Composite parent, int style) {
* it. The workaround is to temporarily give it a size that forces
* the native resize events to fire.
*/
- int major, minor;
- if (WEBKIT2){
- major = WebKitGTK.webkit_get_major_version ();
- minor = WebKitGTK.webkit_get_minor_version ();
- } else {
- major = WebKitGTK.webkit_major_version ();
- minor = WebKitGTK.webkit_minor_version ();
- }
+ int [] vers = internalGetWebkitVersion();
+ int major = vers[0], minor = vers[1];
if (major == 1 && minor >= 10) {
Rectangle minSize = browser.computeTrim (0, 0, 2, 2);
Point size = browser.getSize ();

Back to the top