[jbosstools-commits] JBoss Tools SVN: r36071 - workspace/yradtsevich/browsersim/swt-webkit-browsersim/org.jboss.tools.browsersim.webkit/src/org/jboss/tools/browsersim/webkit/internal.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Fri Oct 28 11:14:30 EDT 2011


Author: yradtsevich
Date: 2011-10-28 11:14:27 -0400 (Fri, 28 Oct 2011)
New Revision: 36071

Modified:
   workspace/yradtsevich/browsersim/swt-webkit-browsersim/org.jboss.tools.browsersim.webkit/src/org/jboss/tools/browsersim/webkit/internal/WebKitBrowser_gtk_linux_x86.java
Log:
https://issues.jboss.org/browse/JBIDE-9539 : Browsersim app for testing mobile/desktop web apps
- removing fragments and gathering all classes in one plugin is in progress: Linux x86 version

Modified: workspace/yradtsevich/browsersim/swt-webkit-browsersim/org.jboss.tools.browsersim.webkit/src/org/jboss/tools/browsersim/webkit/internal/WebKitBrowser_gtk_linux_x86.java
===================================================================
--- workspace/yradtsevich/browsersim/swt-webkit-browsersim/org.jboss.tools.browsersim.webkit/src/org/jboss/tools/browsersim/webkit/internal/WebKitBrowser_gtk_linux_x86.java	2011-10-28 14:40:43 UTC (rev 36070)
+++ workspace/yradtsevich/browsersim/swt-webkit-browsersim/org.jboss.tools.browsersim.webkit/src/org/jboss/tools/browsersim/webkit/internal/WebKitBrowser_gtk_linux_x86.java	2011-10-28 15:14:27 UTC (rev 36071)
@@ -15,8 +15,6 @@
 import java.lang.reflect.Method;
 
 import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.internal.Converter;
-import org.eclipse.swt.internal.gtk.OS;
 import org.eclipse.swt.widgets.Composite;
 import org.jboss.tools.browsersim.webkit.AbstractWebKitBrowser;
 
@@ -41,24 +39,20 @@
 
 	protected void setCustomUserAgent(String userAgent) {
 		try {
-			Field webBrowserField = Browser.class.getDeclaredField("webBrowser");
-			webBrowserField.setAccessible(true);
-			Object webKit = webBrowserField.get(this);
-	
-			Field webViewField = webKit.getClass().getDeclaredField("webView");
-			webViewField.setAccessible(true);
-			int webView = (Integer) webViewField.get(webKit);
+			int /*long*/ webView = getThis_webBrowser_webView();
 			
-//			int settings = WebKitGTK.webkit_web_view_get_settings(webView);
-			Class webKitGTKClass = Browser.class.getClassLoader().loadClass("org.eclipse.swt.internal.webkit.WebKitGTK");
-			Method webkit_web_view_get_settingsMethod = webKitGTKClass.getDeclaredMethod("webkit_web_view_get_settings", int.class);
-			int settings = (Integer) webkit_web_view_get_settingsMethod.invoke(null, webView);
+			//int /*long*/ settings = WebKitGTK.webkit_web_view_get_settings(webView);
+			int /*long*/ settings = invokeWebKitGTK_webkit_web_view_get_settings(webView);
 			
 			if (userAgent == null) {
-				OS.g_object_set(settings, USER_AGENT, 0, 0);
+				//org.eclipse.swt.internal.gtk.OS.g_object_set(settings, USER_AGENT, 0, 0);
+				invokeOS_g_object_set(settings, USER_AGENT, 0, 0);
 			} else {
-				byte[] bytes = Converter.wcsToMbcs(null, userAgent, true);
-				OS.g_object_set(settings, USER_AGENT, bytes, 0);
+				//byte[] bytes = org.eclipse.swt.internal.Converter.wcsToMbcs(null, userAgent, true);
+				byte[] bytes = invokeConverter_wcsToMbcs(null, userAgent, true);
+				
+				//org.eclipse.swt.internal.gtk.OS.g_object_set(settings, USER_AGENT, bytes, 0);
+				invokeOS_g_object_set(settings, USER_AGENT, bytes, 0);
 			}
 		} catch (SecurityException e) {
 			e.printStackTrace();
@@ -76,4 +70,52 @@
 			e.printStackTrace();
 		}
 	}
