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);
+ }
}