+
+	private int /*long*/ getThis_webBrowser_webView() throws NoSuchFieldException,
+			IllegalAccessException {
+		Field webBrowserField = Browser.class.getDeclaredField("webBrowser");
+		webBrowserField.setAccessible(true);
+		Object webKit = webBrowserField.get(this);
+
+		Field webViewField = webKit.getClass().getDeclaredField("webView");
+		webViewField.setAccessible(true);
+		int /*long*/ webView = (Integer /*Long*/) webViewField.get(webKit);
+		return webView;
+	}
+	
+	//void org.eclipse.swt.internal.gtk.OS#g_object_set(int /*long*/ object, byte[] first_property_name, int data, int /*long*/ terminator)
+	private void invokeOS_g_object_set(int /*long*/ object, byte[] first_property_name, int data, int /*long*/ terminator)
+			throws ClassNotFoundException, NoSuchMethodException,
+			IllegalAccessException, InvocationTargetException {
+		Class<?> OS = Browser.class.getClassLoader().loadClass("org.eclipse.swt.internal.gtk.OS");
+		Method OS_g_object_set = OS.getDeclaredMethod("g_object_set", int/*long*/.class, byte[].class, int.class, int/*long*/.class);
+		OS_g_object_set.invoke(null, object, first_property_name, data, terminator);
+	}
+
+	//void org.eclipse.swt.internal.gtk.OS#void g_object_set(int /*long*/ object, byte[] first_property_name, byte[] data, int /*long*/ terminator)
+	private void invokeOS_g_object_set(int /*long*/ object, byte[] first_property_name, byte[] data, int /*long*/ terminator)
+			throws ClassNotFoundException, NoSuchMethodException,
+			IllegalAccessException, InvocationTargetException {
+		Class<?> OS = Browser.class.getClassLoader().loadClass("org.eclipse.swt.internal.gtk.OS");
+		Method OS_g_object_set = OS.getDeclaredMethod("g_object_set", int/*long*/.class, byte[].class, byte[].class, int/*long*/.class);
+		OS_g_object_set.invoke(null, object, first_property_name, data, terminator);
+	}
+	
+	// public static byte [] org.eclipse.swt.internal.Converter#wcsToMbcs (String codePage, String string, boolean terminate)
+	private byte [] invokeConverter_wcsToMbcs (String codePage, String string, boolean terminate)
+			throws ClassNotFoundException, NoSuchMethodException,
+			IllegalAccessException, InvocationTargetException {
+		Class<?> Converter = Browser.class.getClassLoader().loadClass("org.eclipse.swt.internal.Converter");
+		Method Converter_wcsToMbcs = Converter.getDeclaredMethod("wcsToMbcs", String.class, String.class, boolean.class);
+		return (byte[]) Converter_wcsToMbcs.invoke(null, codePage, string, terminate);
+	}
+	
+	// org.eclipse.swt.internal.webkit.WebKitGTK#webkit_web_view_get_settings(webView);
+	private int /*long*/ invokeWebKitGTK_webkit_web_view_get_settings(int /*long*/ webView)
+			throws ClassNotFoundException, NoSuchMethodException,
+			IllegalAccessException, InvocationTargetException {
+		Class<?> webKitGTKClass = Browser.class.getClassLoader().loadClass("org.eclipse.swt.internal.webkit.WebKitGTK");
+		Method webkit_web_view_get_settingsMethod = webKitGTKClass.getDeclaredMethod("webkit_web_view_get_settings", int/*long*/.class);
+		return (Integer/*Long*/) webkit_web_view_get_settingsMethod.invoke(null, webView);
+	}
 }



More information about the jbosstools-commits mailing list