Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Mozilla')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java260
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Mozilla/cocoa/org/eclipse/swt/browser/MozillaDelegate.java161
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptContext.h468
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptGlobalObject.h196
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/swt_xpcom.rc45
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp6182
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h43
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_custom.cpp88
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_custom.h18
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp987
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h973
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_structs.cpp94
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_structs.h37
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit.cpp77
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit.h26
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_stats.cpp46
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_stats.h32
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_structs.cpp54
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_structs.h25
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java334
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Download.java375
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/DownloadFactory.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/DownloadFactory_1_8.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Download_1_8.java397
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/External.java590
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/ExternalFactory.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePicker.java306
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePickerFactory.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePickerFactory_1_8.java44
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePicker_1_8.java60
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialog.java208
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java106
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java143
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/InputStream.java129
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java3820
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptDialog.java294
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptService2.java641
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptService2Factory.java100
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/SimpleEnumerator.java114
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/WindowCreator2.java226
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java2155
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOMObject.java1031
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java22
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java71
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java18
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsEmbedString.java63
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIAppShell.java75
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIAuthInformation.java87
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIBaseWindow.java139
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICancelable.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICategoryManager.java67
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIChannel.java119
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIClassInfo.java91
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIComponentManager.java59
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java91
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java59
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookie.java101
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieManager.java55
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieService.java64
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java59
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java77
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMEvent.java89
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java55
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java299
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java87
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java51
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java51
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java55
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMWindow.java111
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java55
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDataType.java73
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryService.java55
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDocShell.java269
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java317
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDownload.java95
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java83
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java81
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFactory.java51
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFile.java227
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFilePicker.java118
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java118
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java79
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java55
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java57
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java79
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java83
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIIOService.java83
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIInputStream.java63
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIJSContextStack.java59
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsILocalFile.java111
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIMemory.java63
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIObserverService.java59
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefBranch.java123
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java59
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefService.java67
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrincipal.java143
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProgressDialog.java63
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java71
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPromptService.java113
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPromptService2.java51
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProperties.java63
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIRequest.java101
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java159
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java159
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java33
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISerializable.java51
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIServiceManager.java59
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java51
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISupports.java68
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsITooltipListener.java51
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsITransfer.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIURI.java147
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIURIContentListener.java75
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIVariant.java147
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWeakReference.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowser.java71
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java137
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java51
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java75
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java63
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java55
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebNavigation.java119
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java55
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgress.java79
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java93
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowCreator.java47
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java49
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java87
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java141
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java79
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/package.html20
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/MozillaDelegate.java207
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java188
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/win32/org/eclipse/swt/browser/MozillaDelegate.java131
139 files changed, 29710 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100644
index 0000000000..ad94e4c92e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/carbon/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,260 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import java.util.Hashtable;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.carbon.*;
+import org.eclipse.swt.internal.cocoa.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+ Listener listener;
+ boolean hasFocus;
+ static Callback Callback3;
+ static Hashtable handles = new Hashtable ();
+
+MozillaDelegate (Browser browser) {
+ super ();
+ this.browser = browser;
+}
+
+static Browser findBrowser (int handle) {
+ LONG value = (LONG)handles.get (new LONG (handle));
+ if (value != null) {
+ Display display = Display.getCurrent ();
+ return (Browser)display.findWidget (value.value);
+ }
+ return null;
+}
+
+static char[] mbcsToWcs (String codePage, byte [] buffer) {
+ int encoding = OS.CFStringGetSystemEncoding ();
+ int cfstring = OS.CFStringCreateWithBytes (OS.kCFAllocatorDefault, buffer, buffer.length, encoding, false);
+ char[] chars = null;
+ if (cfstring != 0) {
+ int length = OS.CFStringGetLength (cfstring);
+ chars = new char [length];
+ if (length != 0) {
+ CFRange range = new CFRange ();
+ range.length = length;
+ OS.CFStringGetCharacters (cfstring, range, chars);
+ }
+ OS.CFRelease (cfstring);
+ }
+ return chars;
+}
+
+static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+ char[] chars = new char [string.length()];
+ string.getChars (0, chars.length, chars, 0);
+ int cfstring = OS.CFStringCreateWithCharacters (OS.kCFAllocatorDefault, chars, chars.length);
+ byte[] buffer = null;
+ if (cfstring != 0) {
+ CFRange range = new CFRange ();
+ range.length = chars.length;
+ int encoding = OS.CFStringGetSystemEncoding ();
+ int[] size = new int[1];
+ int numChars = OS.CFStringGetBytes (cfstring, range, encoding, (byte)'?', true, null, 0, size);
+ buffer = new byte [size[0] + (terminate ? 1 : 0)];
+ if (numChars != 0) {
+ numChars = OS.CFStringGetBytes (cfstring, range, encoding, (byte)'?', true, buffer, size[0], size);
+ }
+ OS.CFRelease (cfstring);
+ }
+ return buffer;
+}
+
+static int eventProc3 (int nextHandler, int theEvent, int userData) {
+ Widget widget = Display.getCurrent ().findWidget (userData);
+ if (widget instanceof Browser) {
+ Browser browser = (Browser) widget;
+ switch (OS.GetEventClass (theEvent)) {
+ case OS.kEventClassMouse:
+ browser.getShell ().forceActive ();
+ ((Mozilla)browser.webBrowser).Activate ();
+ break;
+ case OS.kEventClassKeyboard:
+ /*
+ * Bug in Carbon. OSX crashes if a HICocoaView is disposed during a key event,
+ * presumably as a result of attempting to use it after its refcount has reached
+ * 0. The workaround is to temporarily add an extra ref to the view while the
+ * DOM listener is handling the event, in case the Browser gets disposed in a
+ * callback.
+ */
+ int handle = browser.handle;
+ OS.CFRetain (handle);
+ int result = OS.CallNextEventHandler (nextHandler, theEvent);
+ OS.CFRelease (handle);
+ return result;
+ }
+ }
+ return OS.eventNotHandledErr;
+}
+
+void addWindowSubclass () {
+}
+
+int createBaseWindow (nsIBaseWindow baseWindow) {
+ /*
+ * Feature of Mozilla on OSX. Mozilla replaces the OSX application menu whenever
+ * a browser's base window is created. The workaround is to restore the previous
+ * menu after creating the base window.
+ */
+ int application = Cocoa.objc_msgSend (Cocoa.C_NSApplication, Cocoa.S_sharedApplication);
+ int mainMenu = Cocoa.objc_msgSend (application, Cocoa.S_mainMenu);
+ Cocoa.objc_msgSend (mainMenu, Cocoa.S_retain);
+ int rc = baseWindow.Create ();
+ Cocoa.objc_msgSend (application, Cocoa.S_setMainMenu, mainMenu);
+ Cocoa.objc_msgSend (mainMenu, Cocoa.S_release);
+ return rc;
+}
+
+int getHandle () {
+ int embedHandle = Cocoa.objc_msgSend (Cocoa.C_NSImageView, Cocoa.S_alloc);
+ if (embedHandle == 0) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES);
+ }
+ NSRect r = new NSRect ();
+ embedHandle = Cocoa.objc_msgSend (embedHandle, Cocoa.S_initWithFrame, r);
+ int rc;
+ int[] outControl = new int[1];
+ rc = Cocoa.HICocoaViewCreate (embedHandle, 0, outControl); /* OSX >= 10.5 */
+ if (rc == OS.noErr && outControl[0] != 0) {
+ Cocoa.objc_msgSend (embedHandle, Cocoa.S_release);
+ } else {
+ /* will succeed on OSX 10.4 with an updated vm containing HIJavaViewCreateWithCocoaView */
+ try {
+ System.loadLibrary ("frameembedding"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError e) {}
+ rc = Cocoa.HIJavaViewCreateWithCocoaView (outControl, embedHandle);
+ if (!(rc == OS.noErr && outControl[0] != 0)) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES);
+ }
+ }
+ int subHIView = outControl[0];
+ HILayoutInfo newLayoutInfo = new HILayoutInfo ();
+ newLayoutInfo.version = 0;
+ OS.HIViewGetLayoutInfo (subHIView, newLayoutInfo);
+ HISideBinding biding = newLayoutInfo.binding.top;
+ biding.toView = 0;
+ biding.kind = OS.kHILayoutBindMin;
+ biding.offset = 0;
+ biding = newLayoutInfo.binding.left;
+ biding.toView = 0;
+ biding.kind = OS.kHILayoutBindMin;
+ biding.offset = 0;
+ biding = newLayoutInfo.binding.bottom;
+ biding.toView = 0;
+ biding.kind = OS.kHILayoutBindMax;
+ biding.offset = 0;
+ biding = newLayoutInfo.binding.right;
+ biding.toView = 0;
+ biding.kind = OS.kHILayoutBindMax;
+ biding.offset = 0;
+ OS.HIViewSetLayoutInfo (subHIView, newLayoutInfo);
+ OS.HIViewChangeFeatures (subHIView, OS.kHIViewFeatureIsOpaque, 0);
+ OS.HIViewSetVisible (subHIView, true);
+ int parentHandle = browser.handle;
+ OS.HIViewAddSubview (browser.handle, subHIView);
+ CGRect rect = new CGRect ();
+ OS.HIViewGetFrame (parentHandle, rect);
+ rect.x = rect.y = 0;
+ OS.HIViewSetFrame (subHIView, rect);
+ handles.put (new LONG (embedHandle), new LONG (browser.handle));
+
+ if (Callback3 == null) Callback3 = new Callback (this.getClass (), "eventProc3", 3); //$NON-NLS-1$
+ int callback3Address = Callback3.getAddress ();
+ if (callback3Address == 0) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+ }
+ int [] mask = new int [] {
+ OS.kEventClassMouse, OS.kEventMouseDown,
+ OS.kEventClassKeyboard, OS.kEventRawKeyDown,
+ };
+ int controlTarget = OS.GetControlEventTarget (subHIView);
+ OS.InstallEventHandler (controlTarget, callback3Address, mask.length / 2, mask, browser.handle, null);
+
+ return embedHandle;
+}
+
+String getJSLibraryName () {
+ return "libmozjs.dylib"; //$NON-NLS-1$
+}
+
+String getLibraryName () {
+ return "libxpcom.dylib"; //$NON-NLS-1$
+}
+
+String getSWTInitLibraryName () {
+ return "swt-xulrunner"; //$NON-NLS-1$
+}
+
+void handleFocus () {
+ if (hasFocus) return;
+ hasFocus = true;
+ ((Mozilla)browser.webBrowser).Activate ();
+ browser.setFocus ();
+ listener = new Listener () {
+ public void handleEvent (Event event) {
+ if (event.widget == browser) return;
+ ((Mozilla)browser.webBrowser).Deactivate ();
+ hasFocus = false;
+ browser.getDisplay ().removeFilter (SWT.FocusIn, this);
+ browser.getShell ().removeListener (SWT.Deactivate, this);
+ listener = null;
+ }
+
+ };
+ browser.getDisplay ().addFilter (SWT.FocusIn, listener);
+ browser.getShell ().addListener (SWT.Deactivate, listener);
+}
+
+void handleMouseDown () {
+}
+
+boolean hookEnterExit () {
+ return true;
+}
+
+void init () {
+}
+
+boolean needsSpinup () {
+ return false;
+}
+
+void onDispose (int embedHandle) {
+ handles.remove (new LONG (embedHandle));
+ if (listener != null) {
+ browser.getDisplay ().removeFilter (SWT.FocusIn, listener);
+ browser.getShell ().removeListener (SWT.Deactivate, listener);
+ listener = null;
+ }
+ browser = null;
+}
+
+void removeWindowSubclass () {
+}
+
+void setSize (int embedHandle, int width, int height) {
+ // TODO
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/cocoa/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/cocoa/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100755
index 0000000000..cc244448af
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/cocoa/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.internal.cocoa.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+ Listener listener;
+ boolean hasFocus;
+
+MozillaDelegate (Browser browser) {
+ super ();
+ this.browser = browser;
+}
+
+static Browser findBrowser (int /*long*/ handle) {
+ Display display = Display.getCurrent ();
+ return (Browser)display.findWidget (handle);
+}
+
+static char[] mbcsToWcs (String codePage, byte [] buffer) {
+// int encoding = OS.CFStringGetSystemEncoding ();
+// int cfstring = OS.CFStringCreateWithBytes (OS.kCFAllocatorDefault, buffer, buffer.length, encoding, false);
+// char[] chars = null;
+// if (cfstring != 0) {
+// int length = OS.CFStringGetLength (cfstring);
+// chars = new char [length];
+// if (length != 0) {
+// CFRange range = new CFRange ();
+// range.length = length;
+// OS.CFStringGetCharacters (cfstring, range, chars);
+// }
+// OS.CFRelease (cfstring);
+// }
+// return chars;
+ // TODO implement mbcsToWcs
+ return new String(buffer).toCharArray();
+}
+
+static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+// char[] chars = new char [string.length()];
+// string.getChars (0, chars.length, chars, 0);
+// int cfstring = OS.CFStringCreateWithCharacters (OS.kCFAllocatorDefault, chars, chars.length);
+// byte[] buffer = null;
+// if (cfstring != 0) {
+// CFRange range = new CFRange ();
+// range.length = chars.length;
+// int encoding = OS.CFStringGetSystemEncoding ();
+// int[] size = new int[1];
+// int numChars = OS.CFStringGetBytes (cfstring, range, encoding, (byte)'?', true, null, 0, size);
+// buffer = new byte [size[0] + (terminate ? 1 : 0)];
+// if (numChars != 0) {
+// numChars = OS.CFStringGetBytes (cfstring, range, encoding, (byte)'?', true, buffer, size[0], size);
+// }
+// OS.CFRelease (cfstring);
+// }
+// return buffer;
+ // TODO implement wcsToMbcs
+ if (terminate) string += "\0";
+ return string.getBytes();
+}
+
+void addWindowSubclass () {
+}
+
+int createBaseWindow (nsIBaseWindow baseWindow) {
+ /*
+ * Feature of Mozilla on OSX. Mozilla replaces the OSX application menu whenever
+ * a browser's base window is created. The workaround is to restore the previous
+ * menu after creating the base window.
+ */
+ NSApplication application = NSApplication.sharedApplication ();
+ NSMenu mainMenu = application.mainMenu ();
+ mainMenu.retain ();
+ int rc = baseWindow.Create ();
+ application.setMainMenu (mainMenu);
+ mainMenu.release ();
+ return rc;
+}
+
+int /*long*/ getHandle () {
+ return browser.view.id;
+}
+
+String getJSLibraryName () {
+ return "libmozjs.dylib"; //$NON-NLS-1$
+}
+
+String getLibraryName () {
+ return "libxpcom.dylib"; //$NON-NLS-1$
+}
+
+String getSWTInitLibraryName () {
+ return "swt-xulrunner"; //$NON-NLS-1$
+}
+
+void handleFocus () {
+ if (hasFocus) return;
+ hasFocus = true;
+ ((Mozilla)browser.webBrowser).Activate ();
+ browser.setFocus ();
+ listener = new Listener () {
+ public void handleEvent (Event event) {
+ if (event.widget == browser) return;
+ ((Mozilla)browser.webBrowser).Deactivate ();
+ hasFocus = false;
+ browser.getDisplay ().removeFilter (SWT.FocusIn, this);
+ browser.getShell ().removeListener (SWT.Deactivate, this);
+ listener = null;
+ }
+
+ };
+ browser.getDisplay ().addFilter (SWT.FocusIn, listener);
+ browser.getShell ().addListener (SWT.Deactivate, listener);
+}
+
+void handleMouseDown () {
+}
+
+boolean hookEnterExit () {
+ return true;
+}
+
+void init () {
+}
+
+boolean needsSpinup () {
+ return false;
+}
+
+void onDispose (int /*long*/ embedHandle) {
+ if (listener != null) {
+ browser.getDisplay ().removeFilter (SWT.FocusIn, listener);
+ browser.getShell ().removeListener (SWT.Deactivate, listener);
+ listener = null;
+ }
+ browser = null;
+}
+
+void removeWindowSubclass () {
+}
+
+void setSize (int /*long*/ embedHandle, int width, int height) {
+ // TODO
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptContext.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptContext.h
new file mode 100644
index 0000000000..783cf3d34f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptContext.h
@@ -0,0 +1,468 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998-1999
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/*
+ * This file is derived from the Original Code provided by mozilla.org,
+ * whose Initial Developer is Netscape Communications Corporation. Changes
+ * to the original file were made by SWT on April 7, 2009 and are marked
+ * with trailing comment "//SWT-20090407".
+ */
+
+#ifndef nsIScriptContext_h__
+#define nsIScriptContext_h__
+
+#include "nscore.h"
+//#include "nsStringGlue.h" //SWT-20090407
+#include "nsISupports.h"
+#include "nsCOMPtr.h"
+#include "nsIProgrammingLanguage.h"
+
+class nsIScriptGlobalObject;
+class nsIScriptSecurityManager;
+class nsIPrincipal;
+class nsIAtom;
+class nsIArray;
+class nsIVariant;
+class nsIObjectInputStream;
+class nsIObjectOutputStream;
+class nsScriptObjectHolder;
+
+typedef void (*nsScriptTerminationFunc)(nsISupports* aRef);
+
+#define NS_ISCRIPTCONTEXT_IID \
+{ /* {e7b9871d-3adc-4bf7-850d-7fb9554886bf} */ \
+ 0xe7b9871d, 0x3adc, 0x4bf7, \
+ { 0x85, 0x0d, 0x7f, 0xb9, 0x55, 0x48, 0x86, 0xbf } }
+
+/* This MUST match JSVERSION_DEFAULT. This version stuff if we don't
+ know what language we have is a little silly... */
+#define SCRIPTVERSION_DEFAULT JSVERSION_DEFAULT
+
+/**
+ * It is used by the application to initialize a runtime and run scripts.
+ * A script runtime would implement this interface.
+ * <P><I>It does have a bit too much java script information now, that
+ * should be removed in a short time. Ideally this interface will be
+ * language neutral</I>
+ */
+class nsIScriptContext : public nsISupports
+{
+public:
+//NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISCRIPTCONTEXT_IID) //SWT-20090407
+
+ /* Get the ID of this language. */
+ virtual PRUint32 GetScriptTypeID() = 0;
+
+ /**
+ * Compile and execute a script.
+ *
+ * @param aScript a string representing the script to be executed
+ * @param aScopeObject a script object for the scope to execute in, or
+ * nsnull to use a default scope
+ * @param aPrincipal the principal that produced the script
+ * @param aURL the URL or filename for error messages
+ * @param aLineNo the starting line number of the script for error messages
+ * @param aVersion the script language version to use when executing
+ * @param aRetValue the result of executing the script, or null for no result.
+ * If this is a JS context, it's the caller's responsibility to
+ * preserve aRetValue from GC across this call
+ * @param aIsUndefined true if the result of executing the script is the
+ * undefined value
+ *
+ * @return NS_OK if the script was valid and got executed
+ *
+ **/
+ virtual nsresult EvaluateString(const nsAString& aScript,
+ void *aScopeObject,
+ nsIPrincipal *aPrincipal,
+ const char *aURL,
+ PRUint32 aLineNo,
+ PRUint32 aVersion,
+ nsAString *aRetValue,
+ PRBool* aIsUndefined) = 0;
+
+ // Note JS bigotry remains here - 'void *aRetValue' is assumed to be a
+ // jsval. This must move to JSObject before it can be made agnostic.
+ virtual nsresult EvaluateStringWithValue(const nsAString& aScript,
+ void *aScopeObject,
+ nsIPrincipal *aPrincipal,
+ const char *aURL,
+ PRUint32 aLineNo,
+ PRUint32 aVersion,
+ void* aRetValue,
+ PRBool* aIsUndefined) = 0;
+
+ /**
+ * Compile a script.
+ *
+ * @param aText a PRUnichar buffer containing script source
+ * @param aTextLength number of characters in aText
+ * @param aScopeObject an object telling the scope in which to execute,
+ * or nsnull to use a default scope
+ * @param aPrincipal the principal that produced the script
+ * @param aURL the URL or filename for error messages
+ * @param aLineNo the starting line number of the script for error messages
+ * @param aVersion the script language version to use when executing
+ * @param aScriptObject an executable object that's the result of compiling
+ * the script.
+ *
+ * @return NS_OK if the script source was valid and got compiled.
+ *
+ **/
+ virtual nsresult CompileScript(const PRUnichar* aText,
+ PRInt32 aTextLength,
+ void* aScopeObject,
+ nsIPrincipal* aPrincipal,
+ const char* aURL,
+ PRUint32 aLineNo,
+ PRUint32 aVersion,
+ nsScriptObjectHolder &aScriptObject) = 0;
+
+ /**
+ * Execute a precompiled script object.
+ *
+ * @param aScriptObject an object representing the script to be executed
+ * @param aScopeObject an object telling the scope in which to execute,
+ * or nsnull to use a default scope
+ * @param aRetValue the result of executing the script, may be null in
+ * which case no result string is computed
+ * @param aIsUndefined true if the result of executing the script is the
+ * undefined value, may be null for "don't care"
+ *
+ * @return NS_OK if the script was valid and got executed
+ *
+ */
+ virtual nsresult ExecuteScript(void* aScriptObject,
+ void* aScopeObject,
+ nsAString* aRetValue,
+ PRBool* aIsUndefined) = 0;
+
+ /**
+ * Compile the event handler named by atom aName, with function body aBody
+ * into a function object returned if ok via aHandler. Does NOT bind the
+ * function to anything - BindCompiledEventHandler() should be used for that
+ * purpose. Note that this event handler is always considered 'shared' and
+ * hence is compiled without principals. Never call the returned object
+ * directly - it must be bound (and thereby cloned, and therefore have the
+ * correct principals) before use!
+ *
+ * @param aName an nsIAtom pointer naming the function; it must be lowercase
+ * and ASCII, and should not be longer than 63 chars. This bound on
+ * length is enforced only by assertions, so caveat caller!
+ * @param aEventName the name that the event object should be bound to
+ * @param aBody the event handler function's body
+ * @param aURL the URL or filename for error messages
+ * @param aLineNo the starting line number of the script for error messages
+ * @param aVersion the script language version to use when executing
+ * @param aHandler the out parameter in which a void pointer to the compiled
+ * function object is stored on success
+ *
+ * @return NS_OK if the function body was valid and got compiled
+ */
+ virtual nsresult CompileEventHandler(nsIAtom* aName,
+ PRUint32 aArgCount,
+ const char** aArgNames,
+ const nsAString& aBody,
+ const char* aURL,
+ PRUint32 aLineNo,
+ PRUint32 aVersion,
+ nsScriptObjectHolder &aHandler) = 0;
+
+ /**
+ * Call the function object with given args and return its boolean result,
+ * or true if the result isn't boolean.
+ *
+ * @param aTarget the event target
+ * @param aScript an object telling the scope in which to call the compiled
+ * event handler function.
+ * @param aHandler function object (function and static scope) to invoke.
+ * @param argv array of arguments. Note each element is assumed to
+ * be an nsIVariant.
+ * @param rval out parameter returning result
+ **/
+ virtual nsresult CallEventHandler(nsISupports* aTarget,
+ void *aScope, void* aHandler,
+ nsIArray *argv, nsIVariant **rval) = 0;
+
+ /**
+ * Bind an already-compiled event handler function to a name in the given
+ * scope object. The same restrictions on aName (lowercase ASCII, not too
+ * long) applies here as for CompileEventHandler. Scripting languages with
+ * static scoping must re-bind the scope chain for aHandler to begin (after
+ * the activation scope for aHandler itself, typically) with aTarget's scope.
+ *
+ * Logically, this 'bind' operation is more of a 'copy' - it simply
+ * stashes/associates the event handler function with the event target, so
+ * it can be fetched later with GetBoundEventHandler().
+ *
+ * @param aTarget an object telling the scope in which to bind the compiled
+ * event handler function. The context will presumably associate
+ * this nsISupports with a native script object.
+ * @param aName an nsIAtom pointer naming the function; it must be lowercase
+ * and ASCII, and should not be longer than 63 chars. This bound on
+ * length is enforced only by assertions, so caveat caller!
+ * @param aHandler the function object to name, created by an earlier call to
+ * CompileEventHandler
+ * @return NS_OK if the function was successfully bound to the name
+ *
+ * XXXmarkh - fold this in with SetProperty? Exactly the same concept!
+ */
+ virtual nsresult BindCompiledEventHandler(nsISupports* aTarget, void *aScope,
+ nsIAtom* aName,
+ void* aHandler) = 0;
+
+ /**
+ * Lookup a previously bound event handler for the specified target. This
+ * will return an object equivilent to the one passed to
+ * BindCompiledEventHandler (although the pointer may not be the same).
+ *
+ */
+ virtual nsresult GetBoundEventHandler(nsISupports* aTarget, void *aScope,
+ nsIAtom* aName,
+ nsScriptObjectHolder &aHandler) = 0;
+
+ /**
+ * Compile a function that isn't used as an event handler.
+ *
+ * NOTE: Not yet language agnostic (main problem is XBL - not yet agnostic)
+ * Caller must make sure aFunctionObject is a JS GC root.
+ *
+ **/
+ virtual nsresult CompileFunction(void* aTarget,
+ const nsACString& aName,
+ PRUint32 aArgCount,
+ const char** aArgArray,
+ const nsAString& aBody,
+ const char* aURL,
+ PRUint32 aLineNo,
+ PRUint32 aVersion,
+ PRBool aShared,
+ void **aFunctionObject) = 0;
+
+ /**
+ * Set the default scripting language version for this context, which must
+ * be a context specific to a particular scripting language.
+ *
+ **/
+ virtual void SetDefaultLanguageVersion(PRUint32 aVersion) = 0;
+
+ /**
+ * Return the global object.
+ *
+ **/
+ virtual nsIScriptGlobalObject *GetGlobalObject() = 0;
+
+ /**
+ * Return the native script context
+ *
+ **/
+ virtual void *GetNativeContext() = 0;
+
+ /**
+ * Return the native global object for this context.
+ *
+ **/
+ virtual void *GetNativeGlobal() = 0;
+
+ /**
+ * Create a new global object that will be used for an inner window.
+ * Return the native global and an nsISupports 'holder' that can be used
+ * to manage the lifetime of it.
+ */
+ virtual nsresult CreateNativeGlobalForInner(
+ nsIScriptGlobalObject *aNewInner,
+ PRBool aIsChrome,
+ void **aNativeGlobal,
+ nsISupports **aHolder) = 0;
+
+ /**
+ * Connect this context to a new inner window, to allow "prototype"
+ * chaining from the inner to the outer.
+ * Called after both the the inner and outer windows are initialized
+ **/
+ virtual nsresult ConnectToInner(nsIScriptGlobalObject *aNewInner,
+ void *aOuterGlobal) = 0;
+
+
+ /**
+ * Init this context ready for use. If aGlobalObject is not NULL, this
+ * function may initialize based on this global (for example, using the
+ * global to locate a chrome window, create a new 'scope' for this
+ * global, etc)
+ *
+ * @param aGlobalObject the gobal object, which may be nsnull.
+ *
+ * @return NS_OK if context initialization was successful
+ *
+ **/
+ virtual nsresult InitContext(nsIScriptGlobalObject *aGlobalObject) = 0;
+
+ /**
+ * Check to see if context is as yet intialized. Used to prevent
+ * reentrancy issues during the initialization process.
+ *
+ * @return PR_TRUE if initialized, PR_FALSE if not
+ *
+ */
+ virtual PRBool IsContextInitialized() = 0;
+
+ /**
+ * Called as the global object discards its reference to the context.
+ */
+ virtual void FinalizeContext() = 0;
+
+ /**
+ * For garbage collected systems, do a synchronous collection pass.
+ * May be a no-op on other systems
+ *
+ * @return NS_OK if the method is successful
+ */
+ virtual void GC() = 0;
+
+ /**
+ * Inform the context that a script was evaluated.
+ * A GC may be done if "necessary."
+ * This call is necessary if script evaluation is done
+ * without using the EvaluateScript method.
+ * @param aTerminated If true then call termination function if it was
+ * previously set. Within DOM this will always be true, but outside
+ * callers (such as xpconnect) who may do script evaluations nested
+ * inside DOM script evaluations can pass false to avoid premature
+ * calls to the termination function.
+ * @return NS_OK if the method is successful
+ */
+ virtual void ScriptEvaluated(PRBool aTerminated) = 0;
+
+ virtual nsresult Serialize(nsIObjectOutputStream* aStream,
+ void *aScriptObject) = 0;
+
+ /* Deserialize a script from a stream.
+ */
+ virtual nsresult Deserialize(nsIObjectInputStream* aStream,
+ nsScriptObjectHolder &aResult) = 0;
+
+ /**
+ * JS only - this function need not be implemented by languages other
+ * than JS (ie, this should be moved to a private interface!)
+ * Called to specify a function that should be called when the current
+ * script (if there is one) terminates. Generally used if breakdown
+ * of script state needs to happen, but should be deferred till
+ * the end of script evaluation.
+ *
+ * @throws NS_ERROR_OUT_OF_MEMORY if that happens
+ */
+ virtual nsresult SetTerminationFunction(nsScriptTerminationFunc aFunc,
+ nsISupports* aRef) = 0;
+
+ /**
+ * Called to disable/enable script execution in this context.
+ */
+ virtual PRBool GetScriptsEnabled() = 0;
+ virtual void SetScriptsEnabled(PRBool aEnabled, PRBool aFireTimeouts) = 0;
+
+ // SetProperty is suspect and jst believes should not be needed. Currenly
+ // used only for "arguments".
+ virtual nsresult SetProperty(void *aTarget, const char *aPropName, nsISupports *aVal) = 0;
+ /**
+ * Called to set/get information if the script context is
+ * currently processing a script tag
+ */
+ virtual PRBool GetProcessingScriptTag() = 0;
+ virtual void SetProcessingScriptTag(PRBool aResult) = 0;
+
+ /**
+ * Tell the context whether or not to GC when destroyed. An optimization
+ * used when the window is a [i]frame, so GC will happen anyway.
+ */
+ virtual void SetGCOnDestruction(PRBool aGCOnDestruction) = 0;
+
+ /**
+ * Initialize DOM classes on aGlobalObj, always call
+ * WillInitializeContext() before calling InitContext(), and always
+ * call DidInitializeContext() when a context is fully
+ * (successfully) initialized.
+ */
+ virtual nsresult InitClasses(void *aGlobalObj) = 0;
+
+ /**
+ * Clear the scope object - may be called either as we are being torn down,
+ * or before we are attached to a different document.
+ *
+ * aClearFromProtoChain is probably somewhat JavaScript specific. It
+ * indicates that the global scope polluter should be removed from the
+ * prototype chain and that the objects in the prototype chain should
+ * also have their scopes cleared. We don't do this all the time
+ * because the prototype chain is shared between inner and outer
+ * windows, and needs to stay with inner windows that we're keeping
+ * around.
+ */
+ virtual void ClearScope(void* aGlobalObj, PRBool aClearFromProtoChain) = 0;
+
+ /**
+ * Tell the context we're about to be reinitialize it.
+ */
+ virtual void WillInitializeContext() = 0;
+
+ /**
+ * Tell the context we're done reinitializing it.
+ */
+ virtual void DidInitializeContext() = 0;
+
+ /**
+ * Tell the context our global has a new document, and the scope
+ * used by it. Use nsISupports to avoid dependency issues - but expect
+ * a QI for nsIDOMDocument and/or nsIDocument.
+ */
+ virtual void DidSetDocument(nsISupports *aDoc, void *aGlobal) = 0;
+
+ /* Memory managment for script objects. Used by the implementation of
+ * nsScriptObjectHolder to manage the lifetimes of the held script objects.
+ *
+ * See also nsIScriptRuntime, which has identical methods and is useful
+ * in situations when you do not have an nsIScriptContext.
+ *
+ */
+ virtual nsresult DropScriptObject(void *object) = 0;
+ virtual nsresult HoldScriptObject(void *object) = 0;
+
+ /* Report a pending exception if there is one on the native context */
+ virtual void ReportPendingException() = 0;
+};
+
+//NS_DEFINE_STATIC_IID_ACCESSOR(nsIScriptContext, NS_ISCRIPTCONTEXT_IID) //SWT-20090407
+
+#endif // nsIScriptContext_h__
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptGlobalObject.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptGlobalObject.h
new file mode 100644
index 0000000000..276d40f4d5
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptGlobalObject.h
@@ -0,0 +1,196 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 sw=2 et tw=80: */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/*
+ * This file is derived from the Original Code provided by mozilla.org,
+ * whose Initial Developer is Netscape Communications Corporation. Changes
+ * to the original file were made by SWT on April 7, 2009 and are marked
+ * with trailing comment "//SWT-20090407".
+ */
+
+#ifndef nsIScriptGlobalObject_h__
+#define nsIScriptGlobalObject_h__
+
+#include "nsISupports.h"
+//#include "nsEvent.h" //SWT-20090407
+#include "nsIProgrammingLanguage.h"
+
+class nsIScriptContext;
+class nsIDOMDocument;
+class nsIDOMEvent;
+class nsPresContext;
+class nsIScriptGlobalObjectOwner;
+class nsIArray;
+class nsScriptErrorEvent;
+class nsIScriptGlobalObject;
+//enum nsEventStatus; //SWT-20090407
+struct JSObject; // until we finally remove GetGlobalJSObject...
+
+// Some helpers for working with integer "script type IDs", and specifically
+// for working with arrays of such objects. For example, it is common for
+// implementations supporting multiple script languages to keep each
+// language's nsIScriptContext in an array indexed by the language ID.
+
+// Implementation note: We always ignore nsIProgrammingLanguage::UNKNOWN and
+// nsIProgrammingLanguage::CPLUSPLUS - this gives javascript slot 0. An
+// attempted micro-optimization tried to avoid us going all the way to
+// nsIProgrammingLanguage::MAX; however:
+// * Someone is reportedly working on a PHP impl - that has value 9
+// * nsGenericElement therefore allows 4 bits for the value.
+// So there is no good reason for us to be more restrictive again...
+
+#define NS_STID_FIRST nsIProgrammingLanguage::JAVASCRIPT
+// like nsGenericElement, only 4 bits worth is valid...
+#define NS_STID_LAST (nsIProgrammingLanguage::MAX > 0x000FU ? \
+ 0x000FU : nsIProgrammingLanguage::MAX)
+
+// Use to declare the array size
+#define NS_STID_ARRAY_UBOUND (NS_STID_LAST-NS_STID_FIRST+1)
+
+// Is a language ID valid?
+#define NS_STID_VALID(langID) (langID >= NS_STID_FIRST && langID <= NS_STID_LAST)
+
+// Return an index for a given ID.
+#define NS_STID_INDEX(langID) (langID-NS_STID_FIRST)
+
+// Create a 'for' loop iterating over all possible language IDs (*not* indexes)
+#define NS_STID_FOR_ID(varName) \
+ for (varName=NS_STID_FIRST;varName<=NS_STID_LAST;varName++)
+
+// Create a 'for' loop iterating over all indexes (when you don't need to know
+// what language it is)
+#define NS_STID_FOR_INDEX(varName) \
+ for (varName=0;varName<=NS_STID_INDEX(NS_STID_LAST);varName++)
+
+// A helper function for nsIScriptGlobalObject implementations to use
+// when handling a script error. Generally called by the global when a context
+// notifies it of an error via nsIScriptGlobalObject::HandleScriptError.
+// Returns PR_TRUE if HandleDOMEvent was actually called, in which case
+// aStatus will be filled in with the status.
+//PRBool //SWT-20090407
+//NS_HandleScriptError(nsIScriptGlobalObject *aScriptGlobal, //SWT-20090407
+// nsScriptErrorEvent *aErrorEvent, //SWT-20090407
+// nsEventStatus *aStatus); //SWT-20090407
+
+
+#define NS_ISCRIPTGLOBALOBJECT_IID \
+{ /* {6afecd40-0b9a-4cfd-8c42-0f645cd91829} */ \
+ 0x6afecd40, 0x0b9a, 0x4cfd, \
+ { 0x8c, 0x42, 0x0f, 0x64, 0x5c, 0xd9, 0x18, 0x29 } }
+
+/**
++ * The global object which keeps a script context for each supported script
++ * language. This often used to store per-window global state.
+ */
+
+class nsIScriptGlobalObject : public nsISupports
+{
+public:
+//NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISCRIPTGLOBALOBJECT_IID) //SWT-20090407
+
+ /**
+ * Ensure that the script global object is initialized for working with the
+ * specified script language ID. This will set up the nsIScriptContext
+ * and 'script global' for that language, allowing these to be fetched
+ * and manipulated.
+ * @return NS_OK if successful; error conditions include that the language
+ * has not been registered, as well as 'normal' errors, such as
+ * out-of-memory
+ */
+ virtual nsresult EnsureScriptEnvironment(PRUint32 aLangID) = 0;
+ /**
+ * Get a script context (WITHOUT added reference) for the specified language.
+ */
+ virtual nsIScriptContext *GetScriptContext(PRUint32 lang) = 0;
+
+ /**
+ * Get the opaque "global" object for the specified lang.
+ */
+ virtual void *GetScriptGlobal(PRUint32 lang) = 0;
+
+ // Set/GetContext deprecated methods - use GetScriptContext/Global
+ virtual JSObject *GetGlobalJSObject() {
+ return (JSObject *)GetScriptGlobal(nsIProgrammingLanguage::JAVASCRIPT);
+ }
+
+ virtual nsIScriptContext *GetContext() {
+ return GetScriptContext(nsIProgrammingLanguage::JAVASCRIPT);
+ }
+
+ /**
+ * Set a new language context for this global. The native global for the
+ * context is created by the context's GetNativeGlobal() method.
+ */
+
+ virtual nsresult SetScriptContext(PRUint32 lang, nsIScriptContext *aContext) = 0;
+
+ /**
+ * Called when the global script for a language is finalized, typically as
+ * part of its GC process. By the time this call is made, the
+ * nsIScriptContext for the language has probably already been removed.
+ * After this call, the passed object is dead - which should generally be the
+ * same object the global is using for a global for that language.
+ */
+
+ virtual void OnFinalize(PRUint32 aLangID, void *aScriptGlobal) = 0;
+
+ /**
+ * Called to enable/disable scripts.
+ */
+ virtual void SetScriptsEnabled(PRBool aEnabled, PRBool aFireTimeouts) = 0;
+
+ /** Set a new arguments object for this window. This will be set on
+ * the window right away (if there's an existing document) and it
+ * will also be installed on the window when the next document is
+ * loaded. Each language impl is responsible for converting to
+ * an array of args as appropriate for that language.
+ */
+ virtual nsresult SetNewArguments(nsIArray *aArguments) = 0;
+
+ /** Handle a script error. Generally called by a script context.
+ */
+//virtual nsresult HandleScriptError(nsScriptErrorEvent *aErrorEvent, //SWT-20090407
+// nsEventStatus *aEventStatus) { //SWT-20090407
+// return NS_HandleScriptError(this, aErrorEvent, aEventStatus); //SWT-20090407
+//}
+};
+
+//NS_DEFINE_STATIC_IID_ACCESSOR(nsIScriptGlobalObject, //SWT-20090407
+// NS_ISCRIPTGLOBALOBJECT_IID) //SWT-20090407
+
+#endif
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/swt_xpcom.rc b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/swt_xpcom.rc
new file mode 100644
index 0000000000..8293e74f6a
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/swt_xpcom.rc
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "windows.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION SWT_COMMA_VERSION
+ PRODUCTVERSION 0,0,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40000L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "Eclipse Foundation\0"
+ VALUE "FileDescription", "SWT for Windows native library\0"
+ VALUE "FileVersion", SWT_FILE_VERSION
+ VALUE "InternalName", "SWT\0"
+ VALUE "LegalCopyright", "Copyright (c) 2000, 2006 IBM Corp. All Rights Reserved.\0"
+ VALUE "OriginalFilename", SWT_ORG_FILENAME
+ VALUE "ProductName", "Standard Widget Toolkit\0"
+ VALUE "ProductVersion", "0,0,0,0\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp
new file mode 100644
index 0000000000..0b864d2d63
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp
@@ -0,0 +1,6182 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "xpcom_structs.h"
+#include "xpcom_stats.h"
+
+#define XPCOM_NATIVE(func) Java_org_eclipse_swt_internal_mozilla_XPCOM_##func
+
+#if (!defined(NO__1Call__I) && !defined(JNI64)) || (!defined(NO__1Call__J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1Call__I)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1Call__I)(JNIEnv *env, jclass that, jintLong arg0)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1Call__J)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1Call__J)(JNIEnv *env, jclass that, jintLong arg0)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1Call__I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1Call__J_FUNC);
+#endif
+ rc = (jint)((jint (*)())arg0)();
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1Call__I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1Call__J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1Call__IIIIII) && !defined(JNI64)) || (!defined(NO__1Call__JJJJJI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1Call__IIIIII)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jintLong arg3, jintLong arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1Call__IIIIII)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jintLong arg3, jintLong arg4, jint arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1Call__JJJJJI)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jintLong arg3, jintLong arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1Call__JJJJJI)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jintLong arg3, jintLong arg4, jint arg5)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1Call__IIIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1Call__JJJJJI_FUNC);
+#endif
+ rc = (jint)((SWT_XREInitEmbedding)arg0)((nsILocalFile *)arg1, (nsILocalFile *)arg2, (nsIDirectoryServiceProvider *)arg3, (nsStaticModuleInfo const *)arg4, arg5);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1Call__IIIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1Call__JJJJJI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1Call__III_3BII_3I) && !defined(JNI64)) || (!defined(NO__1Call__JJJ_3BII_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1Call__III_3BII_3I)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jbyteArray arg3, jint arg4, jint arg5, jintArray arg6);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1Call__III_3BII_3I)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jbyteArray arg3, jint arg4, jint arg5, jintArray arg6)
+#else
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1Call__JJJ_3BII_3I)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jbyteArray arg3, jint arg4, jint arg5, jintArray arg6);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1Call__JJJ_3BII_3I)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jbyteArray arg3, jint arg4, jint arg5, jintArray arg6)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint *lparg6=NULL;
+ jintLong rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1Call__III_3BII_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1Call__JJJ_3BII_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jintLong)((nsWriteSegmentFun)arg0)((nsIInputStream *)arg1, (void *)arg2, (const char *)lparg3, arg4, arg5, (PRUint32 *)lparg6);
+fail:
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1Call__III_3BII_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1Call__JJJ_3BII_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#ifndef NO__1NS_1GetComponentManager
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1GetComponentManager)(JNIEnv *env, jclass that, jintLongArray arg0);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1GetComponentManager)
+ (JNIEnv *env, jclass that, jintLongArray arg0)
+{
+ jintLong *lparg0=NULL;
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1NS_1GetComponentManager_FUNC);
+ if (arg0) if ((lparg0 = env->GetIntLongArrayElements(arg0, NULL)) == NULL) goto fail;
+ rc = (jint)NS_GetComponentManager((nsIComponentManager**)lparg0);
+fail:
+ if (arg0 && lparg0) env->ReleaseIntLongArrayElements(arg0, lparg0, 0);
+ XPCOM_NATIVE_EXIT(env, that, _1NS_1GetComponentManager_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1NS_1GetServiceManager
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1GetServiceManager)(JNIEnv *env, jclass that, jintLongArray arg0);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1GetServiceManager)
+ (JNIEnv *env, jclass that, jintLongArray arg0)
+{
+ jintLong *lparg0=NULL;
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1NS_1GetServiceManager_FUNC);
+ if (arg0) if ((lparg0 = env->GetIntLongArrayElements(arg0, NULL)) == NULL) goto fail;
+ rc = (jint)NS_GetServiceManager((nsIServiceManager**)lparg0);
+fail:
+ if (arg0 && lparg0) env->ReleaseIntLongArrayElements(arg0, lparg0, 0);
+ XPCOM_NATIVE_EXIT(env, that, _1NS_1GetServiceManager_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1NS_1InitXPCOM2
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1InitXPCOM2)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1InitXPCOM2)
+ (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2)
+{
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1NS_1InitXPCOM2_FUNC);
+ rc = (jint)NS_InitXPCOM2((nsIServiceManager **)arg0, (nsIFile *)arg1, (nsIDirectoryServiceProvider *)arg2);
+ XPCOM_NATIVE_EXIT(env, that, _1NS_1InitXPCOM2_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1NS_1NewLocalFile
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1NewLocalFile)(JNIEnv *env, jclass that, jintLong arg0, jint arg1, jintLongArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1NS_1NewLocalFile)
+ (JNIEnv *env, jclass that, jintLong arg0, jint arg1, jintLongArray arg2)
+{
+ jintLong *lparg2=NULL;
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1NS_1NewLocalFile_FUNC);
+ if (arg2) if ((lparg2 = env->GetIntLongArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)NS_NewLocalFile(*(nsAString *)arg0, arg1, (nsILocalFile**)lparg2);
+fail:
+ if (arg2 && lparg2) env->ReleaseIntLongArrayElements(arg2, lparg2, 0);
+ XPCOM_NATIVE_EXIT(env, that, _1NS_1NewLocalFile_FUNC);
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II)(JNIEnv *env, jclass that, jint arg0, jintLong arg1);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II)(JNIEnv *env, jclass that, jint arg0, jintLong arg1)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong))(*(jintLong **)arg1)[arg0])(arg1);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IID) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJD) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IID)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jdouble arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IID)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jdouble arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJD)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jdouble arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJD)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jdouble arg2)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IID_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJD_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jdouble))(*(jintLong **)arg1)[arg0])(arg1, arg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IID_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJD_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIF) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJF) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIF)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloat arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIF)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloat arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJF)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloat arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJF)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloat arg2)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIF_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJF_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jfloat))(*(jintLong **)arg1)[arg0])(arg1, arg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIF_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJF_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIIII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIIIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIIIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIIIII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIIIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIIIIIIIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIIIIIIIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIIIIIIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIIIIIIIII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jint, jint, jint, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIIIIIIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIIIIIIIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIIIIIIIIIIIISI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIIIIIIIIIIIISI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIIIIIIIIIISI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jint arg13, jint arg14, jshort arg15, jint arg16);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIIIIIIIIIISI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jint arg13, jint arg14, jshort arg15, jint arg16)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIIIIIIIIIISI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jint arg13, jint arg14, jshort arg15, jint arg16);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIIIIIIIIIISI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jint arg13, jint arg14, jshort arg15, jint arg16)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIIIIIIIIIIIISI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIIIIIIIIIIIISI_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jint, jint, jint, jint, jint, jint, jint, jint, jint, jshort, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIIIIIIIIIIIISI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIIIIIIIIIIIISI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIIIIII_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIIIIII_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jintArray arg9);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jintArray arg9)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jintArray arg9);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jintArray arg9)
+#endif
+{
+ jint *lparg9=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIIIIII_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIIIIII_3I_FUNC);
+#endif
+ if (arg9) if ((lparg9 = env->GetIntArrayElements(arg9, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jint, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, lparg9);
+fail:
+ if (arg9 && lparg9) env->ReleaseIntArrayElements(arg9, lparg9, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIIIIII_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIIIIII_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIIIII_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIIIII_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIII_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jcharArray arg8, jintArray arg9, jintArray arg10);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIII_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jcharArray arg8, jintArray arg9, jintArray arg10)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIII_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jcharArray arg8, jintArray arg9, jintArray arg10);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIII_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jcharArray arg8, jintArray arg9, jintArray arg10)
+#endif
+{
+ jchar *lparg8=NULL;
+ jint *lparg9=NULL;
+ jint *lparg10=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIIIII_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIIIII_3C_3I_3I_FUNC);
+#endif
+ if (arg8) if ((lparg8 = env->GetCharArrayElements(arg8, NULL)) == NULL) goto fail;
+ if (arg9) if ((lparg9 = env->GetIntArrayElements(arg9, NULL)) == NULL) goto fail;
+ if (arg10) if ((lparg10 = env->GetIntArrayElements(arg10, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jint, jint, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, lparg8, lparg9, lparg10);
+fail:
+ if (arg10 && lparg10) env->ReleaseIntArrayElements(arg10, lparg10, 0);
+ if (arg9 && lparg9) env->ReleaseIntArrayElements(arg9, lparg9, 0);
+ if (arg8 && lparg8) env->ReleaseCharArrayElements(arg8, lparg8, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIIIII_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIIIII_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIIII_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIIII_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jintArray arg7)
+#endif
+{
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIIII_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIIII_3I_FUNC);
+#endif
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIIII_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIIII_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIIIJII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIIIJII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jlong arg6, jint arg7, jint arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIIIJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jlong arg6, jint arg7, jint arg8)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jlong arg6, jint arg7, jint arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIIIJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jlong arg6, jint arg7, jint arg8)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIIIJII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIIIJII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jlong, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIIIJII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIIIJII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIII_3CIIIII_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIII_3CIIIII_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII_3CIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jintArray arg12, jintArray arg13);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII_3CIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jintArray arg12, jintArray arg13)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII_3CIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jintArray arg12, jintArray arg13);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII_3CIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jintArray arg12, jintArray arg13)
+#endif
+{
+ jchar *lparg6=NULL;
+ jint *lparg12=NULL;
+ jint *lparg13=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIII_3CIIIII_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIII_3CIIIII_3I_3I_FUNC);
+#endif
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg12) if ((lparg12 = env->GetIntArrayElements(arg12, NULL)) == NULL) goto fail;
+ if (arg13) if ((lparg13 = env->GetIntArrayElements(arg13, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jchar *, jint, jint, jint, jint, jint, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, lparg6, arg7, arg8, arg9, arg10, arg11, lparg12, lparg13);
+fail:
+ if (arg13 && lparg13) env->ReleaseIntArrayElements(arg13, lparg13, 0);
+ if (arg12 && lparg12) env->ReleaseIntArrayElements(arg12, lparg12, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIII_3CIIIII_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIII_3CIIIII_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIII_3C_3BIIIII_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIII_3C_3BIIIII_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII_3C_3BIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jbyteArray arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jintArray arg13, jintArray arg14);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII_3C_3BIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jbyteArray arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jintArray arg13, jintArray arg14)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII_3C_3BIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jbyteArray arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jintArray arg13, jintArray arg14);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII_3C_3BIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jbyteArray arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jintArray arg13, jintArray arg14)
+#endif
+{
+ jchar *lparg6=NULL;
+ jbyte *lparg7=NULL;
+ jint *lparg13=NULL;
+ jint *lparg14=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIII_3C_3BIIIII_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIII_3C_3BIIIII_3I_3I_FUNC);
+#endif
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetByteArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg13) if ((lparg13 = env->GetIntArrayElements(arg13, NULL)) == NULL) goto fail;
+ if (arg14) if ((lparg14 = env->GetIntArrayElements(arg14, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jchar *, jbyte *, jint, jint, jint, jint, jint, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, lparg6, lparg7, arg8, arg9, arg10, arg11, arg12, lparg13, lparg14);
+fail:
+ if (arg14 && lparg14) env->ReleaseIntArrayElements(arg14, lparg14, 0);
+ if (arg13 && lparg13) env->ReleaseIntArrayElements(arg13, lparg13, 0);
+ if (arg7 && lparg7) env->ReleaseByteArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIII_3C_3BIIIII_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIII_3C_3BIIIII_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIII_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIII_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jintArray arg7, jintArray arg8)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jcharArray arg6, jintArray arg7, jintArray arg8)
+#endif
+{
+ jchar *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint *lparg8=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIII_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIII_3C_3I_3I_FUNC);
+#endif
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetIntArrayElements(arg8, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, lparg6, lparg7, lparg8);
+fail:
+ if (arg8 && lparg8) env->ReleaseIntArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIII_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIII_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIII_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIII_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jintArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jintArray arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jintArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jint arg5, jintArray arg6, jintArray arg7)
+#endif
+{
+ jint *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIII_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIII_3I_3I_FUNC);
+#endif
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, lparg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIII_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIII_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIII_3B_3BI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIII_3B_3BI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIII_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jbyteArray arg5, jbyteArray arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIII_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jbyteArray arg5, jbyteArray arg6, jint arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIII_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jbyteArray arg5, jbyteArray arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIII_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jbyteArray arg5, jbyteArray arg6, jint arg7)
+#endif
+{
+ jbyte *lparg5=NULL;
+ jbyte *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIII_3B_3BI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIII_3B_3BI_FUNC);
+#endif
+ if (arg5) if ((lparg5 = env->GetByteArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetByteArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jbyte *, jbyte *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5, lparg6, arg7);
+fail:
+ if (arg6 && lparg6) env->ReleaseByteArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseByteArrayElements(arg5, lparg5, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIII_3B_3BI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIII_3B_3BI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIII_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIII_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIII_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jcharArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIII_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jcharArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIII_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jcharArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIII_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jcharArray arg5)
+#endif
+{
+ jchar *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIII_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIII_3C_FUNC);
+#endif
+ if (arg5) if ((lparg5 = env->GetCharArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jchar *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseCharArrayElements(arg5, lparg5, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIII_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIII_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIII_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIII_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jintArray arg5)
+#endif
+{
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIII_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIII_3I_FUNC);
+#endif
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIII_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIII_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIIJJJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIIJJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIIJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIIJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIIJJJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIIJJJJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jlong, jlong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIIJJJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIIJJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4)
+#endif
+{
+ jbyte *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3B_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3BI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3BI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jint arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jint arg5)
+#endif
+{
+ jbyte *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3BI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3BI_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jbyte *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5);
+fail:
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3BI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3BI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3BII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3BII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3BII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jint arg5, jint arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3BII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jint arg5, jint arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3BII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jint arg5, jint arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3BII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jint arg5, jint arg6)
+#endif
+{
+ jbyte *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3BII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3BII_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jbyte *, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, arg6);
+fail:
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3BII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3BII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3B_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3B_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jbyteArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jbyteArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jbyteArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jbyteArray arg5)
+#endif
+{
+ jbyte *lparg4=NULL;
+ jbyte *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3B_3B_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetByteArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jbyte *, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseByteArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3B_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4)
+#endif
+{
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3C_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jchar *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3CIJI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3CIJI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3CIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jint arg5, jlong arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3CIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jint arg5, jlong arg6, jint arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3CIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jint arg5, jlong arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3CIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jint arg5, jlong arg6, jint arg7)
+#endif
+{
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3CIJI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3CIJI_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jchar *, jint, jlong, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, arg6, arg7);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3CIJI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3CIJI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3CJJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3CJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3CJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jlong arg5, jlong arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3CJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jlong arg5, jlong arg6, jlong arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3CJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jlong arg5, jlong arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3CJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jlong arg5, jlong arg6, jlong arg7)
+#endif
+{
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3CJJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3CJJJ_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jchar *, jlong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, arg6, arg7);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3CJJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3CJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3C_3CI_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3C_3CI_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3C_3CI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jcharArray arg5, jint arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3C_3CI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jcharArray arg5, jint arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3C_3CI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jcharArray arg5, jint arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3C_3CI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jcharArray arg5, jint arg6, jintArray arg7)
+#endif
+{
+ jchar *lparg4=NULL;
+ jchar *lparg5=NULL;
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3C_3CI_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3C_3CI_3I_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetCharArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jchar *, jchar *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, lparg5, arg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg5 && lparg5) env->ReleaseCharArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3C_3CI_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3C_3CI_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jintArray arg4)
+#endif
+{
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3I_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIII_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJII_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlongArray arg4)
+#endif
+{
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIII_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJII_3J_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIII_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJII_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jlong arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jlong arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jlong arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jlong arg4)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIJJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIIJJJJJJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJIJJJJJJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIJJJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7, jlong arg8, jlongArray arg9);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIIJJJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7, jlong arg8, jlongArray arg9)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIJJJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7, jlong arg8, jlongArray arg9);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJIJJJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7, jlong arg8, jlongArray arg9)
+#endif
+{
+ jlong *lparg9=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIIJJJJJJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJIJJJJJJ_3J_FUNC);
+#endif
+ if (arg9) if ((lparg9 = env->GetLongArrayElements(arg9, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jlong, jlong, jlong, jlong, jlong, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, lparg9);
+fail:
+ if (arg9 && lparg9) env->ReleaseLongArrayElements(arg9, lparg9, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIIJJJJJJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJIJJJJJJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3)
+#endif
+{
+ nsID _arg3, *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_FUNC);
+#endif
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, nsID *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3);
+fail:
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2II_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2II_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jintArray arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jintArray arg6)
+#endif
+{
+ nsID _arg3, *lparg3=NULL;
+ jint *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2II_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2II_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, nsID *, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5, lparg6);
+fail:
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2II_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2II_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintArray arg4)
+#endif
+{
+ nsID _arg3, *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, nsID *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3B_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3BI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3BI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jint arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jint arg4)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3BI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3BI_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jbyte *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3BI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3BI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3BI_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3BI_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jint arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jint arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jint arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jint arg4, jintArray arg5)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3BI_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3BI_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jbyte *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3BI_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3BI_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3BS) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3BS) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3BS)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jshort arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3BS)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jshort arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3BS)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jshort arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3BS)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jshort arg4)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3BS_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3BS_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jbyte *, jshort))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3BS_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3BS_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3B_3B_3BI_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3B_3B_3BI_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3B_3B_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jbyteArray arg4, jbyteArray arg5, jint arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3B_3B_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jbyteArray arg4, jbyteArray arg5, jint arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3B_3B_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jbyteArray arg4, jbyteArray arg5, jint arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3B_3B_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jbyteArray arg4, jbyteArray arg5, jint arg6, jintArray arg7)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jbyte *lparg4=NULL;
+ jbyte *lparg5=NULL;
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3B_3B_3BI_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3B_3B_3BI_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetByteArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jbyte *, jbyte *, jbyte *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, arg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg5 && lparg5) env->ReleaseByteArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3B_3B_3BI_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3B_3B_3BI_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3B_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3B_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3B_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3B_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jcharArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3B_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3B_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jcharArray arg4)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3B_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3B_3C_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jbyte *, jchar *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3B_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3B_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3B_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3B_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jbyteArray arg3, jintArray arg4)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3B_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3B_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jbyte *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3B_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3B_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3)
+#endif
+{
+ jchar *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3CI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3CI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jint arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jint arg4)
+#endif
+{
+ jchar *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3CI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3CI_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3CI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3CI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3C_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jchar *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3CI_3C_3C_3C_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3CI_3C_3C_3C_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3CI_3C_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jint arg5, jcharArray arg6, jcharArray arg7, jcharArray arg8, jcharArray arg9, jintArray arg10, jintArray arg11);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3CI_3C_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jint arg5, jcharArray arg6, jcharArray arg7, jcharArray arg8, jcharArray arg9, jintArray arg10, jintArray arg11)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3CI_3C_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jint arg5, jcharArray arg6, jcharArray arg7, jcharArray arg8, jcharArray arg9, jintArray arg10, jintArray arg11);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3CI_3C_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jint arg5, jcharArray arg6, jcharArray arg7, jcharArray arg8, jcharArray arg9, jintArray arg10, jintArray arg11)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jchar *lparg6=NULL;
+ jchar *lparg7=NULL;
+ jchar *lparg8=NULL;
+ jchar *lparg9=NULL;
+ jint *lparg10=NULL;
+ jint *lparg11=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetCharArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetCharArrayElements(arg8, NULL)) == NULL) goto fail;
+ if (arg9) if ((lparg9 = env->GetCharArrayElements(arg9, NULL)) == NULL) goto fail;
+ if (arg10) if ((lparg10 = env->GetIntArrayElements(arg10, NULL)) == NULL) goto fail;
+ if (arg11) if ((lparg11 = env->GetIntArrayElements(arg11, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jchar *, jint, jchar *, jchar *, jchar *, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, arg5, lparg6, lparg7, lparg8, lparg9, lparg10, lparg11);
+fail:
+ if (arg11 && lparg11) env->ReleaseIntArrayElements(arg11, lparg11, 0);
+ if (arg10 && lparg10) env->ReleaseIntArrayElements(arg10, lparg10, 0);
+ if (arg9 && lparg9) env->ReleaseCharArrayElements(arg9, lparg9, 0);
+ if (arg8 && lparg8) env->ReleaseCharArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseCharArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3CI_3I_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3CI_3I_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3CI_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jint arg5, jintArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3CI_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jint arg5, jintArray arg6, jintArray arg7, jintArray arg8)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3CI_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jint arg5, jintArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3CI_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jint arg5, jintArray arg6, jintArray arg7, jintArray arg8)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint *lparg8=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3CI_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3CI_3I_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetIntArrayElements(arg8, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jchar *, jint, jint *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, arg5, lparg6, lparg7, lparg8);
+fail:
+ if (arg8 && lparg8) env->ReleaseIntArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3CI_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3CI_3I_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3C_3C_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3C_3C_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jchar *lparg5=NULL;
+ jint *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3C_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3C_3C_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetCharArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jchar *, jchar *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6);
+fail:
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseCharArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3C_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3C_3C_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3C_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3C_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6, jintArray arg7)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jchar *lparg5=NULL;
+ jint *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3C_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3C_3C_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetCharArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jchar *, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseCharArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3C_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3C_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3C_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3C_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3C_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jchar *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3C_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3C_3I_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3C_3I_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3I_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5, jcharArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3I_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5, jcharArray arg6, jintArray arg7, jintArray arg8)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3I_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5, jcharArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3I_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5, jcharArray arg6, jintArray arg7, jintArray arg8)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint *lparg5=NULL;
+ jchar *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint *lparg8=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3C_3I_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3C_3I_3C_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetIntArrayElements(arg8, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jchar *, jint *, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6, lparg7, lparg8);
+fail:
+ if (arg8 && lparg8) env->ReleaseIntArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3C_3I_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3C_3I_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3C_3I_3I_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3I_3I_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5, jintArray arg6, jcharArray arg7, jintArray arg8, jintArray arg9);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3C_3I_3I_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5, jintArray arg6, jcharArray arg7, jintArray arg8, jintArray arg9)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5, jintArray arg6, jcharArray arg7, jintArray arg8, jintArray arg9);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jcharArray arg4, jintArray arg5, jintArray arg6, jcharArray arg7, jintArray arg8, jintArray arg9)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint *lparg6=NULL;
+ jchar *lparg7=NULL;
+ jint *lparg8=NULL;
+ jint *lparg9=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3C_3I_3I_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetCharArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetIntArrayElements(arg8, NULL)) == NULL) goto fail;
+ if (arg9) if ((lparg9 = env->GetIntArrayElements(arg9, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jchar *, jint *, jint *, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6, lparg7, lparg8, lparg9);
+fail:
+ if (arg9 && lparg9) env->ReleaseIntArrayElements(arg9, lparg9, 0);
+ if (arg8 && lparg8) env->ReleaseIntArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseCharArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3C_3I_3I_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3C_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jintArray arg4)
+#endif
+{
+ jchar *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3)
+#endif
+{
+ jint *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__III_3I_3I_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3I_3I_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6)
+#endif
+{
+ jint *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3I_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3I_3I_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint *, jint *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6);
+fail:
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3I_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3I_3I_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJI_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJIIJIIIIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJIIJIIIIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJIIJIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJIIJIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJIIJIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJIIJIIIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJIIJIIIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJIIJIIIIII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint, jint, jlong, jint, jint, jint, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJIIJIIIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJIIJIIIIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJIIJIIIIIIIIISJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJIIJIIIIIIIIISJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJIIJIIIIIIIIISJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jint arg13, jint arg14, jshort arg15, jlong arg16);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJIIJIIIIIIIIISJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jint arg13, jint arg14, jshort arg15, jlong arg16)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJIIJIIIIIIIIISJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jint arg13, jint arg14, jshort arg15, jlong arg16);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJIIJIIIIIIIIISJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12, jint arg13, jint arg14, jshort arg15, jlong arg16)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJIIJIIIIIIIIISJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJIIJIIIIIIIIISJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint, jint, jlong, jint, jint, jint, jint, jint, jint, jint, jint, jint, jshort, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJIIJIIIIIIIIISJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJIIJIIIIIIIIISJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJIIJ_3I_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJIIJ_3I_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJIIJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jintArray arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJIIJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jintArray arg6, jlongArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJIIJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jintArray arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJIIJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jint arg4, jlong arg5, jintArray arg6, jlongArray arg7)
+#endif
+{
+ jint *lparg6=NULL;
+ jlong *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJIIJ_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJIIJ_3I_3J_FUNC);
+#endif
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetLongArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint, jint, jlong, jint *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, lparg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseLongArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJIIJ_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJIIJ_3I_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJI_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJI_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jlongArray arg4)
+#endif
+{
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJI_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJI_3J_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJI_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJI_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJI_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jint arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jint arg5)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJIIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJIIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jint arg5, jint arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jint arg5, jint arg6, jint arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jint arg5, jint arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jint arg5, jint arg6, jint arg7)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJIIII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jint, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJIIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJIJ_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJIJ_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJIJ_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jlong arg5, jcharArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJIJ_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jlong arg5, jcharArray arg6, jintArray arg7, jintArray arg8)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJIJ_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jlong arg5, jcharArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJIJ_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jlong arg5, jcharArray arg6, jintArray arg7, jintArray arg8)
+#endif
+{
+ jchar *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint *lparg8=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJIJ_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJIJ_3C_3I_3I_FUNC);
+#endif
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetIntArrayElements(arg8, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jint, jlong, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, lparg6, lparg7, lparg8);
+fail:
+ if (arg8 && lparg8) env->ReleaseIntArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJIJ_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJIJ_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJI_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJI_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJI_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jcharArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJI_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jcharArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJI_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jcharArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJI_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jcharArray arg5)
+#endif
+{
+ jchar *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJI_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJI_3C_FUNC);
+#endif
+ if (arg5) if ((lparg5 = env->GetCharArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jint, jchar *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseCharArrayElements(arg5, lparg5, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJI_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJI_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJI_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJI_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jint arg4, jintArray arg5)
+#endif
+{
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJI_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJI_3I_FUNC);
+#endif
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJI_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJI_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJI_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJI_3CJJIJI_3J_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJI_3CJJIJI_3J_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJI_3CJJIJI_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5, jcharArray arg6, jlong arg7, jlong arg8, jint arg9, jlong arg10, jint arg11, jlongArray arg12, jlongArray arg13);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJI_3CJJIJI_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5, jcharArray arg6, jlong arg7, jlong arg8, jint arg9, jlong arg10, jint arg11, jlongArray arg12, jlongArray arg13)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJI_3CJJIJI_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5, jcharArray arg6, jlong arg7, jlong arg8, jint arg9, jlong arg10, jint arg11, jlongArray arg12, jlongArray arg13);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJI_3CJJIJI_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5, jcharArray arg6, jlong arg7, jlong arg8, jint arg9, jlong arg10, jint arg11, jlongArray arg12, jlongArray arg13)
+#endif
+{
+ jchar *lparg6=NULL;
+ jlong *lparg12=NULL;
+ jlong *lparg13=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJI_3CJJIJI_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJI_3CJJIJI_3J_3J_FUNC);
+#endif
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg12) if ((lparg12 = env->GetLongArrayElements(arg12, NULL)) == NULL) goto fail;
+ if (arg13) if ((lparg13 = env->GetLongArrayElements(arg13, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jint, jchar *, jlong, jlong, jint, jlong, jint, jlong *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, lparg6, arg7, arg8, arg9, arg10, arg11, lparg12, lparg13);
+fail:
+ if (arg13 && lparg13) env->ReleaseLongArrayElements(arg13, lparg13, 0);
+ if (arg12 && lparg12) env->ReleaseLongArrayElements(arg12, lparg12, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJI_3CJJIJI_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJI_3CJJIJI_3J_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJI_3C_3BJJIJI_3J_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJI_3C_3BJJIJI_3J_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJI_3C_3BJJIJI_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5, jcharArray arg6, jbyteArray arg7, jlong arg8, jlong arg9, jint arg10, jlong arg11, jint arg12, jlongArray arg13, jlongArray arg14);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJI_3C_3BJJIJI_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5, jcharArray arg6, jbyteArray arg7, jlong arg8, jlong arg9, jint arg10, jlong arg11, jint arg12, jlongArray arg13, jlongArray arg14)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJI_3C_3BJJIJI_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5, jcharArray arg6, jbyteArray arg7, jlong arg8, jlong arg9, jint arg10, jlong arg11, jint arg12, jlongArray arg13, jlongArray arg14);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJI_3C_3BJJIJI_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jint arg5, jcharArray arg6, jbyteArray arg7, jlong arg8, jlong arg9, jint arg10, jlong arg11, jint arg12, jlongArray arg13, jlongArray arg14)
+#endif
+{
+ jchar *lparg6=NULL;
+ jbyte *lparg7=NULL;
+ jlong *lparg13=NULL;
+ jlong *lparg14=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJI_3C_3BJJIJI_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJI_3C_3BJJIJI_3J_3J_FUNC);
+#endif
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetByteArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg13) if ((lparg13 = env->GetLongArrayElements(arg13, NULL)) == NULL) goto fail;
+ if (arg14) if ((lparg14 = env->GetLongArrayElements(arg14, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jint, jchar *, jbyte *, jlong, jlong, jint, jlong, jint, jlong *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, lparg6, lparg7, arg8, arg9, arg10, arg11, arg12, lparg13, lparg14);
+fail:
+ if (arg14 && lparg14) env->ReleaseLongArrayElements(arg14, lparg14, 0);
+ if (arg13 && lparg13) env->ReleaseLongArrayElements(arg13, lparg13, 0);
+ if (arg7 && lparg7) env->ReleaseByteArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJI_3C_3BJJIJI_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJI_3C_3BJJIJI_3J_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJJIJ_3C_3I_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJJIJ_3C_3I_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJIJ_3C_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jint arg6, jlong arg7, jcharArray arg8, jintArray arg9, jlongArray arg10);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJIJ_3C_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jint arg6, jlong arg7, jcharArray arg8, jintArray arg9, jlongArray arg10)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJIJ_3C_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jint arg6, jlong arg7, jcharArray arg8, jintArray arg9, jlongArray arg10);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJIJ_3C_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jint arg6, jlong arg7, jcharArray arg8, jintArray arg9, jlongArray arg10)
+#endif
+{
+ jchar *lparg8=NULL;
+ jint *lparg9=NULL;
+ jlong *lparg10=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJJIJ_3C_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJJIJ_3C_3I_3J_FUNC);
+#endif
+ if (arg8) if ((lparg8 = env->GetCharArrayElements(arg8, NULL)) == NULL) goto fail;
+ if (arg9) if ((lparg9 = env->GetIntArrayElements(arg9, NULL)) == NULL) goto fail;
+ if (arg10) if ((lparg10 = env->GetLongArrayElements(arg10, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jlong, jint, jlong, jchar *, jint *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, lparg8, lparg9, lparg10);
+fail:
+ if (arg10 && lparg10) env->ReleaseLongArrayElements(arg10, lparg10, 0);
+ if (arg9 && lparg9) env->ReleaseIntArrayElements(arg9, lparg9, 0);
+ if (arg8 && lparg8) env->ReleaseCharArrayElements(arg8, lparg8, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJJIJ_3C_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJJIJ_3C_3I_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJJJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJJJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJJJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJJJJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jlong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJJJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJJJJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJJJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7, jlong arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7, jlong arg8)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7, jlong arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlong arg7, jlong arg8)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJJJJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJJJJJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jlong, jlong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJJJJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJJJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJJJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJJJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlongArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlong arg5, jlong arg6, jlongArray arg7)
+#endif
+{
+ jlong *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJJJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJJJ_3J_FUNC);
+#endif
+ if (arg7) if ((lparg7 = env->GetLongArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jlong, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5, arg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseLongArrayElements(arg7, lparg7, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJJJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJJJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJ_3B_3BJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJ_3B_3BJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJ_3B_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jbyteArray arg5, jbyteArray arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJ_3B_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jbyteArray arg5, jbyteArray arg6, jlong arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJ_3B_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jbyteArray arg5, jbyteArray arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJ_3B_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jbyteArray arg5, jbyteArray arg6, jlong arg7)
+#endif
+{
+ jbyte *lparg5=NULL;
+ jbyte *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJ_3B_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJ_3B_3BJ_FUNC);
+#endif
+ if (arg5) if ((lparg5 = env->GetByteArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetByteArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jbyte *, jbyte *, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5, lparg6, arg7);
+fail:
+ if (arg6 && lparg6) env->ReleaseByteArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseByteArrayElements(arg5, lparg5, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJ_3B_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJ_3B_3BJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlongArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlong arg4, jlongArray arg5)
+#endif
+{
+ jlong *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJJ_3J_FUNC);
+#endif
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4)
+#endif
+{
+ jbyte *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3B_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3BJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3BJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jlong arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jlong arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jlong arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jlong arg5)
+#endif
+{
+ jbyte *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3BJ_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jbyte *, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5);
+fail:
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3BJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3BJI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3BJI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3BJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jlong arg5, jint arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3BJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jlong arg5, jint arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3BJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jlong arg5, jint arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3BJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jlong arg5, jint arg6)
+#endif
+{
+ jbyte *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3BJI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3BJI_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jbyte *, jlong, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, arg6);
+fail:
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3BJI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3BJI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3B_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3B_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jbyteArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jbyteArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jbyteArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jbyteArray arg4, jbyteArray arg5)
+#endif
+{
+ jbyte *lparg4=NULL;
+ jbyte *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3B_3B_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetByteArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jbyte *, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseByteArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3B_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3CIJI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3CIJI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3CIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jint arg5, jlong arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3CIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jint arg5, jlong arg6, jint arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3CIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jint arg5, jlong arg6, jint arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3CIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jint arg5, jlong arg6, jint arg7)
+#endif
+{
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3CIJI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3CIJI_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jchar *, jint, jlong, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, arg6, arg7);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3CIJI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3CIJI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3CJJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3CJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3CJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jlong arg5, jlong arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3CJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jlong arg5, jlong arg6, jlong arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3CJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jlong arg5, jlong arg6, jlong arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3CJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jlong arg5, jlong arg6, jlong arg7)
+#endif
+{
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3CJJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3CJJJ_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jchar *, jlong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, arg6, arg7);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3CJJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3CJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3C_3CI_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3C_3CI_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3C_3CI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jcharArray arg5, jint arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3C_3CI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jcharArray arg5, jint arg6, jlongArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3C_3CI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jcharArray arg5, jint arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3C_3CI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jcharArray arg4, jcharArray arg5, jint arg6, jlongArray arg7)
+#endif
+{
+ jchar *lparg4=NULL;
+ jchar *lparg5=NULL;
+ jlong *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3C_3CI_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3C_3CI_3J_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetCharArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetLongArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jchar *, jchar *, jint, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, lparg5, arg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseLongArrayElements(arg7, lparg7, 0);
+ if (arg5 && lparg5) env->ReleaseCharArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3C_3CI_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3C_3CI_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jintArray arg4)
+#endif
+{
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3I_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jlongArray arg4)
+#endif
+{
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJJ_3J_FUNC);
+#endif
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3)
+#endif
+{
+ nsID _arg3, *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_FUNC);
+#endif
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, nsID *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3);
+fail:
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlong arg4, jlong arg5, jlongArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlong arg4, jlong arg5, jlongArray arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlong arg4, jlong arg5, jlongArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlong arg4, jlong arg5, jlongArray arg6)
+#endif
+{
+ nsID _arg3, *lparg3=NULL;
+ jlong *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J_FUNC);
+#endif
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetLongArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, nsID *, jlong, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5, lparg6);
+fail:
+ if (arg6 && lparg6) env->ReleaseLongArrayElements(arg6, lparg6, 0);
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlongArray arg4)
+#endif
+{
+ nsID _arg3, *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, nsID *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3B_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3BI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3BI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jint arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jint arg4)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3BI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3BI_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jbyte *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3BI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3BI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3BJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3BJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jlong arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jlong arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jlong arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jlong arg4)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3BJ_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jbyte *, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3BJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3BJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3BJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3BJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jlong arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3BJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jlong arg4, jlongArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3BJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jlong arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3BJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jlong arg4, jlongArray arg5)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jlong *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3BJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3BJ_3J_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jbyte *, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3BJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3BJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3BS) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3BS) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3BS)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jshort arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3BS)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jshort arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3BS)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jshort arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3BS)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jshort arg4)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3BS_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3BS_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jbyte *, jshort))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3BS_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3BS_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3B_3B_3BJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3B_3B_3BJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3B_3B_3BJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jbyteArray arg4, jbyteArray arg5, jlong arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3B_3B_3BJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jbyteArray arg4, jbyteArray arg5, jlong arg6, jlongArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3B_3B_3BJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jbyteArray arg4, jbyteArray arg5, jlong arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3B_3B_3BJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jbyteArray arg4, jbyteArray arg5, jlong arg6, jlongArray arg7)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jbyte *lparg4=NULL;
+ jbyte *lparg5=NULL;
+ jlong *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3B_3B_3BJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3B_3B_3BJ_3J_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetByteArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetLongArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jbyte *, jbyte *, jbyte *, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, arg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseLongArrayElements(arg7, lparg7, 0);
+ if (arg5 && lparg5) env->ReleaseByteArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3B_3B_3BJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3B_3B_3BJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3B_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3B_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3B_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3B_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jcharArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3B_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3B_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jbyteArray arg3, jcharArray arg4)
+#endif
+{
+ jbyte *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3B_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3B_3C_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jbyte *, jchar *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3B_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3B_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3CI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3CI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jint arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jint arg4)
+#endif
+{
+ jchar *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3CI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3CI_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3CI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3CI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3C_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3CI_3C_3C_3C_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3CI_3C_3C_3C_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3CI_3C_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jint arg5, jcharArray arg6, jcharArray arg7, jcharArray arg8, jcharArray arg9, jintArray arg10, jintArray arg11);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3CI_3C_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jint arg5, jcharArray arg6, jcharArray arg7, jcharArray arg8, jcharArray arg9, jintArray arg10, jintArray arg11)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3CI_3C_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jint arg5, jcharArray arg6, jcharArray arg7, jcharArray arg8, jcharArray arg9, jintArray arg10, jintArray arg11);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3CI_3C_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jint arg5, jcharArray arg6, jcharArray arg7, jcharArray arg8, jcharArray arg9, jintArray arg10, jintArray arg11)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jchar *lparg6=NULL;
+ jchar *lparg7=NULL;
+ jchar *lparg8=NULL;
+ jchar *lparg9=NULL;
+ jint *lparg10=NULL;
+ jint *lparg11=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetCharArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetCharArrayElements(arg8, NULL)) == NULL) goto fail;
+ if (arg9) if ((lparg9 = env->GetCharArrayElements(arg9, NULL)) == NULL) goto fail;
+ if (arg10) if ((lparg10 = env->GetIntArrayElements(arg10, NULL)) == NULL) goto fail;
+ if (arg11) if ((lparg11 = env->GetIntArrayElements(arg11, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *, jint, jchar *, jchar *, jchar *, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, arg5, lparg6, lparg7, lparg8, lparg9, lparg10, lparg11);
+fail:
+ if (arg11 && lparg11) env->ReleaseIntArrayElements(arg11, lparg11, 0);
+ if (arg10 && lparg10) env->ReleaseIntArrayElements(arg10, lparg10, 0);
+ if (arg9 && lparg9) env->ReleaseCharArrayElements(arg9, lparg9, 0);
+ if (arg8 && lparg8) env->ReleaseCharArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseCharArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3CI_3J_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3CI_3J_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3CI_3J_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jint arg5, jlongArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3CI_3J_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jint arg5, jlongArray arg6, jintArray arg7, jintArray arg8)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3CI_3J_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jint arg5, jlongArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3CI_3J_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jint arg5, jlongArray arg6, jintArray arg7, jintArray arg8)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jlong *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint *lparg8=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3CI_3J_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3CI_3J_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetLongArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetIntArrayElements(arg8, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *, jint, jlong *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, arg5, lparg6, lparg7, lparg8);
+fail:
+ if (arg8 && lparg8) env->ReleaseIntArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseLongArrayElements(arg6, lparg6, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3CI_3J_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3CI_3J_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3C_3C_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3C_3C_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jchar *lparg5=NULL;
+ jint *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3C_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3C_3C_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetCharArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *, jchar *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6);
+fail:
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseCharArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3C_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3C_3C_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3C_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3C_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jcharArray arg5, jintArray arg6, jintArray arg7)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jchar *lparg5=NULL;
+ jint *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3C_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3C_3C_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetCharArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseCharArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3C_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3C_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3C_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3C_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jintArray arg5)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3C_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3C_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3C_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3C_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3C_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jlong *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3C_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3C_3J_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3C_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3C_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3C_3J_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3C_3J_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3J_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5, jcharArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3J_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5, jcharArray arg6, jintArray arg7, jintArray arg8)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3J_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5, jcharArray arg6, jintArray arg7, jintArray arg8);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3J_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5, jcharArray arg6, jintArray arg7, jintArray arg8)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jlong *lparg5=NULL;
+ jchar *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint *lparg8=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3C_3J_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3C_3J_3C_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetCharArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetIntArrayElements(arg8, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *, jlong *, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6, lparg7, lparg8);
+fail:
+ if (arg8 && lparg8) env->ReleaseIntArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseCharArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3C_3J_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3C_3J_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3C_3J_3J_3C_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3J_3J_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5, jlongArray arg6, jcharArray arg7, jintArray arg8, jintArray arg9);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3C_3J_3J_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5, jlongArray arg6, jcharArray arg7, jintArray arg8, jintArray arg9)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5, jlongArray arg6, jcharArray arg7, jintArray arg8, jintArray arg9);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jcharArray arg4, jlongArray arg5, jlongArray arg6, jcharArray arg7, jintArray arg8, jintArray arg9)
+#endif
+{
+ jchar *lparg3=NULL;
+ jchar *lparg4=NULL;
+ jlong *lparg5=NULL;
+ jlong *lparg6=NULL;
+ jchar *lparg7=NULL;
+ jint *lparg8=NULL;
+ jint *lparg9=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3C_3J_3J_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetCharArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetLongArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetCharArrayElements(arg7, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = env->GetIntArrayElements(arg8, NULL)) == NULL) goto fail;
+ if (arg9) if ((lparg9 = env->GetIntArrayElements(arg9, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jchar *, jlong *, jlong *, jchar *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6, lparg7, lparg8, lparg9);
+fail:
+ if (arg9 && lparg9) env->ReleaseIntArrayElements(arg9, lparg9, 0);
+ if (arg8 && lparg8) env->ReleaseIntArrayElements(arg8, lparg8, 0);
+ if (arg7 && lparg7) env->ReleaseCharArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseLongArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseCharArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3C_3J_3J_3C_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3C_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jlongArray arg4)
+#endif
+{
+ jchar *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3J_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jintArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jintArray arg3)
+#endif
+{
+ jint *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3I_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IIJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlongArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlongArray arg3)
+#endif
+{
+ jlong *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3J_FUNC);
+#endif
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3);
+fail:
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jobject arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jobject arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jobject arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jobject arg4, jintArray arg5)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ nsID _arg4, *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = getnsIDFields(env, arg4, &_arg4)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jint, nsID *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) setnsIDFields(env, arg4, lparg4);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jlong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3);
+fail:
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3, jobject arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3, jobject arg4, jlongArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3, jobject arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3, jobject arg4, jlongArray arg5)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ nsID _arg4, *lparg4=NULL;
+ jlong *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = getnsIDFields(env, arg4, &_arg4)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jlong, nsID *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) setnsIDFields(env, arg4, lparg4);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jintArray arg4)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ nsID _arg3, *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, nsID *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jlongArray arg4)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ nsID _arg3, *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, nsID *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jint arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jint arg5)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jbyte *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jbyte *, jbyte *, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, arg5);
+fail:
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jbyteArray arg6, jbyteArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jbyteArray arg6, jbyteArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jbyteArray arg6, jbyteArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jbyteArray arg6, jbyteArray arg7)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jbyte *lparg4=NULL;
+ jbyte *lparg6=NULL;
+ jbyte *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetByteArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetByteArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jbyte *, jbyte *, jint, jbyte *, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, arg5, lparg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseByteArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseByteArrayElements(arg6, lparg6, 0);
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jlong arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jlong arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jlong arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jlong arg5)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jbyte *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jbyte *, jbyte *, jlong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, arg5);
+fail:
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jlong arg5, jbyteArray arg6, jbyteArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jlong arg5, jbyteArray arg6, jbyteArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jlong arg5, jbyteArray arg6, jbyteArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jbyteArray arg3, jbyteArray arg4, jlong arg5, jbyteArray arg6, jbyteArray arg7)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jbyte *lparg4=NULL;
+ jbyte *lparg6=NULL;
+ jbyte *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetByteArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetByteArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jbyte *, jbyte *, jlong, jbyte *, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, arg5, lparg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseByteArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseByteArrayElements(arg6, lparg6, 0);
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintArray arg3)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ jint *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlongArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlongArray arg3)
+#endif
+{
+ nsID _arg2, *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = getnsIDFields(env, arg2, &_arg2)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, nsID *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) setnsIDFields(env, arg2, lparg2);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IISIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJSIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IISIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshort arg2, jint arg3, jint arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IISIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshort arg2, jint arg3, jint arg4, jint arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJSIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshort arg2, jint arg3, jint arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJSIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshort arg2, jint arg3, jint arg4, jint arg5)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IISIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJSIII_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jshort, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IISIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJSIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__IISJIJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJSJIJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IISJIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshort arg2, jlong arg3, jint arg4, jlong arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IISJIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshort arg2, jlong arg3, jint arg4, jlong arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJSJIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshort arg2, jlong arg3, jint arg4, jlong arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJSJIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshort arg2, jlong arg3, jint arg4, jlong arg5)
+#endif
+{
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IISJIJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJSJIJ_FUNC);
+#endif
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jshort, jlong, jint, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, arg5);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IISJIJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJSJIJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, lparg2);
+fail:
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BI_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3);
+fail:
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BII_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BII_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jint arg4, jintArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jint arg4, jintArray arg5, jintArray arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jint arg4, jintArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BII_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jint arg4, jintArray arg5, jintArray arg6)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint *lparg5=NULL;
+ jint *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BII_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BII_3I_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint, jint, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, lparg5, lparg6);
+fail:
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BII_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BII_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BIJ_3J_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BIJ_3J_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BIJ_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jlong arg4, jlongArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BIJ_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jlong arg4, jlongArray arg5, jintArray arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BIJ_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jlong arg4, jlongArray arg5, jintArray arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BIJ_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jlong arg4, jlongArray arg5, jintArray arg6)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jlong *lparg5=NULL;
+ jint *lparg6=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BIJ_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BIJ_3J_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint, jlong, jlong *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, lparg5, lparg6);
+fail:
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BIJ_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BIJ_3J_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jobject arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jobject arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jobject arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jobject arg4, jintArray arg5)
+#endif
+{
+ jbyte *lparg2=NULL;
+ nsID _arg4, *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = getnsIDFields(env, arg4, &_arg4)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint, nsID *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) setnsIDFields(env, arg4, lparg4);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BI_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BI_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BI_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BI_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BI_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BI_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BI_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BI_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintArray arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintArray arg4, jintArray arg5)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BI_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BI_3I_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BI_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BI_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BI_3J_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BI_3J_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BI_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jlongArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BI_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jlongArray arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BI_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jlongArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BI_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jint arg3, jlongArray arg4, jintArray arg5)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jlong *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BI_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BI_3J_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint, jlong *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BI_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BI_3J_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BJ_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jlong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3);
+fail:
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3, jobject arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3, jobject arg4, jlongArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3, jobject arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3, jobject arg4, jlongArray arg5)
+#endif
+{
+ jbyte *lparg2=NULL;
+ nsID _arg4, *lparg4=NULL;
+ jlong *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = getnsIDFields(env, arg4, &_arg4)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jlong, nsID *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) setnsIDFields(env, arg4, lparg4);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BJ_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BJ_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlong arg3, jintArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BJ_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BJ_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jlong, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BJ_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BJ_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jint arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jint arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ nsID _arg3, *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, nsID *, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jlong arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jlong arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jlong arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jlong arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ nsID _arg3, *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, nsID *, jlong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jintArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ nsID _arg3, *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, nsID *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jobject arg3, jlongArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ nsID _arg3, *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = getnsIDFields(env, arg3, &_arg3)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, nsID *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) setnsIDFields(env, arg3, lparg3);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3B) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3B) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3B_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jbyte *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3B_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3B_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3BI) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3BI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jint arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jint arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3BI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jint arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3BI_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3BI_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jbyte *, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, arg4);
+fail:
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3BI_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3BI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3B_3BII_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3B_3BII_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B_3BII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jint arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B_3BII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jint arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B_3BII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jint arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B_3BII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jint arg6, jintArray arg7)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jbyte *lparg4=NULL;
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3B_3BII_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3B_3BII_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jbyte *, jbyte *, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, arg5, arg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3B_3BII_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3B_3BII_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3B_3BII_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3B_3BII_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B_3BII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jint arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B_3BII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jint arg6, jlongArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B_3BII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jint arg6, jlongArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B_3BII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jbyteArray arg4, jint arg5, jint arg6, jlongArray arg7)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jbyte *lparg4=NULL;
+ jlong *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3B_3BII_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3B_3BII_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetByteArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetLongArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jbyte *, jbyte *, jint, jint, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, arg5, arg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseLongArrayElements(arg7, lparg7, 0);
+ if (arg4 && lparg4) env->ReleaseByteArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3B_3BII_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3B_3BII_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3B_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3B_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jintArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3B_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3B_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jbyte *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3B_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3B_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3B_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3B_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3B_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3B_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jbyteArray arg3, jlongArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jbyte *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3B_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3B_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetByteArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jbyte *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseByteArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3B_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3B_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3, jintArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3I_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3I_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3I_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jintArray arg3, jlongArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jint *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3I_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jint *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3I_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlongArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlongArray arg3)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3B_3J_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3B_3J_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlongArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3B_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlongArray arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlongArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3B_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jbyteArray arg2, jlongArray arg3, jintArray arg4)
+#endif
+{
+ jbyte *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3B_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3B_3J_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetByteArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jbyte *, jlong *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseByteArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3B_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3B_3J_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2)
+#endif
+{
+ jchar *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3C_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetCharArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *))(*(jintLong **)arg1)[arg0])(arg1, lparg2);
+fail:
+ if (arg2 && lparg2) env->ReleaseCharArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3CIIII) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3CIIII) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3CIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jint arg4, jint arg5, jint arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3CIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jint arg4, jint arg5, jint arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3CIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jint arg4, jint arg5, jint arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3CIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jint arg4, jint arg5, jint arg6)
+#endif
+{
+ jchar *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3CIIII_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3CIIII_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetCharArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jint, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, arg6);
+fail:
+ if (arg2 && lparg2) env->ReleaseCharArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3CIIII_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3CIIII_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3CIJJJ) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3CIJJJ) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3CIJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jlong arg4, jlong arg5, jlong arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3CIJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jlong arg4, jlong arg5, jlong arg6)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3CIJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jlong arg4, jlong arg5, jlong arg6);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3CIJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jlong arg4, jlong arg5, jlong arg6)
+#endif
+{
+ jchar *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3CIJJJ_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3CIJJJ_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetCharArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jint, jlong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, arg6);
+fail:
+ if (arg2 && lparg2) env->ReleaseCharArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3CIJJJ_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3CIJJJ_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3CI_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3CI_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3CI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3CI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3CI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3CI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jintArray arg4)
+#endif
+{
+ jchar *lparg2=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3CI_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3CI_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetCharArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg2 && lparg2) env->ReleaseCharArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3CI_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3CI_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3CJ_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3CJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3CJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3CJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3CJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3CJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3, jlongArray arg4)
+#endif
+{
+ jchar *lparg2=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3CJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3CJ_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetCharArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg2 && lparg2) env->ReleaseCharArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3CJ_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3CJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3C_3C) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3C_3C) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jcharArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jcharArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jcharArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3C_3C)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jcharArray arg3)
+#endif
+{
+ jchar *lparg2=NULL;
+ jchar *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3C_3C_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3C_3C_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetCharArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jchar *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseCharArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3C_3C_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3C_3C_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3F) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3F) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3F)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloatArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3F)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloatArray arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3F)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloatArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3F)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloatArray arg2)
+#endif
+{
+ jfloat *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3F_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3F_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetFloatArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jfloat *))(*(jintLong **)arg1)[arg0])(arg1, lparg2);
+fail:
+ if (arg2 && lparg2) env->ReleaseFloatArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3F_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3F_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2)
+#endif
+{
+ jint *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetIntArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2);
+fail:
+ if (arg2 && lparg2) env->ReleaseIntArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3)
+#endif
+{
+ jint *lparg2=NULL;
+ jint *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3I_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetIntArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseIntArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3I_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3I_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4)
+#endif
+{
+ jint *lparg2=NULL;
+ jint *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3I_3I_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetIntArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseIntArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3I_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3I_3I_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3I_3I_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4, jintArray arg5)
+#endif
+{
+ jint *lparg2=NULL;
+ jint *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3I_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3I_3I_3I_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetIntArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint *, jint *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseIntArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3I_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3I_3I_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3I_3I_3I_3I_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3I_3I_3I_3I_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3I_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3I_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3I_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3I_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6, jintArray arg7)
+#endif
+{
+ jint *lparg2=NULL;
+ jint *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3I_3I_3I_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3I_3I_3I_3I_3I_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetIntArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetIntArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetIntArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint *, jint *, jint *, jint *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, lparg5, lparg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseIntArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseIntArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseIntArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3I_3I_3I_3I_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3I_3I_3I_3I_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3I_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3I_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3)
+#endif
+{
+ jint *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3I_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetIntArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseIntArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3I_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3I_3J_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3I_3J_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3, jintArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3, jintArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3, jintArray arg4)
+#endif
+{
+ jint *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jint *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3I_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3I_3J_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetIntArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint *, jlong *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseIntArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3I_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3I_3J_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3I_3J_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3I_3J_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3I_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3I_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintArray arg2, jlongArray arg3, jlongArray arg4)
+#endif
+{
+ jint *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3I_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3I_3J_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetIntArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint *, jlong *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseIntArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3I_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3I_3J_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2)
+#endif
+{
+ jlong *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetLongArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2);
+fail:
+ if (arg2 && lparg2) env->ReleaseLongArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3J_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3J_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3)
+#endif
+{
+ jlong *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3J_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetLongArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3);
+fail:
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseLongArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3J_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3J_3J_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3J_3J_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3J_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3J_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3, jlongArray arg4)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3J_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3, jlongArray arg4);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3J_3J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3, jlongArray arg4)
+#endif
+{
+ jlong *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3J_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3J_3J_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetLongArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong *, jlong *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4);
+fail:
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseLongArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3J_3J_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3J_3J_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3J_3J_3J_3J_3J_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3J_3J_3J_3J_3J_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3J_3J_3J_3J_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3, jlongArray arg4, jlongArray arg5, jlongArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3J_3J_3J_3J_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3, jlongArray arg4, jlongArray arg5, jlongArray arg6, jintArray arg7)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3J_3J_3J_3J_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3, jlongArray arg4, jlongArray arg5, jlongArray arg6, jintArray arg7);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3J_3J_3J_3J_3J_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlongArray arg2, jlongArray arg3, jlongArray arg4, jlongArray arg5, jlongArray arg6, jintArray arg7)
+#endif
+{
+ jlong *lparg2=NULL;
+ jlong *lparg3=NULL;
+ jlong *lparg4=NULL;
+ jlong *lparg5=NULL;
+ jlong *lparg6=NULL;
+ jint *lparg7=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3J_3J_3J_3J_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3J_3J_3J_3J_3J_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetLongArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetLongArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = env->GetLongArrayElements(arg6, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntArrayElements(arg7, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong *, jlong *, jlong *, jlong *, jlong *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4, lparg5, lparg6, lparg7);
+fail:
+ if (arg7 && lparg7) env->ReleaseIntArrayElements(arg7, lparg7, 0);
+ if (arg6 && lparg6) env->ReleaseLongArrayElements(arg6, lparg6, 0);
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0);
+ if (arg3 && lparg3) env->ReleaseLongArrayElements(arg3, lparg3, 0);
+ if (arg2 && lparg2) env->ReleaseLongArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3J_3J_3J_3J_3J_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3J_3J_3J_3J_3J_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3S) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3S) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3S)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3S)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3S)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3S)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2)
+#endif
+{
+ jshort *lparg2=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3S_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3S_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetShortArrayElements(arg2, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jshort *))(*(jintLong **)arg1)[arg0])(arg1, lparg2);
+fail:
+ if (arg2 && lparg2) env->ReleaseShortArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3S_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3S_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3SI_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3SI_3I_3I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3SI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jint arg3, jintArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3SI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jint arg3, jintArray arg4, jintArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3SI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jint arg3, jintArray arg4, jintArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3SI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jint arg3, jintArray arg4, jintArray arg5)
+#endif
+{
+ jshort *lparg2=NULL;
+ jint *lparg4=NULL;
+ jint *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3SI_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3SI_3I_3I_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetShortArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jshort *, jint, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg2 && lparg2) env->ReleaseShortArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3SI_3I_3I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3SI_3I_3I_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1VtblCall__II_3SJ_3I_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3SJ_3I_3J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3SJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jlong arg3, jintArray arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3SJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jlong arg3, jintArray arg4, jlongArray arg5)
+#else
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3SJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jlong arg3, jintArray arg4, jlongArray arg5);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3SJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jlong arg3, jintArray arg4, jlongArray arg5)
+#endif
+{
+ jshort *lparg2=NULL;
+ jint *lparg4=NULL;
+ jlong *lparg5=NULL;
+ jint rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3SJ_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3SJ_3I_3J_FUNC);
+#endif
+ if (arg2) if ((lparg2 = env->GetShortArrayElements(arg2, NULL)) == NULL) goto fail;
+ if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail;
+ rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jshort *, jlong, jint *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5);
+fail:
+ if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0);
+ if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0);
+ if (arg2 && lparg2) env->ReleaseShortArrayElements(arg2, lparg2, 0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3SJ_3I_3J_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3SJ_3I_3J_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#ifndef NO__1XPCOMGlueLoadXULFunctions
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1XPCOMGlueLoadXULFunctions)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1XPCOMGlueLoadXULFunctions)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1XPCOMGlueLoadXULFunctions_FUNC);
+ rc = (jint)XPCOMGlueLoadXULFunctions((const nsDynamicFunctionLoad *)arg0);
+ XPCOM_NATIVE_EXIT(env, that, _1XPCOMGlueLoadXULFunctions_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1XPCOMGlueShutdown
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1XPCOMGlueShutdown)(JNIEnv *env, jclass that);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1XPCOMGlueShutdown)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1XPCOMGlueShutdown_FUNC);
+ rc = (jint)XPCOMGlueShutdown();
+ XPCOM_NATIVE_EXIT(env, that, _1XPCOMGlueShutdown_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1XPCOMGlueStartup
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1XPCOMGlueStartup)(JNIEnv *env, jclass that, jbyteArray arg0);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1XPCOMGlueStartup)
+ (JNIEnv *env, jclass that, jbyteArray arg0)
+{
+ jbyte *lparg0=NULL;
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1XPCOMGlueStartup_FUNC);
+ if (arg0) if ((lparg0 = env->GetByteArrayElements(arg0, NULL)) == NULL) goto fail;
+ rc = (jint)XPCOMGlueStartup((const char *)lparg0);
+fail:
+ if (arg0 && lparg0) env->ReleaseByteArrayElements(arg0, lparg0, 0);
+ XPCOM_NATIVE_EXIT(env, that, _1XPCOMGlueStartup_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsEmbedCString_1Length
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1nsEmbedCString_1Length)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1nsEmbedCString_1Length)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedCString_1Length_FUNC);
+ rc = (jint)((nsEmbedCString *)arg0)->Length();
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedCString_1Length_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsEmbedCString_1delete
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(_1nsEmbedCString_1delete)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT void JNICALL XPCOM_NATIVE(_1nsEmbedCString_1delete)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedCString_1delete_FUNC);
+ delete (nsEmbedCString *)arg0;
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedCString_1delete_FUNC);
+}
+#endif
+
+#ifndef NO__1nsEmbedCString_1get
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1get)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1get)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedCString_1get_FUNC);
+ rc = (jintLong)((nsEmbedCString *)arg0)->get();
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedCString_1get_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsEmbedCString_1new__
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1new__)(JNIEnv *env, jclass that);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1new__)
+ (JNIEnv *env, jclass that)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedCString_1new___FUNC);
+ rc = (jintLong)new nsEmbedCString();
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedCString_1new___FUNC);
+ return rc;
+}
+#endif
+
+#if (!defined(NO__1nsEmbedCString_1new__II) && !defined(JNI64)) || (!defined(NO__1nsEmbedCString_1new__JI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1new__II)(JNIEnv *env, jclass that, jintLong arg0, jint arg1);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1new__II)(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+#else
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1new__JI)(JNIEnv *env, jclass that, jintLong arg0, jint arg1);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1new__JI)(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+#endif
+{
+ jintLong rc = 0;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedCString_1new__II_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedCString_1new__JI_FUNC);
+#endif
+ rc = (jintLong)new nsEmbedCString((const char *)arg0, arg1);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedCString_1new__II_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedCString_1new__JI_FUNC);
+#endif
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsEmbedCString_1new___3BI
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1new___3BI)(JNIEnv *env, jclass that, jbyteArray arg0, jint arg1);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedCString_1new___3BI)
+ (JNIEnv *env, jclass that, jbyteArray arg0, jint arg1)
+{
+ jbyte *lparg0=NULL;
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedCString_1new___3BI_FUNC);
+ if (arg0) if ((lparg0 = env->GetByteArrayElements(arg0, NULL)) == NULL) goto fail;
+ rc = (jintLong)new nsEmbedCString((const char *)lparg0, arg1);
+fail:
+ if (arg0 && lparg0) env->ReleaseByteArrayElements(arg0, lparg0, 0);
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedCString_1new___3BI_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsEmbedString_1Length
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1nsEmbedString_1Length)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1nsEmbedString_1Length)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedString_1Length_FUNC);
+ rc = (jint)((nsEmbedString *)arg0)->Length();
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedString_1Length_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsEmbedString_1delete
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(_1nsEmbedString_1delete)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT void JNICALL XPCOM_NATIVE(_1nsEmbedString_1delete)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedString_1delete_FUNC);
+ delete (nsEmbedString *)arg0;
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedString_1delete_FUNC);
+}
+#endif
+
+#ifndef NO__1nsEmbedString_1get
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedString_1get)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedString_1get)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedString_1get_FUNC);
+ rc = (jintLong)((nsEmbedString *)arg0)->get();
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedString_1get_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsEmbedString_1new__
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedString_1new__)(JNIEnv *env, jclass that);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedString_1new__)
+ (JNIEnv *env, jclass that)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedString_1new___FUNC);
+ rc = (jintLong)new nsEmbedString();
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedString_1new___FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsEmbedString_1new___3C
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedString_1new___3C)(JNIEnv *env, jclass that, jcharArray arg0);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsEmbedString_1new___3C)
+ (JNIEnv *env, jclass that, jcharArray arg0)
+{
+ jchar *lparg0=NULL;
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsEmbedString_1new___3C_FUNC);
+ if (arg0) if ((lparg0 = env->GetCharArrayElements(arg0, NULL)) == NULL) goto fail;
+ rc = (jintLong)new nsEmbedString((PRUnichar *)lparg0);
+fail:
+ if (arg0 && lparg0) env->ReleaseCharArrayElements(arg0, lparg0, 0);
+ XPCOM_NATIVE_EXIT(env, that, _1nsEmbedString_1new___3C_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsID_1Equals
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1nsID_1Equals)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1nsID_1Equals)
+ (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
+{
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsID_1Equals_FUNC);
+ rc = (jint)((nsID *)arg0)->Equals(*(nsID *)arg1);
+ XPCOM_NATIVE_EXIT(env, that, _1nsID_1Equals_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsID_1delete
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(_1nsID_1delete)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT void JNICALL XPCOM_NATIVE(_1nsID_1delete)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ XPCOM_NATIVE_ENTER(env, that, _1nsID_1delete_FUNC);
+ delete (nsID *)arg0;
+ XPCOM_NATIVE_EXIT(env, that, _1nsID_1delete_FUNC);
+}
+#endif
+
+#ifndef NO__1nsID_1new
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsID_1new)(JNIEnv *env, jclass that);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsID_1new)
+ (JNIEnv *env, jclass that)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsID_1new_FUNC);
+ rc = (jintLong)new nsID();
+ XPCOM_NATIVE_EXIT(env, that, _1nsID_1new_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsIMemory_1Alloc
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIMemory_1Alloc)(JNIEnv *env, jclass that, jintLong arg0, jint arg1);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIMemory_1Alloc)
+ (JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsIMemory_1Alloc_FUNC);
+ rc = (jintLong)((nsIMemory *)arg0)->Alloc((size_t)arg1);
+ XPCOM_NATIVE_EXIT(env, that, _1nsIMemory_1Alloc_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsIMemory_1Realloc
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIMemory_1Realloc)(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jint arg2);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIMemory_1Realloc)
+ (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jint arg2)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsIMemory_1Realloc_FUNC);
+ rc = (jintLong)((nsIMemory *)arg0)->Realloc((void *)arg1, (size_t)arg2);
+ XPCOM_NATIVE_EXIT(env, that, _1nsIMemory_1Realloc_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsIScriptContext_1GetNativeContext
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIScriptContext_1GetNativeContext)(JNIEnv *env, jclass that, jintLong arg0);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIScriptContext_1GetNativeContext)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsIScriptContext_1GetNativeContext_FUNC);
+ rc = (jintLong)((nsIScriptContext *)arg0)->GetNativeContext();
+ XPCOM_NATIVE_EXIT(env, that, _1nsIScriptContext_1GetNativeContext_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsIScriptGlobalObject_1EnsureScriptEnvironment
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1nsIScriptGlobalObject_1EnsureScriptEnvironment)(JNIEnv *env, jclass that, jintLong arg0, jint arg1);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1nsIScriptGlobalObject_1EnsureScriptEnvironment)
+ (JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+{
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsIScriptGlobalObject_1EnsureScriptEnvironment_FUNC);
+ rc = (jint)((nsIScriptGlobalObject *)arg0)->EnsureScriptEnvironment(arg1);
+ XPCOM_NATIVE_EXIT(env, that, _1nsIScriptGlobalObject_1EnsureScriptEnvironment_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsIScriptGlobalObject_1GetScriptContext
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIScriptGlobalObject_1GetScriptContext)(JNIEnv *env, jclass that, jintLong arg0, jint arg1);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIScriptGlobalObject_1GetScriptContext)
+ (JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsIScriptGlobalObject_1GetScriptContext_FUNC);
+ rc = (jintLong)((nsIScriptGlobalObject *)arg0)->GetScriptContext(arg1);
+ XPCOM_NATIVE_EXIT(env, that, _1nsIScriptGlobalObject_1GetScriptContext_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1nsIScriptGlobalObject_1GetScriptGlobal
+extern "C" JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIScriptGlobalObject_1GetScriptGlobal)(JNIEnv *env, jclass that, jintLong arg0, jint arg1);
+JNIEXPORT jintLong JNICALL XPCOM_NATIVE(_1nsIScriptGlobalObject_1GetScriptGlobal)
+ (JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+{
+ jintLong rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1nsIScriptGlobalObject_1GetScriptGlobal_FUNC);
+ rc = (jintLong)((nsIScriptGlobalObject *)arg0)->GetScriptGlobal(arg1);
+ XPCOM_NATIVE_EXIT(env, that, _1nsIScriptGlobalObject_1GetScriptGlobal_FUNC);
+ return rc;
+}
+#endif
+
+#if (!defined(NO_memmove__ILorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2I) && !defined(JNI64)) || (!defined(NO_memmove__JLorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2J) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__ILorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2I)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1, jintLong arg2);
+JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__ILorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2I)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1, jintLong arg2)
+#else
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__JLorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2J)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1, jintLong arg2);
+JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__JLorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2J)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1, jintLong arg2)
+#endif
+{
+ nsDynamicFunctionLoad _arg1, *lparg1=NULL;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, memmove__ILorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, memmove__JLorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2J_FUNC);
+#endif
+ if (arg1) if ((lparg1 = getnsDynamicFunctionLoadFields(env, arg1, &_arg1)) == NULL) goto fail;
+ memmove((void *)arg0, (const void *)lparg1, (size_t)arg2);
+fail:
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, memmove__ILorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, memmove__JLorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2J_FUNC);
+#endif
+}
+#endif
+
+#if (!defined(NO_memmove__ILorg_eclipse_swt_internal_mozilla_nsID_2I) && !defined(JNI64)) || (!defined(NO_memmove__JLorg_eclipse_swt_internal_mozilla_nsID_2I) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__ILorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1, jint arg2);
+JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__ILorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1, jint arg2)
+#else
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__JLorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1, jint arg2);
+JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__JLorg_eclipse_swt_internal_mozilla_nsID_2I)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1, jint arg2)
+#endif
+{
+ nsID _arg1, *lparg1=NULL;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, memmove__ILorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, memmove__JLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#endif
+ if (arg1) if ((lparg1 = getnsIDFields(env, arg1, &_arg1)) == NULL) goto fail;
+ memmove((void *)arg0, (const void *)lparg1, (size_t)arg2);
+fail:
+ if (arg1 && lparg1) setnsIDFields(env, arg1, lparg1);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, memmove__ILorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, memmove__JLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC);
+#endif
+}
+#endif
+
+#if (!defined(NO_memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2II) && !defined(JNI64)) || (!defined(NO_memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2JI) && defined(JNI64))
+#ifndef JNI64
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2II)(JNIEnv *env, jclass that, jobject arg0, jintLong arg1, jint arg2);
+JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2II)(JNIEnv *env, jclass that, jobject arg0, jintLong arg1, jint arg2)
+#else
+extern "C" JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2JI)(JNIEnv *env, jclass that, jobject arg0, jintLong arg1, jint arg2);
+JNIEXPORT void JNICALL XPCOM_NATIVE(memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2JI)(JNIEnv *env, jclass that, jobject arg0, jintLong arg1, jint arg2)
+#endif
+{
+ nsID _arg0, *lparg0=NULL;
+#ifndef JNI64
+ XPCOM_NATIVE_ENTER(env, that, memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2II_FUNC);
+#else
+ XPCOM_NATIVE_ENTER(env, that, memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2JI_FUNC);
+#endif
+ if (arg0) if ((lparg0 = getnsIDFields(env, arg0, &_arg0)) == NULL) goto fail;
+ memmove((void *)lparg0, (const void *)arg1, (size_t)arg2);
+fail:
+ if (arg0 && lparg0) setnsIDFields(env, arg0, lparg0);
+#ifndef JNI64
+ XPCOM_NATIVE_EXIT(env, that, memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2II_FUNC);
+#else
+ XPCOM_NATIVE_EXIT(env, that, memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2JI_FUNC);
+#endif
+}
+#endif
+
+#ifndef NO_nsDynamicFunctionLoad_1sizeof
+extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(nsDynamicFunctionLoad_1sizeof)(JNIEnv *env, jclass that);
+JNIEXPORT jint JNICALL XPCOM_NATIVE(nsDynamicFunctionLoad_1sizeof)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, nsDynamicFunctionLoad_1sizeof_FUNC);
+ rc = (jint)nsDynamicFunctionLoad_sizeof();
+ XPCOM_NATIVE_EXIT(env, that, nsDynamicFunctionLoad_1sizeof_FUNC);
+ return rc;
+}
+#endif
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h
new file mode 100644
index 0000000000..5e7e33d8e5
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.h
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#ifndef INC_xpcom_H
+#define INC_xpcom_H
+
+#define NDEBUG
+#define XPCOM_GLUE 1
+
+#include "nsXPCOM.h"
+#include "nsEmbedString.h"
+#include "nsIInputStream.h"
+#include "nsIMemory.h"
+#include "nsISupportsUtils.h"
+#include "nsXPCOMGlue.h"
+#include "xpcom_custom.h"
+
+#ifndef nsIScriptContext_h__
+#include "nsIScriptContext.h"
+#include "nsIScriptGlobalObject.h"
+#endif /* nsIScriptContext_h__ */
+
+#ifdef _WIN32
+#define STDMETHODCALLTYPE __stdcall
+#define NO__1NS_1InitXPCOM2
+#else /* _WIN32 */
+#define STDMETHODCALLTYPE
+#ifdef __APPLE__
+#define NO__1NS_1InitXPCOM2
+#endif /* __APPLE__ */
+#endif /* _WIN32 */
+
+#define SWT_XREInitEmbedding nsresult (*)(nsILocalFile *,nsILocalFile *,nsIDirectoryServiceProvider *,nsStaticModuleInfo const *,PRUint32)
+
+#endif /* INC_xpcom_H */
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_custom.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_custom.cpp
new file mode 100644
index 0000000000..d84a81db23
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_custom.cpp
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "xpcom_structs.h"
+#include "xpcom_stats.h"
+
+extern "C" {
+
+#define XPCOM_NATIVE(func) Java_org_eclipse_swt_internal_mozilla_XPCOM_##func
+
+#ifndef NO_strlen_1PRUnichar
+JNIEXPORT jint JNICALL XPCOM_NATIVE(strlen_1PRUnichar)
+ (JNIEnv *env, jclass that, jintLong arg0)
+{
+ jint rc;
+ XPCOM_NATIVE_ENTER(env, that, strlen_1PRUnichar_FUNC);
+ {
+ const PRUnichar* lparg0 = NULL;
+ if (arg0) lparg0 = (const PRUnichar *)arg0;
+ PRUint32 len = 0;
+ if (lparg0 != NULL) while (*lparg0++ != 0) len++;
+ rc = (jint)len;
+ }
+ XPCOM_NATIVE_EXIT(env, that, strlen_1PRUnichar_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1JS_1EvaluateUCScriptForPrincipals
+JNIEXPORT jint JNICALL XPCOM_NATIVE(_1JS_1EvaluateUCScriptForPrincipals)
+ (JNIEnv *env, jclass that, jbyteArray mozillaPath, jintLong arg0, jintLong arg1, jintLong arg2, jcharArray arg3, jint arg4, jbyteArray arg5, jint arg6, jintLongArray arg7)
+{
+ jbyte *lpmozillaPath=NULL;
+ jchar *lparg3=NULL;
+ jbyte *lparg5=NULL;
+ jintLong *lparg7=NULL;
+ jint rc = 0;
+ XPCOM_NATIVE_ENTER(env, that, _1JS_1EvaluateUCScriptForPrincipals_FUNC);
+ if (mozillaPath) if ((lpmozillaPath = env->GetByteArrayElements(mozillaPath, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail;
+ if (arg5) if ((lparg5 = env->GetByteArrayElements(arg5, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = env->GetIntLongArrayElements(arg7, NULL)) == NULL) goto fail;
+/*
+ rc = (jint)JS_EvaluateUCScriptForPrincipals(arg0, arg1, arg2, lparg3, arg4, lparg5, arg6, lparg7);
+*/
+ {
+
+#ifdef _WIN32
+ LOAD_FUNCTION(fp, JS_EvaluateUCScriptForPrincipals)
+ if (fp) {
+ rc = (jint)((jint (CALLING_CONVENTION*)(jintLong, jintLong, jintLong, jchar *, jint, jbyte *, jint, jintLong *))fp)(arg0, arg1, arg2, lparg3, arg4, lparg5, arg6, lparg7);
+ }
+#else
+#define CALLING_CONVENTION
+ static int initialized = 0;
+ static void *fp = NULL;
+ if (!initialized) {
+ void* handle = dlopen((const char *)lpmozillaPath, RTLD_LAZY);
+ if (handle) {
+ fp = dlsym(handle, "JS_EvaluateUCScriptForPrincipals");
+ }
+ initialized = 1;
+ }
+ if (fp) {
+ rc = (jint)((jint (CALLING_CONVENTION*)(jintLong, jintLong, jintLong, jchar *, jint, jbyte *, jint, jintLong *))fp)(arg0, arg1, arg2, lparg3, arg4, lparg5, arg6, lparg7);
+ }
+#endif /* _WIN32 */
+ }
+fail:
+ if (arg7 && lparg7) env->ReleaseIntLongArrayElements(arg7, lparg7, 0);
+ if (arg5 && lparg5) env->ReleaseByteArrayElements(arg5, lparg5, 0);
+ if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0);
+ if (mozillaPath && lpmozillaPath) env->ReleaseByteArrayElements(mozillaPath, lpmozillaPath, 0);
+ XPCOM_NATIVE_EXIT(env, that, _1JS_1EvaluateUCScriptForPrincipals_FUNC);
+ return rc;
+}
+#endif
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_custom.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_custom.h
new file mode 100644
index 0000000000..c11fe30889
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_custom.h
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#ifdef _WIN32
+#include <windows.h>
+#define JS_EvaluateUCScriptForPrincipals_LIB "js3250.dll"
+#define XP_WIN
+#else
+#include <dlfcn.h>
+#endif
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp
new file mode 100644
index 0000000000..f3b088a39d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp
@@ -0,0 +1,987 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "xpcom_stats.h"
+
+#ifdef NATIVE_STATS
+
+int XPCOM_nativeFunctionCount = 213;
+int XPCOM_nativeFunctionCallCount[213];
+char * XPCOM_nativeFunctionNames[] = {
+ "GetAddress",
+#ifndef JNI64
+ "_1Call__I",
+#else
+ "_1Call__J",
+#endif
+#ifndef JNI64
+ "_1Call__IIIIII",
+#else
+ "_1Call__JJJJJI",
+#endif
+#ifndef JNI64
+ "_1Call__III_3BII_3I",
+#else
+ "_1Call__JJJ_3BII_3I",
+#endif
+ "_1JS_1EvaluateUCScriptForPrincipals",
+ "_1NS_1GetComponentManager",
+ "_1NS_1GetServiceManager",
+ "_1NS_1InitXPCOM2",
+ "_1NS_1NewLocalFile",
+#ifndef JNI64
+ "_1VtblCall__II",
+#else
+ "_1VtblCall__IJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IID",
+#else
+ "_1VtblCall__IJD",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIF",
+#else
+ "_1VtblCall__IJF",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III",
+#else
+ "_1VtblCall__IJI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII",
+#else
+ "_1VtblCall__IJII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIII",
+#else
+ "_1VtblCall__IJIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIII",
+#else
+ "_1VtblCall__IJIIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIIII",
+#else
+ "_1VtblCall__IJIIIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIIIII",
+#else
+ "_1VtblCall__IJIIIIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIIIIIIIII",
+#else
+ "_1VtblCall__IJIIIIIIIIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIIIIIIIIIIIISI",
+#else
+ "_1VtblCall__IJIIIIIIIIIIIIISI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIIIIII_3I",
+#else
+ "_1VtblCall__IJIIIIIII_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIIIII_3C_3I_3I",
+#else
+ "_1VtblCall__IJIIIIII_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIIII_3I",
+#else
+ "_1VtblCall__IJIIIII_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIIIJII",
+#else
+ "_1VtblCall__IJIIIIJII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIII_3CIIIII_3I_3I",
+#else
+ "_1VtblCall__IJIIII_3CIIIII_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIII_3C_3BIIIII_3I_3I",
+#else
+ "_1VtblCall__IJIIII_3C_3BIIIII_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIII_3C_3I_3I",
+#else
+ "_1VtblCall__IJIIII_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIII_3I_3I",
+#else
+ "_1VtblCall__IJIIII_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIII_3B_3BI",
+#else
+ "_1VtblCall__IJIII_3B_3BI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIII_3C",
+#else
+ "_1VtblCall__IJIII_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIII_3I",
+#else
+ "_1VtblCall__IJIII_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIIJJJJ",
+#else
+ "_1VtblCall__IJIIJJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3B",
+#else
+ "_1VtblCall__IJII_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3BI",
+#else
+ "_1VtblCall__IJII_3BI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3BII",
+#else
+ "_1VtblCall__IJII_3BII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3B_3B",
+#else
+ "_1VtblCall__IJII_3B_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3C",
+#else
+ "_1VtblCall__IJII_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3CIJI",
+#else
+ "_1VtblCall__IJII_3CIJI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3CJJJ",
+#else
+ "_1VtblCall__IJII_3CJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3C_3CI_3I",
+#else
+ "_1VtblCall__IJII_3C_3CI_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3I",
+#else
+ "_1VtblCall__IJII_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIII_3J",
+#else
+ "_1VtblCall__IJII_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIJJ",
+#else
+ "_1VtblCall__IJIJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIIJJJJJJ_3J",
+#else
+ "_1VtblCall__IJIJJJJJJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2",
+#else
+ "_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2II_3I",
+#else
+ "_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2II_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#else
+ "_1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3B",
+#else
+ "_1VtblCall__IJI_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3BI",
+#else
+ "_1VtblCall__IJI_3BI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3BI_3I",
+#else
+ "_1VtblCall__IJI_3BI_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3BS",
+#else
+ "_1VtblCall__IJI_3BS",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3B_3B_3BI_3I",
+#else
+ "_1VtblCall__IJI_3B_3B_3BI_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3B_3C",
+#else
+ "_1VtblCall__IJI_3B_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3B_3I",
+#else
+ "_1VtblCall__IJI_3B_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C",
+#else
+ "_1VtblCall__IJI_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3CI",
+#else
+ "_1VtblCall__IJI_3CI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3C",
+#else
+ "_1VtblCall__IJI_3C_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3CI_3C_3C_3C_3C_3I_3I",
+#else
+ "_1VtblCall__IJI_3C_3CI_3C_3C_3C_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3CI_3I_3I_3I",
+#else
+ "_1VtblCall__IJI_3C_3CI_3I_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3C_3C_3I",
+#else
+ "_1VtblCall__IJI_3C_3C_3C_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3C_3C_3I_3I",
+#else
+ "_1VtblCall__IJI_3C_3C_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3C_3I",
+#else
+ "_1VtblCall__IJI_3C_3C_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3C_3I_3C_3I_3I",
+#else
+ "_1VtblCall__IJI_3C_3C_3I_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3C_3I_3I_3C_3I_3I",
+#else
+ "_1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3C_3I",
+#else
+ "_1VtblCall__IJI_3C_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3I",
+#else
+ "_1VtblCall__IJI_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__III_3I_3I_3I_3I",
+#else
+ "_1VtblCall__IJI_3I_3I_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ",
+#else
+ "_1VtblCall__IJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJI",
+#else
+ "_1VtblCall__IJJI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJIIJIIIIII",
+#else
+ "_1VtblCall__IJJIIJIIIIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJIIJIIIIIIIIISJ",
+#else
+ "_1VtblCall__IJJIIJIIIIIIIIISJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJIIJ_3I_3J",
+#else
+ "_1VtblCall__IJJIIJ_3I_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJI_3J",
+#else
+ "_1VtblCall__IJJI_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ",
+#else
+ "_1VtblCall__IJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJI",
+#else
+ "_1VtblCall__IJJJI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJII",
+#else
+ "_1VtblCall__IJJJII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJIIII",
+#else
+ "_1VtblCall__IJJJIIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJIJ_3C_3I_3I",
+#else
+ "_1VtblCall__IJJJIJ_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJI_3C",
+#else
+ "_1VtblCall__IJJJI_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJI_3I",
+#else
+ "_1VtblCall__IJJJI_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJ",
+#else
+ "_1VtblCall__IJJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJI",
+#else
+ "_1VtblCall__IJJJJI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJI_3CJJIJI_3J_3J",
+#else
+ "_1VtblCall__IJJJJI_3CJJIJI_3J_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJI_3C_3BJJIJI_3J_3J",
+#else
+ "_1VtblCall__IJJJJI_3C_3BJJIJI_3J_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJJIJ_3C_3I_3J",
+#else
+ "_1VtblCall__IJJJJJIJ_3C_3I_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJJJ",
+#else
+ "_1VtblCall__IJJJJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJJJJ",
+#else
+ "_1VtblCall__IJJJJJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJJJJJ",
+#else
+ "_1VtblCall__IJJJJJJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJJJ_3J",
+#else
+ "_1VtblCall__IJJJJJJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJ_3B_3BJ",
+#else
+ "_1VtblCall__IJJJJ_3B_3BJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJJ_3J",
+#else
+ "_1VtblCall__IJJJJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3B",
+#else
+ "_1VtblCall__IJJJ_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3BJ",
+#else
+ "_1VtblCall__IJJJ_3BJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3BJI",
+#else
+ "_1VtblCall__IJJJ_3BJI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3B_3B",
+#else
+ "_1VtblCall__IJJJ_3B_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3CIJI",
+#else
+ "_1VtblCall__IJJJ_3CIJI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3CJJJ",
+#else
+ "_1VtblCall__IJJJ_3CJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3C_3CI_3J",
+#else
+ "_1VtblCall__IJJJ_3C_3CI_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3I",
+#else
+ "_1VtblCall__IJJJ_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJJ_3J",
+#else
+ "_1VtblCall__IJJJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2",
+#else
+ "_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J",
+#else
+ "_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#else
+ "_1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3B",
+#else
+ "_1VtblCall__IJJ_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3BI",
+#else
+ "_1VtblCall__IJJ_3BI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3BJ",
+#else
+ "_1VtblCall__IJJ_3BJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3BJ_3J",
+#else
+ "_1VtblCall__IJJ_3BJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3BS",
+#else
+ "_1VtblCall__IJJ_3BS",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3B_3B_3BJ_3J",
+#else
+ "_1VtblCall__IJJ_3B_3B_3BJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3B_3C",
+#else
+ "_1VtblCall__IJJ_3B_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3CI",
+#else
+ "_1VtblCall__IJJ_3CI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3C",
+#else
+ "_1VtblCall__IJJ_3C_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3CI_3C_3C_3C_3C_3I_3I",
+#else
+ "_1VtblCall__IJJ_3C_3CI_3C_3C_3C_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3CI_3J_3I_3I",
+#else
+ "_1VtblCall__IJJ_3C_3CI_3J_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3C_3C_3I",
+#else
+ "_1VtblCall__IJJ_3C_3C_3C_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3C_3C_3I_3I",
+#else
+ "_1VtblCall__IJJ_3C_3C_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3C_3I",
+#else
+ "_1VtblCall__IJJ_3C_3C_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3C_3J",
+#else
+ "_1VtblCall__IJJ_3C_3C_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3C_3J_3C_3I_3I",
+#else
+ "_1VtblCall__IJJ_3C_3C_3J_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3C_3J_3J_3C_3I_3I",
+#else
+ "_1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3C_3J",
+#else
+ "_1VtblCall__IJJ_3C_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3I",
+#else
+ "_1VtblCall__IJJ_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IIJ_3J",
+#else
+ "_1VtblCall__IJJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2I",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2J",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#else
+ "_1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IISIII",
+#else
+ "_1VtblCall__IJSIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__IISJIJ",
+#else
+ "_1VtblCall__IJSJIJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B",
+#else
+ "_1VtblCall__IJ_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BI",
+#else
+ "_1VtblCall__IJ_3BI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BII_3I_3I",
+#else
+ "_1VtblCall__IJ_3BII_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BIJ_3J_3I",
+#else
+ "_1VtblCall__IJ_3BIJ_3J_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#else
+ "_1VtblCall__IJ_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BI_3I",
+#else
+ "_1VtblCall__IJ_3BI_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BI_3I_3I",
+#else
+ "_1VtblCall__IJ_3BI_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BI_3J_3I",
+#else
+ "_1VtblCall__IJ_3BI_3J_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BJ",
+#else
+ "_1VtblCall__IJ_3BJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#else
+ "_1VtblCall__IJ_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BJ_3I",
+#else
+ "_1VtblCall__IJ_3BJ_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2I",
+#else
+ "_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2J",
+#else
+ "_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#else
+ "_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#else
+ "_1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3B",
+#else
+ "_1VtblCall__IJ_3B_3B",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3BI",
+#else
+ "_1VtblCall__IJ_3B_3BI",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3B_3BII_3I",
+#else
+ "_1VtblCall__IJ_3B_3B_3BII_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3B_3BII_3J",
+#else
+ "_1VtblCall__IJ_3B_3B_3BII_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3B_3I",
+#else
+ "_1VtblCall__IJ_3B_3B_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3B_3J",
+#else
+ "_1VtblCall__IJ_3B_3B_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3I",
+#else
+ "_1VtblCall__IJ_3B_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3I_3I",
+#else
+ "_1VtblCall__IJ_3B_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3I_3J",
+#else
+ "_1VtblCall__IJ_3B_3I_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3J",
+#else
+ "_1VtblCall__IJ_3B_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3B_3J_3I",
+#else
+ "_1VtblCall__IJ_3B_3J_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3C",
+#else
+ "_1VtblCall__IJ_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3CIIII",
+#else
+ "_1VtblCall__IJ_3CIIII",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3CIJJJ",
+#else
+ "_1VtblCall__IJ_3CIJJJ",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3CI_3I",
+#else
+ "_1VtblCall__IJ_3CI_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3CJ_3J",
+#else
+ "_1VtblCall__IJ_3CJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3C_3C",
+#else
+ "_1VtblCall__IJ_3C_3C",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3F",
+#else
+ "_1VtblCall__IJ_3F",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3I",
+#else
+ "_1VtblCall__IJ_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3I_3I",
+#else
+ "_1VtblCall__IJ_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3I_3I_3I",
+#else
+ "_1VtblCall__IJ_3I_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3I_3I_3I_3I",
+#else
+ "_1VtblCall__IJ_3I_3I_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3I_3I_3I_3I_3I_3I",
+#else
+ "_1VtblCall__IJ_3I_3I_3I_3I_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3I_3J",
+#else
+ "_1VtblCall__IJ_3I_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3I_3J_3I",
+#else
+ "_1VtblCall__IJ_3I_3J_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3I_3J_3J",
+#else
+ "_1VtblCall__IJ_3I_3J_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3J",
+#else
+ "_1VtblCall__IJ_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3J_3J",
+#else
+ "_1VtblCall__IJ_3J_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3J_3J_3J",
+#else
+ "_1VtblCall__IJ_3J_3J_3J",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3J_3J_3J_3J_3J_3I",
+#else
+ "_1VtblCall__IJ_3J_3J_3J_3J_3J_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3S",
+#else
+ "_1VtblCall__IJ_3S",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3SI_3I_3I",
+#else
+ "_1VtblCall__IJ_3SI_3I_3I",
+#endif
+#ifndef JNI64
+ "_1VtblCall__II_3SJ_3I_3J",
+#else
+ "_1VtblCall__IJ_3SJ_3I_3J",
+#endif
+ "_1XPCOMGlueLoadXULFunctions",
+ "_1XPCOMGlueShutdown",
+ "_1XPCOMGlueStartup",
+ "_1nsEmbedCString_1Length",
+ "_1nsEmbedCString_1delete",
+ "_1nsEmbedCString_1get",
+ "_1nsEmbedCString_1new__",
+#ifndef JNI64
+ "_1nsEmbedCString_1new__II",
+#else
+ "_1nsEmbedCString_1new__JI",
+#endif
+ "_1nsEmbedCString_1new___3BI",
+ "_1nsEmbedString_1Length",
+ "_1nsEmbedString_1delete",
+ "_1nsEmbedString_1get",
+ "_1nsEmbedString_1new__",
+ "_1nsEmbedString_1new___3C",
+ "_1nsID_1Equals",
+ "_1nsID_1delete",
+ "_1nsID_1new",
+ "_1nsIMemory_1Alloc",
+ "_1nsIMemory_1Realloc",
+ "_1nsIScriptContext_1GetNativeContext",
+ "_1nsIScriptGlobalObject_1EnsureScriptEnvironment",
+ "_1nsIScriptGlobalObject_1GetScriptContext",
+ "_1nsIScriptGlobalObject_1GetScriptGlobal",
+#ifndef JNI64
+ "memmove__ILorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2I",
+#else
+ "memmove__JLorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2J",
+#endif
+#ifndef JNI64
+ "memmove__ILorg_eclipse_swt_internal_mozilla_nsID_2I",
+#else
+ "memmove__JLorg_eclipse_swt_internal_mozilla_nsID_2I",
+#endif
+#ifndef JNI64
+ "memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2II",
+#else
+ "memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2JI",
+#endif
+ "nsDynamicFunctionLoad_1sizeof",
+ "strlen_1PRUnichar",
+};
+
+#define STATS_NATIVE(func) Java_org_eclipse_swt_tools_internal_NativeStats_##func
+
+JNIEXPORT jint JNICALL STATS_NATIVE(XPCOM_1GetFunctionCount)
+ (JNIEnv *env, jclass that)
+{
+ return XPCOM_nativeFunctionCount;
+}
+
+JNIEXPORT jstring JNICALL STATS_NATIVE(XPCOM_1GetFunctionName)
+ (JNIEnv *env, jclass that, jint index)
+{
+ return env->NewStringUTF(XPCOM_nativeFunctionNames[index]);
+}
+
+JNIEXPORT jint JNICALL STATS_NATIVE(XPCOM_1GetFunctionCallCount)
+ (JNIEnv *env, jclass that, jint index)
+{
+ return XPCOM_nativeFunctionCallCount[index];
+}
+
+#endif
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h
new file mode 100644
index 0000000000..b7263584f4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h
@@ -0,0 +1,973 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#ifdef NATIVE_STATS
+extern int XPCOM_nativeFunctionCount;
+extern int XPCOM_nativeFunctionCallCount[];
+extern char* XPCOM_nativeFunctionNames[];
+#define XPCOM_NATIVE_ENTER(env, that, func) XPCOM_nativeFunctionCallCount[func]++;
+#define XPCOM_NATIVE_EXIT(env, that, func)
+#else
+#ifndef XPCOM_NATIVE_ENTER
+#define XPCOM_NATIVE_ENTER(env, that, func)
+#endif
+#ifndef XPCOM_NATIVE_EXIT
+#define XPCOM_NATIVE_EXIT(env, that, func)
+#endif
+#endif
+
+typedef enum {
+ GetAddress_FUNC,
+#ifndef JNI64
+ _1Call__I_FUNC,
+#else
+ _1Call__J_FUNC,
+#endif
+#ifndef JNI64
+ _1Call__IIIIII_FUNC,
+#else
+ _1Call__JJJJJI_FUNC,
+#endif
+#ifndef JNI64
+ _1Call__III_3BII_3I_FUNC,
+#else
+ _1Call__JJJ_3BII_3I_FUNC,
+#endif
+ _1JS_1EvaluateUCScriptForPrincipals_FUNC,
+ _1NS_1GetComponentManager_FUNC,
+ _1NS_1GetServiceManager_FUNC,
+ _1NS_1InitXPCOM2_FUNC,
+ _1NS_1NewLocalFile_FUNC,
+#ifndef JNI64
+ _1VtblCall__II_FUNC,
+#else
+ _1VtblCall__IJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IID_FUNC,
+#else
+ _1VtblCall__IJD_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIF_FUNC,
+#else
+ _1VtblCall__IJF_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_FUNC,
+#else
+ _1VtblCall__IJI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_FUNC,
+#else
+ _1VtblCall__IJII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIII_FUNC,
+#else
+ _1VtblCall__IJIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIII_FUNC,
+#else
+ _1VtblCall__IJIIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIIII_FUNC,
+#else
+ _1VtblCall__IJIIIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIIIII_FUNC,
+#else
+ _1VtblCall__IJIIIIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIIIIIIIII_FUNC,
+#else
+ _1VtblCall__IJIIIIIIIIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIIIIIIIIIIIISI_FUNC,
+#else
+ _1VtblCall__IJIIIIIIIIIIIIISI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIIIIII_3I_FUNC,
+#else
+ _1VtblCall__IJIIIIIII_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIIIII_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJIIIIII_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIIII_3I_FUNC,
+#else
+ _1VtblCall__IJIIIII_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIIIJII_FUNC,
+#else
+ _1VtblCall__IJIIIIJII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIII_3CIIIII_3I_3I_FUNC,
+#else
+ _1VtblCall__IJIIII_3CIIIII_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIII_3C_3BIIIII_3I_3I_FUNC,
+#else
+ _1VtblCall__IJIIII_3C_3BIIIII_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIII_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJIIII_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIII_3I_3I_FUNC,
+#else
+ _1VtblCall__IJIIII_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIII_3B_3BI_FUNC,
+#else
+ _1VtblCall__IJIII_3B_3BI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIII_3C_FUNC,
+#else
+ _1VtblCall__IJIII_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIII_3I_FUNC,
+#else
+ _1VtblCall__IJIII_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIIJJJJ_FUNC,
+#else
+ _1VtblCall__IJIIJJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3B_FUNC,
+#else
+ _1VtblCall__IJII_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3BI_FUNC,
+#else
+ _1VtblCall__IJII_3BI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3BII_FUNC,
+#else
+ _1VtblCall__IJII_3BII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3B_3B_FUNC,
+#else
+ _1VtblCall__IJII_3B_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3C_FUNC,
+#else
+ _1VtblCall__IJII_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3CIJI_FUNC,
+#else
+ _1VtblCall__IJII_3CIJI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3CJJJ_FUNC,
+#else
+ _1VtblCall__IJII_3CJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3C_3CI_3I_FUNC,
+#else
+ _1VtblCall__IJII_3C_3CI_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3I_FUNC,
+#else
+ _1VtblCall__IJII_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIII_3J_FUNC,
+#else
+ _1VtblCall__IJII_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIJJ_FUNC,
+#else
+ _1VtblCall__IJIJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIIJJJJJJ_3J_FUNC,
+#else
+ _1VtblCall__IJIJJJJJJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_FUNC,
+#else
+ _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2II_3I_FUNC,
+#else
+ _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2II_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#else
+ _1VtblCall__IJILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3B_FUNC,
+#else
+ _1VtblCall__IJI_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3BI_FUNC,
+#else
+ _1VtblCall__IJI_3BI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3BI_3I_FUNC,
+#else
+ _1VtblCall__IJI_3BI_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3BS_FUNC,
+#else
+ _1VtblCall__IJI_3BS_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3B_3B_3BI_3I_FUNC,
+#else
+ _1VtblCall__IJI_3B_3B_3BI_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3B_3C_FUNC,
+#else
+ _1VtblCall__IJI_3B_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3B_3I_FUNC,
+#else
+ _1VtblCall__IJI_3B_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_FUNC,
+#else
+ _1VtblCall__IJI_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3CI_FUNC,
+#else
+ _1VtblCall__IJI_3CI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3C_FUNC,
+#else
+ _1VtblCall__IJI_3C_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJI_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3CI_3I_3I_3I_FUNC,
+#else
+ _1VtblCall__IJI_3C_3CI_3I_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3C_3C_3I_FUNC,
+#else
+ _1VtblCall__IJI_3C_3C_3C_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3C_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJI_3C_3C_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3C_3I_FUNC,
+#else
+ _1VtblCall__IJI_3C_3C_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3C_3I_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJI_3C_3C_3I_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3C_3I_3I_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3C_3I_FUNC,
+#else
+ _1VtblCall__IJI_3C_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3I_FUNC,
+#else
+ _1VtblCall__IJI_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__III_3I_3I_3I_3I_FUNC,
+#else
+ _1VtblCall__IJI_3I_3I_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_FUNC,
+#else
+ _1VtblCall__IJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJI_FUNC,
+#else
+ _1VtblCall__IJJI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJIIJIIIIII_FUNC,
+#else
+ _1VtblCall__IJJIIJIIIIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJIIJIIIIIIIIISJ_FUNC,
+#else
+ _1VtblCall__IJJIIJIIIIIIIIISJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJIIJ_3I_3J_FUNC,
+#else
+ _1VtblCall__IJJIIJ_3I_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJI_3J_FUNC,
+#else
+ _1VtblCall__IJJI_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_FUNC,
+#else
+ _1VtblCall__IJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJI_FUNC,
+#else
+ _1VtblCall__IJJJI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJII_FUNC,
+#else
+ _1VtblCall__IJJJII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJIIII_FUNC,
+#else
+ _1VtblCall__IJJJIIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJIJ_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJJJIJ_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJI_3C_FUNC,
+#else
+ _1VtblCall__IJJJI_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJI_3I_FUNC,
+#else
+ _1VtblCall__IJJJI_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJ_FUNC,
+#else
+ _1VtblCall__IJJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJI_FUNC,
+#else
+ _1VtblCall__IJJJJI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJI_3CJJIJI_3J_3J_FUNC,
+#else
+ _1VtblCall__IJJJJI_3CJJIJI_3J_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJI_3C_3BJJIJI_3J_3J_FUNC,
+#else
+ _1VtblCall__IJJJJI_3C_3BJJIJI_3J_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJJIJ_3C_3I_3J_FUNC,
+#else
+ _1VtblCall__IJJJJJIJ_3C_3I_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJJJ_FUNC,
+#else
+ _1VtblCall__IJJJJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJJJJ_FUNC,
+#else
+ _1VtblCall__IJJJJJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJJJJJ_FUNC,
+#else
+ _1VtblCall__IJJJJJJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJJJ_3J_FUNC,
+#else
+ _1VtblCall__IJJJJJJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJ_3B_3BJ_FUNC,
+#else
+ _1VtblCall__IJJJJ_3B_3BJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJJ_3J_FUNC,
+#else
+ _1VtblCall__IJJJJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3B_FUNC,
+#else
+ _1VtblCall__IJJJ_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3BJ_FUNC,
+#else
+ _1VtblCall__IJJJ_3BJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3BJI_FUNC,
+#else
+ _1VtblCall__IJJJ_3BJI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3B_3B_FUNC,
+#else
+ _1VtblCall__IJJJ_3B_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3CIJI_FUNC,
+#else
+ _1VtblCall__IJJJ_3CIJI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3CJJJ_FUNC,
+#else
+ _1VtblCall__IJJJ_3CJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3C_3CI_3J_FUNC,
+#else
+ _1VtblCall__IJJJ_3C_3CI_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3I_FUNC,
+#else
+ _1VtblCall__IJJJ_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJJ_3J_FUNC,
+#else
+ _1VtblCall__IJJJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_FUNC,
+#else
+ _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J_FUNC,
+#else
+ _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2JJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#else
+ _1VtblCall__IJJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3B_FUNC,
+#else
+ _1VtblCall__IJJ_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3BI_FUNC,
+#else
+ _1VtblCall__IJJ_3BI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3BJ_FUNC,
+#else
+ _1VtblCall__IJJ_3BJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3BJ_3J_FUNC,
+#else
+ _1VtblCall__IJJ_3BJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3BS_FUNC,
+#else
+ _1VtblCall__IJJ_3BS_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3B_3B_3BJ_3J_FUNC,
+#else
+ _1VtblCall__IJJ_3B_3B_3BJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3B_3C_FUNC,
+#else
+ _1VtblCall__IJJ_3B_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3CI_FUNC,
+#else
+ _1VtblCall__IJJ_3CI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3C_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3CI_3C_3C_3C_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3CI_3J_3I_3I_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3CI_3J_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3C_3C_3I_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3C_3C_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3C_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3C_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3C_3I_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3C_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3C_3J_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3C_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3C_3J_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3C_3J_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3C_3J_3J_3C_3I_3I_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3C_3J_FUNC,
+#else
+ _1VtblCall__IJJ_3C_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3I_FUNC,
+#else
+ _1VtblCall__IJJ_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IIJ_3J_FUNC,
+#else
+ _1VtblCall__IJJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2ILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2JLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2Lorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BI_3B_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3B_3BJ_3B_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IILorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#else
+ _1VtblCall__IJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IISIII_FUNC,
+#else
+ _1VtblCall__IJSIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__IISJIJ_FUNC,
+#else
+ _1VtblCall__IJSJIJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_FUNC,
+#else
+ _1VtblCall__IJ_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BI_FUNC,
+#else
+ _1VtblCall__IJ_3BI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BII_3I_3I_FUNC,
+#else
+ _1VtblCall__IJ_3BII_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BIJ_3J_3I_FUNC,
+#else
+ _1VtblCall__IJ_3BIJ_3J_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#else
+ _1VtblCall__IJ_3BILorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BI_3I_FUNC,
+#else
+ _1VtblCall__IJ_3BI_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BI_3I_3I_FUNC,
+#else
+ _1VtblCall__IJ_3BI_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BI_3J_3I_FUNC,
+#else
+ _1VtblCall__IJ_3BI_3J_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BJ_FUNC,
+#else
+ _1VtblCall__IJ_3BJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#else
+ _1VtblCall__IJ_3BJLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BJ_3I_FUNC,
+#else
+ _1VtblCall__IJ_3BJ_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC,
+#else
+ _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC,
+#else
+ _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#else
+ _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#else
+ _1VtblCall__IJ_3BLorg_eclipse_swt_internal_mozilla_nsID_2_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3B_FUNC,
+#else
+ _1VtblCall__IJ_3B_3B_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3BI_FUNC,
+#else
+ _1VtblCall__IJ_3B_3BI_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3B_3BII_3I_FUNC,
+#else
+ _1VtblCall__IJ_3B_3B_3BII_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3B_3BII_3J_FUNC,
+#else
+ _1VtblCall__IJ_3B_3B_3BII_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3B_3I_FUNC,
+#else
+ _1VtblCall__IJ_3B_3B_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3B_3J_FUNC,
+#else
+ _1VtblCall__IJ_3B_3B_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3I_FUNC,
+#else
+ _1VtblCall__IJ_3B_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3I_3I_FUNC,
+#else
+ _1VtblCall__IJ_3B_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3I_3J_FUNC,
+#else
+ _1VtblCall__IJ_3B_3I_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3J_FUNC,
+#else
+ _1VtblCall__IJ_3B_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3B_3J_3I_FUNC,
+#else
+ _1VtblCall__IJ_3B_3J_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3C_FUNC,
+#else
+ _1VtblCall__IJ_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3CIIII_FUNC,
+#else
+ _1VtblCall__IJ_3CIIII_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3CIJJJ_FUNC,
+#else
+ _1VtblCall__IJ_3CIJJJ_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3CI_3I_FUNC,
+#else
+ _1VtblCall__IJ_3CI_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3CJ_3J_FUNC,
+#else
+ _1VtblCall__IJ_3CJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3C_3C_FUNC,
+#else
+ _1VtblCall__IJ_3C_3C_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3F_FUNC,
+#else
+ _1VtblCall__IJ_3F_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3I_FUNC,
+#else
+ _1VtblCall__IJ_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3I_3I_FUNC,
+#else
+ _1VtblCall__IJ_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3I_3I_3I_FUNC,
+#else
+ _1VtblCall__IJ_3I_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3I_3I_3I_3I_FUNC,
+#else
+ _1VtblCall__IJ_3I_3I_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3I_3I_3I_3I_3I_3I_FUNC,
+#else
+ _1VtblCall__IJ_3I_3I_3I_3I_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3I_3J_FUNC,
+#else
+ _1VtblCall__IJ_3I_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3I_3J_3I_FUNC,
+#else
+ _1VtblCall__IJ_3I_3J_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3I_3J_3J_FUNC,
+#else
+ _1VtblCall__IJ_3I_3J_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3J_FUNC,
+#else
+ _1VtblCall__IJ_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3J_3J_FUNC,
+#else
+ _1VtblCall__IJ_3J_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3J_3J_3J_FUNC,
+#else
+ _1VtblCall__IJ_3J_3J_3J_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3J_3J_3J_3J_3J_3I_FUNC,
+#else
+ _1VtblCall__IJ_3J_3J_3J_3J_3J_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3S_FUNC,
+#else
+ _1VtblCall__IJ_3S_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3SI_3I_3I_FUNC,
+#else
+ _1VtblCall__IJ_3SI_3I_3I_FUNC,
+#endif
+#ifndef JNI64
+ _1VtblCall__II_3SJ_3I_3J_FUNC,
+#else
+ _1VtblCall__IJ_3SJ_3I_3J_FUNC,
+#endif
+ _1XPCOMGlueLoadXULFunctions_FUNC,
+ _1XPCOMGlueShutdown_FUNC,
+ _1XPCOMGlueStartup_FUNC,
+ _1nsEmbedCString_1Length_FUNC,
+ _1nsEmbedCString_1delete_FUNC,
+ _1nsEmbedCString_1get_FUNC,
+ _1nsEmbedCString_1new___FUNC,
+#ifndef JNI64
+ _1nsEmbedCString_1new__II_FUNC,
+#else
+ _1nsEmbedCString_1new__JI_FUNC,
+#endif
+ _1nsEmbedCString_1new___3BI_FUNC,
+ _1nsEmbedString_1Length_FUNC,
+ _1nsEmbedString_1delete_FUNC,
+ _1nsEmbedString_1get_FUNC,
+ _1nsEmbedString_1new___FUNC,
+ _1nsEmbedString_1new___3C_FUNC,
+ _1nsID_1Equals_FUNC,
+ _1nsID_1delete_FUNC,
+ _1nsID_1new_FUNC,
+ _1nsIMemory_1Alloc_FUNC,
+ _1nsIMemory_1Realloc_FUNC,
+ _1nsIScriptContext_1GetNativeContext_FUNC,
+ _1nsIScriptGlobalObject_1EnsureScriptEnvironment_FUNC,
+ _1nsIScriptGlobalObject_1GetScriptContext_FUNC,
+ _1nsIScriptGlobalObject_1GetScriptGlobal_FUNC,
+#ifndef JNI64
+ memmove__ILorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2I_FUNC,
+#else
+ memmove__JLorg_eclipse_swt_internal_mozilla_nsDynamicFunctionLoad_2J_FUNC,
+#endif
+#ifndef JNI64
+ memmove__ILorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC,
+#else
+ memmove__JLorg_eclipse_swt_internal_mozilla_nsID_2I_FUNC,
+#endif
+#ifndef JNI64
+ memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2II_FUNC,
+#else
+ memmove__Lorg_eclipse_swt_internal_mozilla_nsID_2JI_FUNC,
+#endif
+ nsDynamicFunctionLoad_1sizeof_FUNC,
+ strlen_1PRUnichar_FUNC,
+} XPCOM_FUNCS;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_structs.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_structs.cpp
new file mode 100644
index 0000000000..9e2d989cfe
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_structs.cpp
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "xpcom_structs.h"
+
+#ifndef NO_nsDynamicFunctionLoad
+typedef struct nsDynamicFunctionLoad_FID_CACHE {
+ int cached;
+ jclass clazz;
+ jfieldID functionName, function;
+} nsDynamicFunctionLoad_FID_CACHE;
+
+nsDynamicFunctionLoad_FID_CACHE nsDynamicFunctionLoadFc;
+
+void cachensDynamicFunctionLoadFields(JNIEnv *env, jobject lpObject)
+{
+ if (nsDynamicFunctionLoadFc.cached) return;
+ nsDynamicFunctionLoadFc.clazz = env->GetObjectClass(lpObject);
+ nsDynamicFunctionLoadFc.functionName = env->GetFieldID(nsDynamicFunctionLoadFc.clazz, "functionName", I_J);
+ nsDynamicFunctionLoadFc.function = env->GetFieldID(nsDynamicFunctionLoadFc.clazz, "function", I_J);
+ nsDynamicFunctionLoadFc.cached = 1;
+}
+
+nsDynamicFunctionLoad *getnsDynamicFunctionLoadFields(JNIEnv *env, jobject lpObject, nsDynamicFunctionLoad *lpStruct)
+{
+ if (!nsDynamicFunctionLoadFc.cached) cachensDynamicFunctionLoadFields(env, lpObject);
+ lpStruct->functionName = (const char *)env->GetIntLongField(lpObject, nsDynamicFunctionLoadFc.functionName);
+ lpStruct->function = (NSFuncPtr *)env->GetIntLongField(lpObject, nsDynamicFunctionLoadFc.function);
+ return lpStruct;
+}
+
+void setnsDynamicFunctionLoadFields(JNIEnv *env, jobject lpObject, nsDynamicFunctionLoad *lpStruct)
+{
+ if (!nsDynamicFunctionLoadFc.cached) cachensDynamicFunctionLoadFields(env, lpObject);
+ env->SetIntLongField(lpObject, nsDynamicFunctionLoadFc.functionName, (jintLong)lpStruct->functionName);
+ env->SetIntLongField(lpObject, nsDynamicFunctionLoadFc.function, (jintLong)lpStruct->function);
+}
+#endif
+
+#ifndef NO_nsID
+typedef struct nsID_FID_CACHE {
+ int cached;
+ jclass clazz;
+ jfieldID m0, m1, m2, m3;
+} nsID_FID_CACHE;
+
+nsID_FID_CACHE nsIDFc;
+
+void cachensIDFields(JNIEnv *env, jobject lpObject)
+{
+ if (nsIDFc.cached) return;
+ nsIDFc.clazz = env->GetObjectClass(lpObject);
+ nsIDFc.m0 = env->GetFieldID(nsIDFc.clazz, "m0", "I");
+ nsIDFc.m1 = env->GetFieldID(nsIDFc.clazz, "m1", "S");
+ nsIDFc.m2 = env->GetFieldID(nsIDFc.clazz, "m2", "S");
+ nsIDFc.m3 = env->GetFieldID(nsIDFc.clazz, "m3", "[B");
+ nsIDFc.cached = 1;
+}
+
+nsID *getnsIDFields(JNIEnv *env, jobject lpObject, nsID *lpStruct)
+{
+ if (!nsIDFc.cached) cachensIDFields(env, lpObject);
+ lpStruct->m0 = env->GetIntField(lpObject, nsIDFc.m0);
+ lpStruct->m1 = env->GetShortField(lpObject, nsIDFc.m1);
+ lpStruct->m2 = env->GetShortField(lpObject, nsIDFc.m2);
+ {
+ jbyteArray lpObject1 = (jbyteArray)env->GetObjectField(lpObject, nsIDFc.m3);
+ env->GetByteArrayRegion(lpObject1, 0, sizeof(lpStruct->m3), (jbyte *)lpStruct->m3);
+ }
+ return lpStruct;
+}
+
+void setnsIDFields(JNIEnv *env, jobject lpObject, nsID *lpStruct)
+{
+ if (!nsIDFc.cached) cachensIDFields(env, lpObject);
+ env->SetIntField(lpObject, nsIDFc.m0, (jint)lpStruct->m0);
+ env->SetShortField(lpObject, nsIDFc.m1, (jshort)lpStruct->m1);
+ env->SetShortField(lpObject, nsIDFc.m2, (jshort)lpStruct->m2);
+ {
+ jbyteArray lpObject1 = (jbyteArray)env->GetObjectField(lpObject, nsIDFc.m3);
+ env->SetByteArrayRegion(lpObject1, 0, sizeof(lpStruct->m3), (jbyte *)lpStruct->m3);
+ }
+}
+#endif
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_structs.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_structs.h
new file mode 100644
index 0000000000..51e3be187e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_structs.h
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "xpcom.h"
+
+#ifndef NO_nsDynamicFunctionLoad
+void cachensDynamicFunctionLoadFields(JNIEnv *env, jobject lpObject);
+nsDynamicFunctionLoad *getnsDynamicFunctionLoadFields(JNIEnv *env, jobject lpObject, nsDynamicFunctionLoad *lpStruct);
+void setnsDynamicFunctionLoadFields(JNIEnv *env, jobject lpObject, nsDynamicFunctionLoad *lpStruct);
+#define nsDynamicFunctionLoad_sizeof() sizeof(nsDynamicFunctionLoad)
+#else
+#define cachensDynamicFunctionLoadFields(a,b)
+#define getnsDynamicFunctionLoadFields(a,b,c) NULL
+#define setnsDynamicFunctionLoadFields(a,b,c)
+#define nsDynamicFunctionLoad_sizeof() 0
+#endif
+
+#ifndef NO_nsID
+void cachensIDFields(JNIEnv *env, jobject lpObject);
+nsID *getnsIDFields(JNIEnv *env, jobject lpObject, nsID *lpStruct);
+void setnsIDFields(JNIEnv *env, jobject lpObject, nsID *lpStruct);
+#define nsID_sizeof() sizeof(nsID)
+#else
+#define cachensIDFields(a,b)
+#define getnsIDFields(a,b,c) NULL
+#define setnsIDFields(a,b,c)
+#define nsID_sizeof() 0
+#endif
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit.cpp
new file mode 100644
index 0000000000..45b342c42e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit.cpp
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "xpcominit_structs.h"
+#include "xpcominit_stats.h"
+
+#define XPCOMInit_NATIVE(func) Java_org_eclipse_swt_internal_mozilla_init_XPCOMInit_##func
+
+#ifndef NO_GREVersionRange_1sizeof
+extern "C" JNIEXPORT jint JNICALL XPCOMInit_NATIVE(GREVersionRange_1sizeof)(JNIEnv *env, jclass that);
+JNIEXPORT jint JNICALL XPCOMInit_NATIVE(GREVersionRange_1sizeof)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ XPCOMInit_NATIVE_ENTER(env, that, GREVersionRange_1sizeof_FUNC);
+ rc = (jint)GREVersionRange_sizeof();
+ XPCOMInit_NATIVE_EXIT(env, that, GREVersionRange_1sizeof_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1GRE_1GetGREPathWithProperties
+extern "C" JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1GRE_1GetGREPathWithProperties)(JNIEnv *env, jclass that, jobject arg0, jint arg1, jintLong arg2, jint arg3, jintLong arg4, jint arg5);
+JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1GRE_1GetGREPathWithProperties)
+ (JNIEnv *env, jclass that, jobject arg0, jint arg1, jintLong arg2, jint arg3, jintLong arg4, jint arg5)
+{
+ GREVersionRange _arg0, *lparg0=NULL;
+ jint rc = 0;
+ XPCOMInit_NATIVE_ENTER(env, that, _1GRE_1GetGREPathWithProperties_FUNC);
+ if (arg0) if ((lparg0 = getGREVersionRangeFields(env, arg0, &_arg0)) == NULL) goto fail;
+ rc = (jint)GRE_GetGREPathWithProperties((const GREVersionRange *)lparg0, arg1, (const GREProperty *)arg2, arg3, (char *)arg4, arg5);
+fail:
+ if (arg0 && lparg0) setGREVersionRangeFields(env, arg0, lparg0);
+ XPCOMInit_NATIVE_EXIT(env, that, _1GRE_1GetGREPathWithProperties_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1XPCOMGlueShutdown
+extern "C" JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1XPCOMGlueShutdown)(JNIEnv *env, jclass that);
+JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1XPCOMGlueShutdown)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ XPCOMInit_NATIVE_ENTER(env, that, _1XPCOMGlueShutdown_FUNC);
+ rc = (jint)XPCOMGlueShutdown();
+ XPCOMInit_NATIVE_EXIT(env, that, _1XPCOMGlueShutdown_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO__1XPCOMGlueStartup
+extern "C" JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1XPCOMGlueStartup)(JNIEnv *env, jclass that, jbyteArray arg0);
+JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1XPCOMGlueStartup)
+ (JNIEnv *env, jclass that, jbyteArray arg0)
+{
+ jbyte *lparg0=NULL;
+ jint rc = 0;
+ XPCOMInit_NATIVE_ENTER(env, that, _1XPCOMGlueStartup_FUNC);
+ if (arg0) if ((lparg0 = env->GetByteArrayElements(arg0, NULL)) == NULL) goto fail;
+ rc = (jint)XPCOMGlueStartup((const char *)lparg0);
+fail:
+ if (arg0 && lparg0) env->ReleaseByteArrayElements(arg0, lparg0, 0);
+ XPCOMInit_NATIVE_EXIT(env, that, _1XPCOMGlueStartup_FUNC);
+ return rc;
+}
+#endif
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit.h
new file mode 100755
index 0000000000..e80c00a021
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit.h
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#ifndef INC_xpcominit_H
+#define INC_xpcominit_H
+
+#define NDEBUG
+
+#define XPCOM_GLUE 1
+#include "nsXPCOMGlue.h"
+
+#ifdef _WIN32
+#define STDMETHODCALLTYPE __stdcall
+#else
+#define STDMETHODCALLTYPE
+#endif
+
+#endif /* INC_xpcominit_H */
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_stats.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_stats.cpp
new file mode 100644
index 0000000000..687a29ae20
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_stats.cpp
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "xpcominit_stats.h"
+
+#ifdef NATIVE_STATS
+
+int XPCOMInit_nativeFunctionCount = 4;
+int XPCOMInit_nativeFunctionCallCount[4];
+char * XPCOMInit_nativeFunctionNames[] = {
+ "GREVersionRange_1sizeof",
+ "_1GRE_1GetGREPathWithProperties",
+ "_1XPCOMGlueShutdown",
+ "_1XPCOMGlueStartup",
+};
+
+#define STATS_NATIVE(func) Java_org_eclipse_swt_tools_internal_NativeStats_##func
+
+JNIEXPORT jint JNICALL STATS_NATIVE(XPCOMInit_1GetFunctionCount)
+ (JNIEnv *env, jclass that)
+{
+ return XPCOMInit_nativeFunctionCount;
+}
+
+JNIEXPORT jstring JNICALL STATS_NATIVE(XPCOMInit_1GetFunctionName)
+ (JNIEnv *env, jclass that, jint index)
+{
+ return env->NewStringUTF(XPCOMInit_nativeFunctionNames[index]);
+}
+
+JNIEXPORT jint JNICALL STATS_NATIVE(XPCOMInit_1GetFunctionCallCount)
+ (JNIEnv *env, jclass that, jint index)
+{
+ return XPCOMInit_nativeFunctionCallCount[index];
+}
+
+#endif
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_stats.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_stats.h
new file mode 100644
index 0000000000..048e3d7a5f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_stats.h
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#ifdef NATIVE_STATS
+extern int XPCOMInit_nativeFunctionCount;
+extern int XPCOMInit_nativeFunctionCallCount[];
+extern char* XPCOMInit_nativeFunctionNames[];
+#define XPCOMInit_NATIVE_ENTER(env, that, func) XPCOMInit_nativeFunctionCallCount[func]++;
+#define XPCOMInit_NATIVE_EXIT(env, that, func)
+#else
+#ifndef XPCOMInit_NATIVE_ENTER
+#define XPCOMInit_NATIVE_ENTER(env, that, func)
+#endif
+#ifndef XPCOMInit_NATIVE_EXIT
+#define XPCOMInit_NATIVE_EXIT(env, that, func)
+#endif
+#endif
+
+typedef enum {
+ GREVersionRange_1sizeof_FUNC,
+ _1GRE_1GetGREPathWithProperties_FUNC,
+ _1XPCOMGlueShutdown_FUNC,
+ _1XPCOMGlueStartup_FUNC,
+} XPCOMInit_FUNCS;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_structs.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_structs.cpp
new file mode 100644
index 0000000000..e9edfd6f24
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_structs.cpp
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "xpcominit_structs.h"
+
+#ifndef NO_GREVersionRange
+typedef struct GREVersionRange_FID_CACHE {
+ int cached;
+ jclass clazz;
+ jfieldID lower, lowerInclusive, upper, upperInclusive;
+} GREVersionRange_FID_CACHE;
+
+GREVersionRange_FID_CACHE GREVersionRangeFc;
+
+void cacheGREVersionRangeFields(JNIEnv *env, jobject lpObject)
+{
+ if (GREVersionRangeFc.cached) return;
+ GREVersionRangeFc.clazz = env->GetObjectClass(lpObject);
+ GREVersionRangeFc.lower = env->GetFieldID(GREVersionRangeFc.clazz, "lower", I_J);
+ GREVersionRangeFc.lowerInclusive = env->GetFieldID(GREVersionRangeFc.clazz, "lowerInclusive", "Z");
+ GREVersionRangeFc.upper = env->GetFieldID(GREVersionRangeFc.clazz, "upper", I_J);
+ GREVersionRangeFc.upperInclusive = env->GetFieldID(GREVersionRangeFc.clazz, "upperInclusive", "Z");
+ GREVersionRangeFc.cached = 1;
+}
+
+GREVersionRange *getGREVersionRangeFields(JNIEnv *env, jobject lpObject, GREVersionRange *lpStruct)
+{
+ if (!GREVersionRangeFc.cached) cacheGREVersionRangeFields(env, lpObject);
+ lpStruct->lower = (const char *)env->GetIntLongField(lpObject, GREVersionRangeFc.lower);
+ lpStruct->lowerInclusive = env->GetBooleanField(lpObject, GREVersionRangeFc.lowerInclusive);
+ lpStruct->upper = (const char *)env->GetIntLongField(lpObject, GREVersionRangeFc.upper);
+ lpStruct->upperInclusive = env->GetBooleanField(lpObject, GREVersionRangeFc.upperInclusive);
+ return lpStruct;
+}
+
+void setGREVersionRangeFields(JNIEnv *env, jobject lpObject, GREVersionRange *lpStruct)
+{
+ if (!GREVersionRangeFc.cached) cacheGREVersionRangeFields(env, lpObject);
+ env->SetIntLongField(lpObject, GREVersionRangeFc.lower, (jintLong)lpStruct->lower);
+ env->SetBooleanField(lpObject, GREVersionRangeFc.lowerInclusive, (jboolean)lpStruct->lowerInclusive);
+ env->SetIntLongField(lpObject, GREVersionRangeFc.upper, (jintLong)lpStruct->upper);
+ env->SetBooleanField(lpObject, GREVersionRangeFc.upperInclusive, (jboolean)lpStruct->upperInclusive);
+}
+#endif
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_structs.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_structs.h
new file mode 100644
index 0000000000..096a9da70d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcominit_structs.h
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "xpcominit.h"
+
+#ifndef NO_GREVersionRange
+void cacheGREVersionRangeFields(JNIEnv *env, jobject lpObject);
+GREVersionRange *getGREVersionRangeFields(JNIEnv *env, jobject lpObject, GREVersionRange *lpStruct);
+void setGREVersionRangeFields(JNIEnv *env, jobject lpObject, GREVersionRange *lpStruct);
+#define GREVersionRange_sizeof() sizeof(GREVersionRange)
+#else
+#define cacheGREVersionRangeFields(a,b)
+#define getGREVersionRangeFields(a,b,c) NULL
+#define setGREVersionRangeFields(a,b,c)
+#define GREVersionRange_sizeof() 0
+#endif
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java
new file mode 100644
index 0000000000..89715657ac
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java
@@ -0,0 +1,334 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import java.util.Vector;
+
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+
+class AppFileLocProvider {
+ XPCOMObject supports;
+ XPCOMObject directoryServiceProvider;
+ XPCOMObject directoryServiceProvider2;
+ int refCount = 0;
+ String mozillaPath, profilePath, componentsPath;
+ String[] pluginDirs;
+ boolean isXULRunner;
+
+ static final String SEPARATOR_OS = System.getProperty ("file.separator"); //$NON-NLS-1$
+ static final String CHROME_DIR = "chrome"; //$NON-NLS-1$
+ static final String COMPONENTS_DIR = "components"; //$NON-NLS-1$
+ static final String HISTORY_FILE = "history.dat"; //$NON-NLS-1$
+ static final String LOCALSTORE_FILE = "localstore.rdf"; //$NON-NLS-1$
+ static final String MIMETYPES_FILE = "mimeTypes.rdf"; //$NON-NLS-1$
+ static final String PLUGINS_DIR = "plugins"; //$NON-NLS-1$
+ static final String USER_PLUGINS_DIR = ".mozilla" + SEPARATOR_OS + "plugins"; //$NON-NLS-1$ //$NON-NLS-2$
+ static final String PREFERENCES_FILE = "prefs.js"; //$NON-NLS-1$
+
+ static boolean IsSparc;
+ static {
+ String osName = System.getProperty ("os.name").toLowerCase (); //$NON-NLS-1$
+ String osArch = System.getProperty ("os.arch").toLowerCase (); //$NON-NLS-1$
+ IsSparc = (osName.startsWith ("sunos") || osName.startsWith ("solaris")) && osArch.startsWith("sparc"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+
+AppFileLocProvider (String path) {
+ mozillaPath = path + SEPARATOR_OS;
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ directoryServiceProvider = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return getFile (args[0], args[1], args[2]);}
+ };
+
+ directoryServiceProvider2 = new XPCOMObject (new int[] {2, 0, 0, 3, 2}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return getFile (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return getFiles (args[0], args[1]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (directoryServiceProvider != null) {
+ directoryServiceProvider.dispose ();
+ directoryServiceProvider = null;
+ }
+ if (directoryServiceProvider2 != null) {
+ directoryServiceProvider2.dispose ();
+ directoryServiceProvider2 = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return directoryServiceProvider.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIDirectoryServiceProvider.NS_IDIRECTORYSERVICEPROVIDER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {directoryServiceProvider.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIDirectoryServiceProvider2.NS_IDIRECTORYSERVICEPROVIDER2_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {directoryServiceProvider2.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+void setComponentsPath (String path) {
+ componentsPath = path;
+}
+
+void setProfilePath (String path) {
+ profilePath = path;
+ if (!Compatibility.fileExists (path, "")) { //$NON-NLS-1$
+ int /*long*/[] result = new int /*long*/[1];
+ nsEmbedString pathString = new nsEmbedString (path);
+ int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ pathString.dispose ();
+
+ nsILocalFile file = new nsILocalFile (result [0]);
+ rc = file.Create (nsILocalFile.DIRECTORY_TYPE, 0700);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ file.Release ();
+ }
+}
+
+/* nsIDirectoryServiceProvider2 */
+
+int getFiles (int /*long*/ prop, int /*long*/ _retval) {
+ int size = XPCOM.strlen (prop);
+ byte[] bytes = new byte[size];
+ XPCOM.memmove (bytes, prop, size);
+ String propertyName = new String (MozillaDelegate.mbcsToWcs (null, bytes));
+ String[] propertyValues = null;
+
+ if (propertyName.equals (XPCOM.NS_APP_PLUGINS_DIR_LIST)) {
+ if (pluginDirs == null) {
+ int index = 0;
+ /* set the first value(s) to the MOZ_PLUGIN_PATH environment variable value if it's defined */
+ int /*long*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_PLUGIN_PATH, true));
+ if (ptr != 0) {
+ int length = C.strlen (ptr);
+ byte[] buffer = new byte[length];
+ C.memmove (buffer, ptr, length);
+ String value = new String (MozillaDelegate.mbcsToWcs (null, buffer));
+ if (value.length () > 0) {
+ String separator = System.getProperty ("path.separator"); // $NON-NLS-1$
+ Vector segments = new Vector ();
+ int start, end = -1;
+ do {
+ start = end + 1;
+ end = value.indexOf (separator, start);
+ String segment;
+ if (end == -1) {
+ segment = value.substring (start);
+ } else {
+ segment = value.substring (start, end);
+ }
+ if (segment.length () > 0) segments.addElement (segment);
+ } while (end != -1);
+ int segmentsSize = segments.size ();
+ pluginDirs = new String [segmentsSize + (IsSparc ? 1 : 2)];
+ for (index = 0; index < segmentsSize; index++) {
+ pluginDirs[index] = (String)segments.elementAt (index);
+ }
+ }
+ }
+ if (pluginDirs == null) {
+ pluginDirs = new String[IsSparc ? 1 : 2];
+ }
+
+ /* set the next value to the GRE path + "plugins" */
+
+ /*
+ * Bug on Solaris SPARC. Attempting to start the java plug-in fails with an
+ * error indicating that PR_NewMonitor could not be found. This is a well-
+ * known problem that many other apps have also encountered, with no
+ * resolution other than to remove this plug-in. The Browser workaround is
+ * to not add the directory containing this plug-in to the plug-in search path.
+ */
+ if (!IsSparc) {
+ pluginDirs[index++] = mozillaPath + PLUGINS_DIR;
+ }
+
+ /* set the next value to the home directory + "/.mozilla/plugins" */
+ pluginDirs[index++] = System.getProperty("user.home") + SEPARATOR_OS + USER_PLUGINS_DIR;
+ }
+ propertyValues = pluginDirs;
+ }
+
+ XPCOM.memmove(_retval, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ if (propertyValues != null) {
+ int /*long*/[] result = new int /*long*/[1];
+ nsISupports[] files = new nsISupports [propertyValues.length];
+ int index = 0;
+ for (int i = 0; i < propertyValues.length; i++) {
+ nsEmbedString pathString = new nsEmbedString (propertyValues[i]);
+ int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, result);
+ if (rc != XPCOM.NS_ERROR_FILE_UNRECOGNIZED_PATH) {
+ /* value appears to be a valid pathname */
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+
+ nsILocalFile localFile = new nsILocalFile (result[0]);
+ result[0] = 0;
+ rc = localFile.QueryInterface (nsIFile.NS_IFILE_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+ localFile.Release ();
+
+ nsIFile file = new nsIFile (result[0]);
+ files[index++] = file;
+ }
+ pathString.dispose ();
+ result[0] = 0;
+ }
+
+ if (index < propertyValues.length) {
+ /* there were some invalid values so remove the trailing empty array slots */
+ nsISupports[] temp = new nsISupports [index];
+ System.arraycopy (files, 0, temp, 0, index);
+ files = temp;
+ }
+
+ SimpleEnumerator enumerator = new SimpleEnumerator (files);
+ enumerator.AddRef ();
+ XPCOM.memmove (_retval, new int /*long*/[] {enumerator.getAddress ()}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+ }
+
+ return XPCOM.NS_ERROR_FAILURE;
+}
+
+/* nsIDirectoryServiceProvider implementation */
+
+int getFile(int /*long*/ prop, int /*long*/ persistent, int /*long*/ _retval) {
+ int size = XPCOM.strlen (prop);
+ byte[] bytes = new byte[size];
+ XPCOM.memmove (bytes, prop, size);
+ String propertyName = new String (MozillaDelegate.mbcsToWcs (null, bytes));
+ String propertyValue = null;
+
+ if (propertyName.equals (XPCOM.NS_APP_HISTORY_50_FILE)) {
+ propertyValue = profilePath + HISTORY_FILE;
+ } else if (propertyName.equals (XPCOM.NS_APP_USER_MIMETYPES_50_FILE)) {
+ propertyValue = profilePath + MIMETYPES_FILE;
+ } else if (propertyName.equals (XPCOM.NS_APP_PREFS_50_FILE)) {
+ propertyValue = profilePath + PREFERENCES_FILE;
+ } else if (propertyName.equals (XPCOM.NS_APP_PREFS_50_DIR)) {
+ propertyValue = profilePath;
+ } else if (propertyName.equals (XPCOM.NS_APP_USER_CHROME_DIR)) {
+ propertyValue = profilePath + CHROME_DIR;
+ } else if (propertyName.equals (XPCOM.NS_APP_USER_PROFILE_50_DIR)) {
+ propertyValue = profilePath;
+ } else if (propertyName.equals (XPCOM.NS_APP_LOCALSTORE_50_FILE)) {
+ propertyValue = profilePath + LOCALSTORE_FILE;
+ } else if (propertyName.equals (XPCOM.NS_APP_CACHE_PARENT_DIR)) {
+ propertyValue = profilePath;
+ } else if (propertyName.equals (XPCOM.NS_OS_HOME_DIR)) {
+ propertyValue = System.getProperty("user.home"); //$NON-NLS-1$
+ } else if (propertyName.equals (XPCOM.NS_OS_TEMP_DIR)) {
+ propertyValue = System.getProperty("java.io.tmpdir"); //$NON-NLS-1$
+ } else if (propertyName.equals (XPCOM.NS_GRE_DIR)) {
+ propertyValue = mozillaPath;
+ } else if (propertyName.equals (XPCOM.NS_GRE_COMPONENT_DIR)) {
+ propertyValue = componentsPath != null ? componentsPath : mozillaPath + COMPONENTS_DIR;
+ } else if (propertyName.equals (XPCOM.NS_XPCOM_INIT_CURRENT_PROCESS_DIR)) {
+ propertyValue = mozillaPath;
+ } else if (propertyName.equals (XPCOM.NS_OS_CURRENT_PROCESS_DIR)) {
+ propertyValue = mozillaPath;
+ } else if (propertyName.equals (XPCOM.NS_XPCOM_COMPONENT_DIR)) {
+ propertyValue = mozillaPath + COMPONENTS_DIR;
+ } else if (propertyName.equals (XPCOM.NS_XPCOM_CURRENT_PROCESS_DIR)) {
+ propertyValue = mozillaPath;
+ } else if (propertyName.equals (XPCOM.NS_APP_PREF_DEFAULTS_50_DIR)) {
+ /*
+ * Answering a value for this property causes problems in Mozilla versions
+ * < 1.7. Unfortunately this property is queried early enough in the
+ * Browser creation process that the Mozilla version being used is not
+ * yet determined. However it is known if XULRunner is being used or not.
+ *
+ * For now answer a value for this property iff XULRunner is the GRE.
+ * If the range of Mozilla versions supported by the Browser is changed
+ * in the future to be >= 1.7 then this value can always be answered.
+ */
+ if (isXULRunner) propertyValue = profilePath;
+ }
+
+ XPCOM.memmove (persistent, new int[] {1}, 4); /* PRBool */
+ XPCOM.memmove (_retval, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ if (propertyValue != null && propertyValue.length () > 0) {
+ int /*long*/[] result = new int /*long*/[1];
+ nsEmbedString pathString = new nsEmbedString (propertyValue);
+ int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ pathString.dispose ();
+
+ nsILocalFile localFile = new nsILocalFile (result [0]);
+ result[0] = 0;
+ rc = localFile.QueryInterface (nsIFile.NS_IFILE_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ XPCOM.memmove (_retval, new int /*long*/[] {result[0]}, C.PTR_SIZEOF);
+ localFile.Release ();
+ return XPCOM.NS_OK;
+ }
+
+ return XPCOM.NS_ERROR_FAILURE;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Download.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Download.java
new file mode 100644
index 0000000000..b648b3329f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Download.java
@@ -0,0 +1,375 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.layout.*;
+import org.eclipse.swt.widgets.*;
+
+/**
+ * This class implements the nsIDownload interface for mozilla
+ * versions 1.4 - 1.7.x. For mozilla version 1.8.x this interface
+ * is implemented by class nsIDownload_1_8. Later versions of
+ * mozilla do not need to call this interface.
+ */
+class Download {
+ XPCOMObject supports;
+ XPCOMObject download;
+ XPCOMObject progressDialog;
+ XPCOMObject webProgressListener;
+ nsIHelperAppLauncher helperAppLauncher;
+ int refCount = 0;
+
+ Shell shell;
+ Label status;
+ Button cancel;
+
+Download () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ download = new XPCOMObject (new int[] {2, 0, 0, 7, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Init (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetSource (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return GetTarget (args[0]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetPersist (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return GetPercentComplete (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetDisplayName (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetDisplayName (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetStartTime (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return GetMIMEInfo (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetListener (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return SetListener (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetObserver (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return SetObserver (args[0]);}
+ };
+
+ progressDialog = new XPCOMObject (new int[] {2, 0, 0, 7, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Init (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetSource (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return GetTarget (args[0]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetPersist (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return GetPercentComplete (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetDisplayName (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetDisplayName (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetStartTime (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return GetMIMEInfo (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetListener (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return SetListener (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetObserver (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return SetObserver (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return Open (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return GetCancelDownloadOnClose (args[0]);}
+ public int /*long*/ method18 (int /*long*/[] args) {return SetCancelDownloadOnClose ((int)/*64*/args[0]);}
+ public int /*long*/ method19 (int /*long*/[] args) {return GetDialog (args[0]);}
+ public int /*long*/ method20 (int /*long*/[] args) {return SetDialog (args[0]);}
+ };
+
+ webProgressListener = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3], (int)/*64*/args[4], (int)/*64*/args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], (int)/*64*/args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], (int)/*64*/args[2]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (download != null) {
+ download.dispose ();
+ download = null;
+ }
+ if (progressDialog != null) {
+ progressDialog.dispose ();
+ progressDialog = null;
+ }
+ if (webProgressListener != null) {
+ webProgressListener.dispose ();
+ webProgressListener = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return progressDialog.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIDownload.NS_IDOWNLOAD_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {download.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIProgressDialog.NS_IPROGRESSDIALOG_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {progressDialog.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webProgressListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIDownload */
+
+/* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
+int Init (int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, int /*long*/ startTime1, int /*long*/ startTime2, int /*long*/ aPersist) {
+ nsIURI source = new nsIURI (aSource);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ int rc = source.GetHost (aSpec);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ byte[] dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ String url = new String (dest);
+
+ /*
+ * As of mozilla 1.7 the second argument of the nsIDownload interface's
+ * Init function changed from nsILocalFile to nsIURI. Detect which of
+ * these interfaces the second argument implements and act accordingly.
+ */
+ String filename = null;
+ nsISupports supports = new nsISupports (aTarget);
+ int /*long*/[] result = new int /*long*/[1];
+ rc = supports.QueryInterface (nsIURI.NS_IURI_IID, result);
+ if (rc == XPCOM.NS_OK) { /* >= 1.7 */
+ nsIURI target = new nsIURI (result[0]);
+ result[0] = 0;
+ int /*long*/ aPath = XPCOM.nsEmbedCString_new ();
+ rc = target.GetPath (aPath);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ length = XPCOM.nsEmbedCString_Length (aPath);
+ buffer = XPCOM.nsEmbedCString_get (aPath);
+ dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aPath);
+ filename = new String (dest);
+ int separator = filename.lastIndexOf (System.getProperty ("file.separator")); //$NON-NLS-1$
+ filename = filename.substring (separator + 1);
+ target.Release ();
+ } else { /* < 1.7 */
+ nsILocalFile target = new nsILocalFile (aTarget);
+ int /*long*/ aNativeTarget = XPCOM.nsEmbedCString_new ();
+ rc = target.GetNativeLeafName (aNativeTarget);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ length = XPCOM.nsEmbedCString_Length (aNativeTarget);
+ buffer = XPCOM.nsEmbedCString_get (aNativeTarget);
+ dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aNativeTarget);
+ filename = new String (dest);
+ }
+
+ Listener listener = new Listener () {
+ public void handleEvent (Event event) {
+ if (event.widget == cancel) {
+ shell.close ();
+ }
+ if (helperAppLauncher != null) {
+ helperAppLauncher.Cancel ();
+ helperAppLauncher.Release ();
+ }
+ shell = null;
+ helperAppLauncher = null;
+ }
+ };
+ shell = new Shell (SWT.DIALOG_TRIM);
+ String msg = Compatibility.getMessage ("SWT_Download_File", new Object[] {filename}); //$NON-NLS-1$
+ shell.setText (msg);
+ GridLayout gridLayout = new GridLayout ();
+ gridLayout.marginHeight = 15;
+ gridLayout.marginWidth = 15;
+ gridLayout.verticalSpacing = 20;
+ shell.setLayout(gridLayout);
+ msg = Compatibility.getMessage ("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
+ new Label (shell, SWT.SIMPLE).setText (msg);
+ status = new Label (shell, SWT.SIMPLE);
+ msg = Compatibility.getMessage ("SWT_Download_Started"); //$NON-NLS-1$
+ status.setText (msg);
+ GridData data = new GridData ();
+ data.grabExcessHorizontalSpace = true;
+ data.grabExcessVerticalSpace = true;
+ status.setLayoutData (data);
+
+ cancel = new Button (shell, SWT.PUSH);
+ cancel.setText (SWT.getMessage ("SWT_Cancel")); //$NON-NLS-1$
+ data = new GridData ();
+ data.horizontalAlignment = GridData.CENTER;
+ cancel.setLayoutData (data);
+ cancel.addListener (SWT.Selection, listener);
+ shell.addListener (SWT.Close, listener);
+ shell.pack ();
+ shell.open ();
+ return XPCOM.NS_OK;
+}
+
+int GetSource (int /*long*/ aSource) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetTarget (int /*long*/ aTarget) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetPersist (int /*long*/ aPersist) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetPercentComplete (int /*long*/ aPercentComplete) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetDisplayName (int /*long*/ aDisplayName) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetDisplayName (int /*long*/ aDisplayName) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetStartTime (int /*long*/ aStartTime) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetMIMEInfo (int /*long*/ aMIMEInfo) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetListener (int /*long*/ aListener) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetListener (int /*long*/ aListener) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetObserver (int /*long*/ aObserver) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetObserver (int /*long*/ aObserver) {
+ if (aObserver != 0) {
+ nsISupports supports = new nsISupports (aObserver);
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = supports.QueryInterface (nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+ helperAppLauncher = new nsIHelperAppLauncher (result[0]);
+ }
+ return XPCOM.NS_OK;
+}
+
+/* nsIProgressDialog */
+int Open (int /*long*/ aParent) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetCancelDownloadOnClose (int /*long*/ aCancelDownloadOnClose) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetCancelDownloadOnClose (int aCancelDownloadOnClose) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetDialog (int /*long*/ aDialog) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetDialog (int /*long*/ aDialog) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* nsIWebProgressListener */
+
+int OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStateFlags, int aStatus) {
+ if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
+ if (helperAppLauncher != null) helperAppLauncher.Release ();
+ helperAppLauncher = null;
+ if (shell != null && !shell.isDisposed ()) shell.dispose ();
+ shell = null;
+ }
+ return XPCOM.NS_OK;
+}
+
+int OnProgressChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress) {
+ int currentKBytes = aCurTotalProgress / 1024;
+ int totalKBytes = aMaxTotalProgress / 1024;
+ if (shell != null && !shell.isDisposed ()) {
+ Object[] arguments = {new Integer (currentKBytes), new Integer (totalKBytes)};
+ String statusMsg = Compatibility.getMessage ("SWT_Download_Status", arguments); //$NON-NLS-1$
+ status.setText (statusMsg);
+ shell.layout (true);
+ shell.getDisplay ().update ();
+ }
+ return XPCOM.NS_OK;
+}
+
+int OnLocationChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
+ return XPCOM.NS_OK;
+}
+
+int OnStatusChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStatus, int /*long*/ aMessage) {
+ return XPCOM.NS_OK;
+}
+
+int OnSecurityChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int state) {
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/DownloadFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/DownloadFactory.java
new file mode 100644
index 0000000000..901786c1d3
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/DownloadFactory.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+
+class DownloadFactory {
+ XPCOMObject supports;
+ XPCOMObject factory;
+ int refCount = 0;
+
+DownloadFactory () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory ((int)/*64*/args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (factory != null) {
+ factory.dispose ();
+ factory = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return factory.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIFactory */
+
+int CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ Download download = new Download ();
+ download.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {download.getAddress ()}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int LockFactory (int lock) {
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/DownloadFactory_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/DownloadFactory_1_8.java
new file mode 100644
index 0000000000..1af00696d7
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/DownloadFactory_1_8.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+
+class DownloadFactory_1_8 {
+ XPCOMObject supports;
+ XPCOMObject factory;
+ int refCount = 0;
+
+DownloadFactory_1_8 () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory ((int)/*64*/args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (factory != null) {
+ factory.dispose ();
+ factory = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return factory.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIFactory */
+
+int CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ Download_1_8 download = new Download_1_8 ();
+ download.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {download.getAddress ()}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int LockFactory (int lock) {
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Download_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Download_1_8.java
new file mode 100644
index 0000000000..82819f1095
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Download_1_8.java
@@ -0,0 +1,397 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.layout.*;
+import org.eclipse.swt.widgets.*;
+
+/**
+ * This class implements the nsIDownload interface for mozilla
+ * version 1.8.x. For mozilla versions 1.4 - 1.7.x this interface
+ * is implemented by class nsIDownload. Mozilla versions later
+ * than 1.8.x do not need to call this interface.
+ */
+class Download_1_8 {
+ XPCOMObject supports;
+ XPCOMObject download;
+ XPCOMObject progressDialog;
+ XPCOMObject webProgressListener;
+ nsICancelable cancelable;
+ int refCount = 0;
+
+ Shell shell;
+ Label status;
+ Button cancel;
+
+ static final boolean is32 = C.PTR_SIZEOF == 4;
+
+Download_1_8 () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ download = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3, is32 ? 10 : 6, is32 ? 8 : 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3], (int)/*64*/args[4], (int)/*64*/args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], (int)/*64*/args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], (int)/*64*/args[2]);}
+ public int /*long*/ method8 (int /*long*/[] args) {
+ if (args.length == 10) {
+ return OnProgressChange64_32 (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
+ } else {
+ return OnProgressChange64 (args[0], args[1], args[2], args[3], args[4], args[5]);
+ }
+ }
+ public int /*long*/ method9 (int /*long*/[] args) {
+ if (args.length == 8) {
+ return Init_32 (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
+ } else {
+ return Init (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
+ }
+ }
+ public int /*long*/ method10 (int /*long*/[] args) {return GetTargetFile (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return GetPercentComplete (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetAmountTransferred (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return GetSize (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetSource (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return GetTarget (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return GetCancelable (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return GetDisplayName (args[0]);}
+ public int /*long*/ method18 (int /*long*/[] args) {return GetStartTime (args[0]);}
+ public int /*long*/ method19 (int /*long*/[] args) {return GetMIMEInfo (args[0]);}
+ };
+
+ progressDialog = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3, is32 ? 10 : 6, is32 ? 8 : 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3], (int)/*64*/args[4], (int)/*64*/args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], (int)/*64*/args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], (int)/*64*/args[2]);}
+ public int /*long*/ method8 (int /*long*/[] args) {
+ if (args.length == 10) {
+ return OnProgressChange64_32 (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
+ } else {
+ return OnProgressChange64 (args[0], args[1], args[2], args[3], args[4], args[5]);
+ }
+ }
+ public int /*long*/ method9 (int /*long*/[] args) {
+ if (args.length == 8) {
+ return Init_32 (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
+ } else {
+ return Init (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
+ }
+ }
+ public int /*long*/ method10 (int /*long*/[] args) {return GetTargetFile (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return GetPercentComplete (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetAmountTransferred (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return GetSize (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetSource (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return GetTarget (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return GetCancelable (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return GetDisplayName (args[0]);}
+ public int /*long*/ method18 (int /*long*/[] args) {return GetStartTime (args[0]);}
+ public int /*long*/ method19 (int /*long*/[] args) {return GetMIMEInfo (args[0]);}
+ public int /*long*/ method20 (int /*long*/[] args) {return Open (args[0]);}
+ public int /*long*/ method21 (int /*long*/[] args) {return GetCancelDownloadOnClose (args[0]);}
+ public int /*long*/ method22 (int /*long*/[] args) {return SetCancelDownloadOnClose ((int)/*64*/args[0]);}
+ public int /*long*/ method23 (int /*long*/[] args) {return GetObserver (args[0]);}
+ public int /*long*/ method24 (int /*long*/[] args) {return SetObserver (args[0]);}
+ public int /*long*/ method25 (int /*long*/[] args) {return GetDialog (args[0]);}
+ public int /*long*/ method26 (int /*long*/[] args) {return SetDialog (args[0]);}
+ };
+
+ webProgressListener = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3], (int)/*64*/args[4], (int)/*64*/args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], (int)/*64*/args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], (int)/*64*/args[2]);}
+ };
+}
+
+void disposeCOMInterfaces() {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (download != null) {
+ download.dispose ();
+ download = null;
+ }
+ if (progressDialog != null) {
+ progressDialog.dispose ();
+ progressDialog = null;
+ }
+ if (webProgressListener != null) {
+ webProgressListener.dispose ();
+ webProgressListener = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return progressDialog.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIDownload_1_8.NS_IDOWNLOAD_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {download.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIProgressDialog_1_8.NS_IPROGRESSDIALOG_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {progressDialog.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webProgressListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIDownload */
+
+/* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
+int Init_32 (int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, int /*long*/ startTime1, int /*long*/ startTime2, int /*long*/ aTempFile, int /*long*/ aCancelable) {
+ long startTime = (startTime2 << 32) + startTime1;
+ return Init (aSource, aTarget, aDisplayName, aMIMEInfo, startTime, aTempFile, aCancelable);
+}
+
+int Init (int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, long startTime, int /*long*/ aTempFile, int /*long*/ aCancelable) {
+ cancelable = new nsICancelable (aCancelable);
+ nsIURI source = new nsIURI (aSource);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ int rc = source.GetHost (aSpec);
+ if (rc != XPCOM.NS_OK) Mozilla.error(rc);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ byte[] dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ String url = new String (dest);
+
+ nsIURI target = new nsIURI (aTarget);
+ int /*long*/ aPath = XPCOM.nsEmbedCString_new ();
+ rc = target.GetPath (aPath);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ length = XPCOM.nsEmbedCString_Length (aPath);
+ buffer = XPCOM.nsEmbedCString_get (aPath);
+ dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aPath);
+ String filename = new String (dest);
+ int separator = filename.lastIndexOf (System.getProperty ("file.separator")); //$NON-NLS-1$
+ filename = filename.substring (separator + 1);
+
+ Listener listener = new Listener() {
+ public void handleEvent (Event event) {
+ if (event.widget == cancel) {
+ shell.close ();
+ }
+ if (cancelable != null) {
+ int rc = cancelable.Cancel (XPCOM.NS_BINDING_ABORTED);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ }
+ shell = null;
+ cancelable = null;
+ }
+ };
+ shell = new Shell (SWT.DIALOG_TRIM);
+ String msg = Compatibility.getMessage ("SWT_Download_File", new Object[] {filename}); //$NON-NLS-1$
+ shell.setText (msg);
+ GridLayout gridLayout = new GridLayout ();
+ gridLayout.marginHeight = 15;
+ gridLayout.marginWidth = 15;
+ gridLayout.verticalSpacing = 20;
+ shell.setLayout (gridLayout);
+ msg = Compatibility.getMessage ("SWT_Download_Location", new Object[] {filename, url}); //$NON-NLS-1$
+ new Label (shell, SWT.SIMPLE).setText (msg);
+ status = new Label (shell, SWT.SIMPLE);
+ msg = Compatibility.getMessage ("SWT_Download_Started"); //$NON-NLS-1$
+ status.setText (msg);
+ GridData data = new GridData ();
+ data.grabExcessHorizontalSpace = true;
+ data.grabExcessVerticalSpace = true;
+ status.setLayoutData (data);
+
+ cancel = new Button (shell, SWT.PUSH);
+ cancel.setText (SWT.getMessage ("SWT_Cancel")); //$NON-NLS-1$
+ data = new GridData ();
+ data.horizontalAlignment = GridData.CENTER;
+ cancel.setLayoutData (data);
+ cancel.addListener (SWT.Selection, listener);
+ shell.addListener (SWT.Close, listener);
+ shell.pack ();
+ shell.open ();
+ return XPCOM.NS_OK;
+}
+
+int GetAmountTransferred (int /*long*/ arg0) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetCancelable (int /*long*/ arg0) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetDisplayName (int /*long*/ aDisplayName) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetMIMEInfo (int /*long*/ aMIMEInfo) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetPercentComplete (int /*long*/ aPercentComplete) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetSize (int /*long*/ arg0) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetSource (int /*long*/ aSource) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetStartTime (int /*long*/ aStartTime) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetTarget (int /*long*/ aTarget) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetTargetFile (int /*long*/ arg0) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* nsIProgressDialog */
+int GetCancelDownloadOnClose (int /*long*/ aCancelDownloadOnClose) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetDialog (int /*long*/ aDialog) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetObserver (int /*long*/ aObserver) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int Open (int /*long*/ aParent) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetCancelDownloadOnClose (int aCancelDownloadOnClose) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetDialog (int /*long*/ aDialog) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetObserver (int /*long*/ aObserver) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* nsIWebProgressListener */
+
+int OnLocationChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
+ return XPCOM.NS_OK;
+}
+
+int OnProgressChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress) {
+ return OnProgressChange64 (aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
+}
+
+/* Note. The last 4 args in the original interface are defined as PRInt64. These each translate into two java ints. */
+int OnProgressChange64_32 (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aCurSelfProgress1, int /*long*/ aCurSelfProgress2, int /*long*/ aMaxSelfProgress1, int /*long*/ aMaxSelfProgress2, int /*long*/ aCurTotalProgress1, int /*long*/ aCurTotalProgress2, int /*long*/ aMaxTotalProgress1, int /*long*/ aMaxTotalProgress2) {
+ long aCurSelfProgress = (aCurSelfProgress2 << 32) + aCurSelfProgress1;
+ long aMaxSelfProgress = (aMaxSelfProgress2 << 32) + aMaxSelfProgress1;
+ long aCurTotalProgress = (aCurTotalProgress2 << 32) + aCurTotalProgress1;
+ long aMaxTotalProgress = (aMaxTotalProgress2 << 32) + aMaxTotalProgress1;
+ return OnProgressChange64 (aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
+}
+
+int OnProgressChange64 (int /*long*/ aWebProgress, int /*long*/ aRequest, long aCurSelfProgress, long aMaxSelfProgress, long aCurTotalProgress, long aMaxTotalProgress) {
+ long currentKBytes = aCurTotalProgress / 1024;
+ long totalKBytes = aMaxTotalProgress / 1024;
+ if (shell != null && !shell.isDisposed ()) {
+ Object[] arguments = {new Long (currentKBytes), new Long (totalKBytes)};
+ String statusMsg = Compatibility.getMessage ("SWT_Download_Status", arguments); //$NON-NLS-1$
+ status.setText (statusMsg);
+ shell.layout (true);
+ shell.getDisplay ().update ();
+ }
+ return XPCOM.NS_OK;
+}
+
+int OnSecurityChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int state) {
+ return XPCOM.NS_OK;
+}
+
+int OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStateFlags, int aStatus) {
+ if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
+ cancelable = null;
+ if (shell != null && !shell.isDisposed ()) shell.dispose ();
+ shell = null;
+ }
+ return XPCOM.NS_OK;
+}
+
+int OnStatusChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStatus, int /*long*/ aMessage) {
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/External.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/External.java
new file mode 100644
index 0000000000..53ed58f3b7
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/External.java
@@ -0,0 +1,590 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.*;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+
+class External {
+ public static final String EXTERNAL_IID_STR =
+ "ded01d20-ba6f-11dd-ad8b-0800200c9a66"; //$NON-NLS-1$
+
+ public static final nsID EXTERNAL_IID =
+ new nsID(EXTERNAL_IID_STR);
+
+ XPCOMObject supports;
+ XPCOMObject external;
+ XPCOMObject classInfo;
+ XPCOMObject securityCheckedComponent;
+ int refCount = 0;
+
+External () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ classInfo = new XPCOMObject (new int[] {2, 0, 0, 2, 2, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return getInterfaces (args[0], args[1]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return getHelperForLanguage ((int)/*64*/args[0], args[1]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return getContractID (args[0]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return getClassDescription (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return getClassID (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return getImplementationLanguage (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return getFlags (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return getClassIDNoAlloc (args[0]);}
+ };
+
+ securityCheckedComponent = new XPCOMObject (new int[] {2, 0, 0, 2, 3, 3, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return canCreateWrapper (args[0], args[1]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return canCallMethod (args[0], args[1], args[2]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return canGetProperty (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return canSetProperty (args[0], args[1], args[2]);}
+ };
+
+ external = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return callJava ((int)/*64*/args[0], args[1], args[2]);}
+ };
+
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (external != null) {
+ external.dispose ();
+ external = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return external.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIClassInfo.NS_ICLASSINFO_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {classInfo.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsISecurityCheckedComponent.NS_ISECURITYCHECKEDCOMPONENT_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {securityCheckedComponent.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (EXTERNAL_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {external.getAddress ()}, C.PTR_SIZEOF);
+ AddRef();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIClassInfo */
+
+int getClassDescription (int /*long*/ _retValue) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result[0]);
+ result[0] = 0;
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, "external", true); //$NON-NLS-1$
+ int /*long*/ ptr = memory.Alloc (bytes.length);
+ C.memmove (ptr, bytes, bytes.length);
+ C.memmove (_retValue, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
+ memory.Release ();
+
+ return XPCOM.NS_OK;
+}
+
+int getClassID (int /*long*/ _retValue) {
+ return XPCOM.NS_OK;
+}
+
+int getClassIDNoAlloc (int /*long*/ _retValue) {
+ return XPCOM.NS_OK;
+}
+
+int getContractID (int /*long*/ _retValue) {
+ return XPCOM.NS_OK;
+}
+
+int getFlags (int /*long*/ flags) {
+ C.memmove (flags, new int[] {nsIClassInfo.MAIN_THREAD_ONLY}, 4); /* PRUint32 */
+ return XPCOM.NS_OK;
+}
+
+int getHelperForLanguage (int language, int /*long*/ _retValue) {
+ C.memmove (_retValue, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int getImplementationLanguage (int /*long*/ _retValue) {
+ C.memmove (_retValue, new int[] {5}, 4); /* nsIProgrammingLanguage.JAVA */ /* PRUint */
+ return XPCOM.NS_OK;
+}
+
+
+int getInterfaces (int /*long*/ count, int /*long*/ array) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result[0]);
+ result[0] = 0;
+ int /*long*/ securityCheckedComponentIID = memory.Alloc (nsID.sizeof);
+ XPCOM.memmove (securityCheckedComponentIID, nsISecurityCheckedComponent.NS_ISECURITYCHECKEDCOMPONENT_IID, nsID.sizeof);
+ int /*long*/ externalIID = memory.Alloc (nsID.sizeof);
+ XPCOM.memmove (externalIID, EXTERNAL_IID, nsID.sizeof);
+ int /*long*/ ptrArray = memory.Alloc (2 * C.PTR_SIZEOF);
+ C.memmove (ptrArray, new int /*long*/[] {securityCheckedComponentIID}, C.PTR_SIZEOF);
+ C.memmove (ptrArray + C.PTR_SIZEOF, new int /*long*/[] {externalIID}, C.PTR_SIZEOF);
+ C.memmove (array, new int /*long*/[] {ptrArray}, C.PTR_SIZEOF);
+ memory.Release ();
+
+ C.memmove (count, new int[] {2}, 4); /* PRUint */
+ return XPCOM.NS_OK;
+}
+
+/* nsISecurityCheckedComponent */
+
+int canCreateWrapper (int /*long*/ iid, int /*long*/ _retVal) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result[0]);
+ result[0] = 0;
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, "allAccess", true); //$NON-NLS-1$
+ int /*long*/ ptr = memory.Alloc (bytes.length);
+ C.memmove (ptr, bytes, bytes.length);
+ C.memmove (_retVal, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
+ memory.Release ();
+
+ return XPCOM.NS_OK;
+}
+
+int canCallMethod (int /*long*/ iid, int /*long*/ methodName, int /*long*/ _retVal) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result[0]);
+ result[0] = 0;
+ int length = XPCOM.strlen_PRUnichar (methodName);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, methodName, length * 2);
+ String string = new String (dest);
+ byte[] bytes;
+ if (string.equals("callJava")) { //$NON-NLS-1$
+ bytes = MozillaDelegate.wcsToMbcs (null, "allAccess", true); //$NON-NLS-1$
+ } else {
+ bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$
+ }
+ int /*long*/ ptr = memory.Alloc (bytes.length);
+ C.memmove (ptr, bytes, bytes.length);
+ C.memmove (_retVal, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
+ memory.Release ();
+
+ return XPCOM.NS_OK;
+}
+
+int canGetProperty (int /*long*/ iid, int /*long*/ propertyName, int /*long*/ _retVal) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result[0]);
+ result[0] = 0;
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$
+ int /*long*/ ptr = memory.Alloc (bytes.length);
+ C.memmove (ptr, bytes, bytes.length);
+ C.memmove (_retVal, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
+ memory.Release ();
+
+ return XPCOM.NS_OK;
+}
+
+int canSetProperty (int /*long*/ iid, int /*long*/ propertyName, int /*long*/ _retVal) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result[0]);
+ result[0] = 0;
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$
+ int /*long*/ ptr = memory.Alloc (bytes.length);
+ C.memmove (ptr, bytes, bytes.length);
+ C.memmove (_retVal, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
+ memory.Release ();
+
+ return XPCOM.NS_OK;
+}
+
+/* external */
+
+Object convertToJava (nsIVariant variant, short type) {
+ switch (type) {
+ case nsIDataType.VTYPE_EMPTY:
+ case nsIDataType.VTYPE_VOID:
+ return null;
+ case nsIDataType.VTYPE_EMPTY_ARRAY:
+ return new Object[0];
+ case nsIDataType.VTYPE_BOOL:
+ int[] boolResult = new int[1]; /*PRInt32*/
+ int rc = variant.GetAsBool (boolResult);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return new Boolean (boolResult[0] != 0);
+ case nsIDataType.VTYPE_INT32:
+ int[] intResult = new int[1]; /*PRInt32*/
+ rc = variant.GetAsInt32 (intResult);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return new Double (intResult[0]);
+ case nsIDataType.VTYPE_DOUBLE:
+ int /*long*/ doubleReturn = C.malloc (8);
+ rc = variant.GetAsDouble (doubleReturn);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ double[] doubleResult = new double[1];
+ C.memmove (doubleResult, doubleReturn, 8);
+ C.free (doubleReturn);
+ return new Double (doubleResult[0]);
+ case nsIDataType.VTYPE_WSTRING_SIZE_IS:
+ int[] size = new int[1]; /* PRInt32 */
+ int /*long*/[] wString = new int /*long*/[1];
+ rc = variant.GetAsWStringWithSize (size, wString);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ char[] chars = new char[size[0]];
+ C.memmove (chars, wString[0], size[0] * 2);
+ return new String (chars);
+ case nsIDataType.VTYPE_ARRAY:
+ Object[] arrayReturn = new Object[0];
+ int /*long*/ iid = C.malloc (nsID.sizeof);
+ C.memset (iid, 0, nsID.sizeof);
+ int[] count = new int[1]; /* PRUint32 */
+ short[] currentType = new short[1];
+ int /*long*/[] ptr = new int /*long*/[1];
+ rc = variant.GetAsArray (currentType, iid, count, ptr);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (ptr[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ nsID id = new nsID ();
+ XPCOM.memmove (id, iid, nsID.sizeof);
+ C.free (iid);
+
+ int /*long*/[] result = new int /*long*/[1];
+ rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result[0]);
+ result[0] = 0;
+
+ if (id.Equals (nsIVariant.NS_IVARIANT_IID)) {
+ arrayReturn = new Object[count[0]];
+ for (int i = 0; i < count[0]; i++) {
+ int /*long*/[] arrayPtr = new int /*long*/[1];
+ C.memmove (arrayPtr, ptr[0] + i * C.PTR_SIZEOF, C.PTR_SIZEOF);
+ nsISupports supports = new nsISupports (arrayPtr[0]);
+ rc = supports.QueryInterface (nsIVariant.NS_IVARIANT_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIVariant currentVariant = new nsIVariant (result[0]);
+ result[0] = 0;
+ currentType[0] = 0;
+ rc = currentVariant.GetDataType (currentType);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ try {
+ arrayReturn[i] = convertToJava (currentVariant, currentType[0]);
+ currentVariant.Release ();
+ } catch (IllegalArgumentException e) {
+ /* invalid argument value type */
+ currentVariant.Release ();
+ memory.Free (ptr[0]);
+ memory.Release ();
+ throw e;
+ }
+ }
+ } else {
+ switch (currentType[0]) {
+ case nsIDataType.VTYPE_DOUBLE:
+ arrayReturn = new Object[count[0]];
+ for (int i = 0; i < count[0]; i++) {
+ double[] doubleValue = new double[1];
+ C.memmove (doubleValue, ptr[0] + i * 8, 8);
+ arrayReturn[i] = new Double (doubleValue[0]);
+ }
+ break;
+ case nsIDataType.VTYPE_BOOL:
+ arrayReturn = new Object[count[0]];
+ for (int i = 0; i < count[0]; i++) {
+ int[] boolValue = new int[1]; /* PRUInt32 */
+ C.memmove (boolValue, ptr[0] + i * 4, 4);
+ arrayReturn[i] = new Boolean (boolValue[0] != 0);
+ }
+ break;
+ case nsIDataType.VTYPE_INT32:
+ arrayReturn = new Object[count[0]];
+ for (int i = 0; i < count[0]; i++) {
+ int[] intValue = new int[1]; /* PRInt32 */
+ C.memmove (intValue, ptr[0] + i * 4, 4);
+ arrayReturn[i] = new Double (intValue[0]);
+ }
+ break;
+ case nsIDataType.VTYPE_WCHAR_STR:
+ arrayReturn = new Object[count[0]];
+ for (int i = 0; i < count[0]; i++) {
+ int /*long*/ currentPtr = ptr[0] + i * C.PTR_SIZEOF;
+ int /*long*/[] stringPtr = new int /*long*/[1];
+ C.memmove (stringPtr, currentPtr, C.PTR_SIZEOF);
+ int length = XPCOM.strlen_PRUnichar (stringPtr[0]);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, stringPtr[0], length * 2);
+ arrayReturn[i] = new String (dest);
+ }
+ break;
+ default:
+ memory.Free (ptr[0]);
+ memory.Release ();
+ SWT.error (SWT.ERROR_INVALID_ARGUMENT);
+ }
+ }
+ memory.Free (ptr[0]);
+ memory.Release ();
+ return arrayReturn;
+ }
+ SWT.error (SWT.ERROR_INVALID_ARGUMENT);
+ return null;
+}
+
+nsIVariant convertToJS (Object value, nsIComponentManager componentManager) {
+ int /*long*/[] result = new int /*long*/[1];
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_VARIANT_CONTRACTID, true);
+ int rc = componentManager.CreateInstanceByContractID (aContractID, 0, nsIWritableVariant.NS_IWRITABLEVARIANT_IID, result);
+ nsIWritableVariant variant = new nsIWritableVariant (result[0]);
+ result[0] = 0;
+
+ if (value == null) {
+ rc = variant.SetAsVoid ();
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return variant;
+ }
+ if (value instanceof String) {
+ String stringValue = (String)value;
+ int length = stringValue.length ();
+ char[] chars = new char[length];
+ stringValue.getChars (0, length, chars, 0);
+ rc = variant.SetAsWStringWithSize (length, chars);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return variant;
+ }
+ if (value instanceof Boolean) {
+ Boolean booleanValue = (Boolean)value;
+ rc = variant.SetAsBool (booleanValue.booleanValue () ? 1 : 0);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return variant;
+ }
+ if (value instanceof Number) {
+ Number numberValue = (Number)value;
+ rc = variant.SetAsDouble (numberValue.doubleValue ());
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return variant;
+ }
+ if (value instanceof Object[]) {
+ Object[] arrayValue = (Object[])value;
+ int length = arrayValue.length;
+ if (length > 0) {
+ int /*long*/ arrayPtr = C.malloc (C.PTR_SIZEOF * length);
+ for (int i = 0; i < length; i++) {
+ Object currentObject = arrayValue[i];
+ try {
+ nsIVariant currentVariant = convertToJS (currentObject, componentManager);
+ C.memmove (arrayPtr + C.PTR_SIZEOF * i, new int /*long*/[] {currentVariant.getAddress ()}, C.PTR_SIZEOF);
+ } catch (SWTException e) {
+ /* invalid return value type */
+ C.free (arrayPtr);
+ variant.Release ();
+ /* release the variants that had previously been added to the array */
+ for (int j = 0; j < i; j++) {
+ int /*long*/[] ptr = new int /*long*/[1];
+ C.memmove (ptr, arrayPtr + C.PTR_SIZEOF * j, C.PTR_SIZEOF);
+ new nsISupports (ptr[0]).Release ();
+ }
+ throw e;
+ }
+ }
+ int /*long*/ idPtr = C.malloc (nsID.sizeof);
+ XPCOM.memmove (idPtr, nsIVariant.NS_IVARIANT_IID, nsID.sizeof);
+ rc = variant.SetAsArray (nsIDataType.VTYPE_INTERFACE_IS, idPtr, length, arrayPtr);
+ C.free (idPtr);
+ C.free (arrayPtr);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return variant;
+ }
+ }
+
+ variant.Release ();
+ SWT.error (SWT.ERROR_INVALID_RETURN_VALUE);
+ return null;
+}
+
+int callJava (int functionId, int /*long*/ args, int /*long*/ returnPtr) {
+ Object key = new Integer (functionId);
+ BrowserFunction function = (BrowserFunction)Mozilla.AllFunctions.get (key);
+ Object returnValue = null;
+
+ if (function != null) {
+ short[] type = new short[1]; /* PRUint16 */
+ nsIVariant variant = new nsIVariant (args);
+ int rc = variant.GetDataType (type);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ try {
+ Object temp = (Object[])convertToJava (variant, type[0]);
+ if (temp instanceof Object[]) {
+ Object[] arguments = (Object[])temp;
+ try {
+ returnValue = function.function (arguments);
+ } catch (Exception e) {
+ /* exception during function invocation */
+ returnValue = WebBrowser.CreateErrorString (e.getLocalizedMessage ());
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ /* invalid argument value type */
+ if (function.isEvaluate) {
+ /* notify the evaluate function so that a java exception can be thrown */
+ function.function (new String[] {WebBrowser.CreateErrorString (new SWTException (SWT.ERROR_INVALID_RETURN_VALUE).getLocalizedMessage ())});
+ }
+ returnValue = WebBrowser.CreateErrorString (e.getLocalizedMessage ());
+ }
+ }
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetComponentManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ nsIComponentManager componentManager = new nsIComponentManager (result[0]);
+ result[0] = 0;
+ nsIVariant variant;
+ try {
+ variant = convertToJS (returnValue, componentManager);
+ } catch (SWTException e) {
+ /* invalid return value type */
+ variant = convertToJS (WebBrowser.CreateErrorString (e.getLocalizedMessage ()), componentManager);
+ }
+ componentManager.Release ();
+ C.memmove (returnPtr, new int /*long*/[] {variant.getAddress ()}, C.PTR_SIZEOF);
+
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/ExternalFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/ExternalFactory.java
new file mode 100644
index 0000000000..84462ec2f0
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/ExternalFactory.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+
+class ExternalFactory {
+ XPCOMObject supports;
+ XPCOMObject factory;
+ int refCount = 0;
+
+ExternalFactory () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory ((int)/*64*/args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (factory != null) {
+ factory.dispose ();
+ factory = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return factory.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIFactory */
+
+int CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ External external = new External ();
+ external.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {external.getAddress ()}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int LockFactory (int lock) {
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePicker.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePicker.java
new file mode 100644
index 0000000000..cb7b397ec9
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePicker.java
@@ -0,0 +1,306 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.widgets.*;
+
+class FilePicker {
+ XPCOMObject supports;
+ XPCOMObject filePicker;
+
+ int refCount = 0;
+ short mode;
+ int /*long*/ parentHandle;
+ String[] files, masks;
+ String defaultFilename, directory, title;
+
+ static final String SEPARATOR = System.getProperty ("file.separator"); //$NON-NLS-1$
+
+FilePicker () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ filePicker = new XPCOMObject (new int[] {2, 0, 0, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Init (args[0], args[1], (short)args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return AppendFilters ((int)/*64*/args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return AppendFilter (args[0], args[1]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetDefaultString (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return SetDefaultString (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetDefaultExtension (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetDefaultExtension (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetFilterIndex (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return SetFilterIndex ((int)/*64*/args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetDisplayDirectory (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return SetDisplayDirectory (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetFile (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return GetFileURL (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return GetFiles (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return Show (args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (filePicker != null) {
+ filePicker.dispose ();
+ filePicker = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return filePicker.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIFilePicker.NS_IFILEPICKER_IID)) {
+ XPCOM.memmove(ppvObject, new int /*long*/[] {filePicker.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIFilePicker_1_8.NS_IFILEPICKER_IID)) {
+ XPCOM.memmove(ppvObject, new int /*long*/[] {filePicker.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+Browser getBrowser (int /*long*/ aDOMWindow) {
+ if (aDOMWindow == 0) return null;
+ nsIDOMWindow window = new nsIDOMWindow (aDOMWindow);
+ return Mozilla.findBrowser (window);
+}
+
+/*
+ * As of Mozilla 1.8 some of nsIFilePicker's string arguments changed type. This method
+ * answers a java string based on the type of string that is appropriate for the Mozilla
+ * version being used.
+ */
+String parseAString (int /*long*/ string) {
+ return null;
+}
+
+/* nsIFilePicker */
+
+int Init (int /*long*/ parent, int /*long*/ title, short mode) {
+ parentHandle = parent;
+ this.mode = mode;
+ this.title = parseAString (title);
+ return XPCOM.NS_OK;
+}
+
+int Show (int /*long*/ _retval) {
+ if (mode == nsIFilePicker.modeGetFolder) {
+ /* picking a directory */
+ int result = showDirectoryPicker ();
+ XPCOM.memmove (_retval, new short[] {(short)result}, 2); /* PRInt16 */
+ return XPCOM.NS_OK;
+ }
+
+ /* picking a file */
+ int style = mode == nsIFilePicker.modeSave ? SWT.SAVE : SWT.OPEN;
+ if (mode == nsIFilePicker.modeOpenMultiple) style |= SWT.MULTI;
+ Browser browser = getBrowser (parentHandle);
+ Shell parent = null;
+ if (browser != null) {
+ parent = browser.getShell ();
+ } else {
+ parent = new Shell ();
+ }
+ FileDialog dialog = new FileDialog (parent, style);
+ if (title != null) dialog.setText (title);
+ if (directory != null) dialog.setFilterPath (directory);
+ if (masks != null) dialog.setFilterExtensions (masks);
+ if (defaultFilename != null) dialog.setFileName (defaultFilename);
+ String filename = dialog.open ();
+ files = dialog.getFileNames ();
+ directory = dialog.getFilterPath ();
+ title = defaultFilename = null;
+ masks = null;
+ int result = filename == null ? nsIFilePicker.returnCancel : nsIFilePicker.returnOK;
+ XPCOM.memmove (_retval, new short[] {(short)result}, 2); /* PRInt16 */
+ return XPCOM.NS_OK;
+}
+
+int showDirectoryPicker () {
+ Browser browser = getBrowser (parentHandle);
+ Shell parent = null;
+ if (browser != null) {
+ parent = browser.getShell ();
+ } else {
+ parent = new Shell ();
+ }
+ DirectoryDialog dialog = new DirectoryDialog (parent, SWT.NONE);
+ if (title != null) dialog.setText (title);
+ if (directory != null) dialog.setFilterPath (directory);
+ directory = dialog.open ();
+ title = defaultFilename = null;
+ files = masks = null;
+ return directory == null ? nsIFilePicker.returnCancel : nsIFilePicker.returnOK;
+}
+
+int GetFiles (int /*long*/ aFiles) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetFileURL (int /*long*/ aFileURL) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetFile (int /*long*/ aFile) {
+ String filename = ""; //$NON-NLS-1$
+ if (directory != null) filename += directory + SEPARATOR;
+ if (files != null && files.length > 0) filename += files[0];
+ nsEmbedString path = new nsEmbedString (filename);
+ int /*long*/[] file = new int /*long*/[1];
+ int rc = XPCOM.NS_NewLocalFile (path.getAddress (), 1, file);
+ path.dispose ();
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (file[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ XPCOM.memmove (aFile, file, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int SetDisplayDirectory (int /*long*/ aDisplayDirectory) {
+ if (aDisplayDirectory == 0) return XPCOM.NS_OK;
+ nsILocalFile file = new nsILocalFile (aDisplayDirectory);
+ int /*long*/ pathname = XPCOM.nsEmbedCString_new ();
+ file.GetNativePath (pathname);
+ int length = XPCOM.nsEmbedCString_Length (pathname);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (pathname);
+ byte[] bytes = new byte[length];
+ XPCOM.memmove (bytes, buffer, length);
+ XPCOM.nsEmbedCString_delete (pathname);
+ char[] chars = MozillaDelegate.mbcsToWcs (null, bytes);
+ directory = new String (chars);
+ return XPCOM.NS_OK;
+}
+
+int GetDisplayDirectory (int /*long*/ aDisplayDirectory) {
+ String directoryName = directory != null ? directory : ""; //$NON-NLS-1$
+ nsEmbedString path = new nsEmbedString (directoryName);
+ int /*long*/[] file = new int /*long*/[1];
+ int rc = XPCOM.NS_NewLocalFile (path.getAddress (), 1, file);
+ path.dispose ();
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (file[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ XPCOM.memmove (aDisplayDirectory, file, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int SetFilterIndex (int aFilterIndex) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetFilterIndex (int /*long*/ aFilterIndex) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetDefaultExtension (int /*long*/ aDefaultExtension) {
+ /* note that the type of argument 1 changed as of Mozilla 1.8 */
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetDefaultExtension (int /*long*/ aDefaultExtension) {
+ /* note that the type of argument 1 changed as of Mozilla 1.8 */
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetDefaultString (int /*long*/ aDefaultString) {
+ defaultFilename = parseAString (aDefaultString);
+ return XPCOM.NS_OK;
+}
+
+int GetDefaultString (int /*long*/ aDefaultString) {
+ /* note that the type of argument 1 changed as of Mozilla 1.8 */
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int AppendFilter (int /*long*/ title, int /*long*/ filter) {
+ /* note that the type of arguments 1 and 2 changed as of Mozilla 1.8 */
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int AppendFilters (int filterMask) {
+ String[] addFilters = null;
+ switch (filterMask) {
+ case nsIFilePicker.filterAll:
+ case nsIFilePicker.filterApps:
+ masks = null; /* this is equivalent to no filter */
+ break;
+ case nsIFilePicker.filterHTML:
+ addFilters = new String[] {"*.htm;*.html"}; //$NON-NLS-1$
+ break;
+ case nsIFilePicker.filterImages:
+ addFilters = new String[] {"*.gif;*.jpeg;*.jpg;*.png"}; //$NON-NLS-1$
+ break;
+ case nsIFilePicker.filterText:
+ addFilters = new String[] {"*.txt"}; //$NON-NLS-1$
+ break;
+ case nsIFilePicker.filterXML:
+ addFilters = new String[] {"*.xml"}; //$NON-NLS-1$
+ break;
+ case nsIFilePicker.filterXUL:
+ addFilters = new String[] {"*.xul"}; //$NON-NLS-1$
+ break;
+ }
+ if (masks == null) {
+ masks = addFilters;
+ } else {
+ if (addFilters != null) {
+ String[] newFilters = new String[masks.length + addFilters.length];
+ System.arraycopy (masks, 0, newFilters, 0, masks.length);
+ System.arraycopy (addFilters, 0, newFilters, masks.length, addFilters.length);
+ masks = newFilters;
+ }
+ }
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePickerFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePickerFactory.java
new file mode 100644
index 0000000000..44dbff17f9
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePickerFactory.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+
+class FilePickerFactory {
+ XPCOMObject supports;
+ XPCOMObject factory;
+ int refCount = 0;
+
+FilePickerFactory () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory ((int)/*64*/args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (factory != null) {
+ factory.dispose ();
+ factory = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return factory.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIFactory */
+
+int CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ FilePicker picker = new FilePicker ();
+ picker.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {picker.getAddress ()}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int LockFactory (int lock) {
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePickerFactory_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePickerFactory_1_8.java
new file mode 100644
index 0000000000..b47095b3b4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePickerFactory_1_8.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+
+class FilePickerFactory_1_8 extends FilePickerFactory {
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory ((int)/*64*/args[0]);}
+ };
+}
+
+/* nsIFactory */
+
+int CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ FilePicker_1_8 picker = new FilePicker_1_8 ();
+ picker.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {picker.getAddress ()}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePicker_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePicker_1_8.java
new file mode 100644
index 0000000000..a73840fd8c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/FilePicker_1_8.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.mozilla.*;
+
+class FilePicker_1_8 extends FilePicker {
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ filePicker = new XPCOMObject (new int[] {2, 0, 0, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Init (args[0], args[1], (short)args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return AppendFilters ((int)/*64*/args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return AppendFilter (args[0], args[1]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetDefaultString (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return SetDefaultString (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetDefaultExtension (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetDefaultExtension (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetFilterIndex (args[0]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return SetFilterIndex ((int)/*64*/args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return GetDisplayDirectory (args[0]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return SetDisplayDirectory (args[0]);}
+ public int /*long*/ method14 (int /*long*/[] args) {return GetFile (args[0]);}
+ public int /*long*/ method15 (int /*long*/[] args) {return GetFileURL (args[0]);}
+ public int /*long*/ method16 (int /*long*/[] args) {return GetFiles (args[0]);}
+ public int /*long*/ method17 (int /*long*/[] args) {return Show (args[0]);}
+ };
+}
+
+/*
+ * As of Mozilla 1.8 some of nsIFilePicker's string arguments changed type. This method
+ * answers a java string based on the type of string that is appropriate for the Mozilla
+ * version being used.
+ */
+String parseAString (int /*long*/ string) {
+ if (string == 0) return null;
+ int length = XPCOM.nsEmbedString_Length (string);
+ int /*long*/ buffer = XPCOM.nsEmbedString_get (string);
+ char[] chars = new char[length];
+ XPCOM.memmove (chars, buffer, length * 2);
+ return new String (chars);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialog.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialog.java
new file mode 100644
index 0000000000..706ec0898e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialog.java
@@ -0,0 +1,208 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.*;
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.widgets.*;
+
+/**
+ * This class implements the nsIHelperAppLauncherDialog interface for mozilla
+ * versions 1.4 - 1.8.x. For mozilla versions >= 1.9 this interface is
+ * implemented by class HelperAppLauncherDialog_1_9. HelperAppLauncherDialogFactory
+ * determines at runtime which of these classes to instantiate.
+ */
+class HelperAppLauncherDialog {
+ XPCOMObject supports;
+ XPCOMObject helperAppLauncherDialog;
+ int refCount = 0;
+
+HelperAppLauncherDialog () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ helperAppLauncherDialog = new XPCOMObject (new int[] {2, 0, 0, 3, 5}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Show (args[0], args[1], (int)/*64*/args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return PromptForSaveToFile (args[0], args[1], args[2], args[3], args[4]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (helperAppLauncherDialog != null) {
+ helperAppLauncherDialog.dispose ();
+ helperAppLauncherDialog = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return helperAppLauncherDialog.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIHelperAppLauncherDialog.NS_IHELPERAPPLAUNCHERDIALOG_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {helperAppLauncherDialog.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ /*
+ * Note. This instance lives as long as the download it is binded to.
+ * Its reference count is expected to go down to 0 when the download
+ * has completed or when it has been cancelled. E.g. when the user
+ * cancels the File Dialog, cancels or closes the Download Dialog
+ * and when the Download Dialog goes away after the download is completed.
+ */
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIHelperAppLauncherDialog */
+
+int Show (int /*long*/ aLauncher, int /*long*/ aContext, int aReason) {
+ /*
+ * The interface for nsIHelperAppLauncher changed as of mozilla 1.8. Query the received
+ * nsIHelperAppLauncher for the new interface, and if it is not found then fall back to
+ * the old interface.
+ */
+ nsISupports supports = new nsISupports (aLauncher);
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = supports.QueryInterface (nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
+ if (rc == XPCOM.NS_OK) { /* >= 1.8 */
+ nsIHelperAppLauncher_1_8 helperAppLauncher = new nsIHelperAppLauncher_1_8 (aLauncher);
+ rc = helperAppLauncher.SaveToDisk (0, 0);
+ helperAppLauncher.Release ();
+ return rc;
+ }
+ nsIHelperAppLauncher helperAppLauncher = new nsIHelperAppLauncher (aLauncher); /* < 1.8 */
+ return helperAppLauncher.SaveToDisk (0, 0);
+}
+
+int PromptForSaveToFile (int /*long*/ arg0, int /*long*/ arg1, int /*long*/ arg2, int /*long*/ arg3, int /*long*/ arg4) {
+ int /*long*/ aDefaultFile, aSuggestedFileExtension, _retval;
+ boolean hasLauncher = false;
+
+ /*
+ * The interface for nsIHelperAppLauncherDialog changed as of mozilla 1.5 when an
+ * extra argument was added to the PromptForSaveToFile method (this resulted in all
+ * subsequent arguments shifting right). The workaround is to provide an XPCOMObject
+ * that fits the newer API, and to use the first argument's type to infer whether
+ * the old or new nsIHelperAppLauncherDialog interface is being used (and by extension
+ * the ordering of the arguments). In mozilla >= 1.5 the first argument is an
+ * nsIHelperAppLauncher.
+ */
+ /*
+ * The interface for nsIHelperAppLauncher changed as of mozilla 1.8, so the first
+ * argument must be queried for both the old and new nsIHelperAppLauncher interfaces.
+ */
+ boolean using_1_8 = false;
+ nsISupports support = new nsISupports (arg0);
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = support.QueryInterface (nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
+ if (rc == XPCOM.NS_OK) {
+ using_1_8 = true;
+ hasLauncher = true;
+ new nsISupports (result[0]).Release ();
+ } else {
+ result[0] = 0;
+ rc = support.QueryInterface (nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
+ if (rc == XPCOM.NS_OK) {
+ hasLauncher = true;
+ new nsISupports (result[0]).Release ();
+ }
+ }
+ result[0] = 0;
+
+ if (hasLauncher) { /* >= 1.5 */
+ aDefaultFile = arg2;
+ aSuggestedFileExtension = arg3;
+ _retval = arg4;
+ } else { /* 1.4 */
+ aDefaultFile = arg1;
+ aSuggestedFileExtension = arg2;
+ _retval = arg3;
+ }
+
+ int length = XPCOM.strlen_PRUnichar (aDefaultFile);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aDefaultFile, length * 2);
+ String defaultFile = new String (dest);
+
+ length = XPCOM.strlen_PRUnichar (aSuggestedFileExtension);
+ dest = new char[length];
+ XPCOM.memmove (dest, aSuggestedFileExtension, length * 2);
+ String suggestedFileExtension = new String (dest);
+
+ Shell shell = new Shell ();
+ FileDialog fileDialog = new FileDialog (shell, SWT.SAVE);
+ fileDialog.setFileName (defaultFile);
+ fileDialog.setFilterExtensions (new String[] {suggestedFileExtension});
+ String name = fileDialog.open ();
+ shell.close ();
+ if (name == null) {
+ if (hasLauncher) {
+ if (using_1_8) {
+ nsIHelperAppLauncher_1_8 launcher = new nsIHelperAppLauncher_1_8 (arg0);
+ rc = launcher.Cancel (XPCOM.NS_BINDING_ABORTED);
+ } else {
+ nsIHelperAppLauncher launcher = new nsIHelperAppLauncher (arg0);
+ rc = launcher.Cancel ();
+ }
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return XPCOM.NS_OK;
+ }
+ return XPCOM.NS_ERROR_FAILURE;
+ }
+ nsEmbedString path = new nsEmbedString (name);
+ rc = XPCOM.NS_NewLocalFile (path.getAddress (), 1, result);
+ path.dispose ();
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ /* Our own nsIDownload has been registered during the Browser initialization. It will be invoked by Mozilla. */
+ XPCOM.memmove (_retval, result, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
new file mode 100644
index 0000000000..21008f0ea9
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+
+class HelperAppLauncherDialogFactory {
+ XPCOMObject supports;
+ XPCOMObject factory;
+ int refCount = 0;
+
+HelperAppLauncherDialogFactory () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory ((int)/*64*/args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (factory != null) {
+ factory.dispose ();
+ factory = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return factory.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIFactory */
+
+int CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ if (Mozilla.IsPre_1_9) {
+ HelperAppLauncherDialog helperAppLauncherDialog = new HelperAppLauncherDialog ();
+ helperAppLauncherDialog.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {helperAppLauncherDialog.getAddress ()}, C.PTR_SIZEOF);
+ } else {
+ HelperAppLauncherDialog_1_9 helperAppLauncherDialog = new HelperAppLauncherDialog_1_9 ();
+ helperAppLauncherDialog.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {helperAppLauncherDialog.getAddress ()}, C.PTR_SIZEOF);
+ }
+ return XPCOM.NS_OK;
+}
+
+int LockFactory (int lock) {
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java
new file mode 100644
index 0000000000..dd2e0cb89c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.*;
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.widgets.*;
+
+/**
+ * This class implements the nsIHelperAppLauncherDialog interface for mozilla
+ * versions >= 1.9. For mozilla versions 1.4 - 1.8.x this interface is
+ * implemented by class HelperAppLauncherDialog. HelperAppLauncherDialogFactory
+ * determines at runtime which of these classes to instantiate.
+ */
+class HelperAppLauncherDialog_1_9 {
+ XPCOMObject supports;
+ XPCOMObject helperAppLauncherDialog;
+ int refCount = 0;
+
+HelperAppLauncherDialog_1_9 () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ helperAppLauncherDialog = new XPCOMObject (new int[] {2, 0, 0, 3, 6}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Show (args[0], args[1], (int)/*64*/args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return PromptForSaveToFile (args[0], args[1], args[2], args[3], (int)/*64*/args[4], args[5]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (helperAppLauncherDialog != null) {
+ helperAppLauncherDialog.dispose ();
+ helperAppLauncherDialog = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return helperAppLauncherDialog.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIHelperAppLauncherDialog_1_9.NS_IHELPERAPPLAUNCHERDIALOG_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {helperAppLauncherDialog.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ /*
+ * Note. This instance lives as long as the download it is bound to.
+ * Its reference count is expected to go down to 0 when the download
+ * has completed or when it has been cancelled. E.g. when the user
+ * cancels the File Dialog, cancels or closes the Download Dialog
+ * and when the Download Dialog goes away after the download is completed.
+ */
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIHelperAppLauncherDialog */
+
+int Show (int /*long*/ aLauncher, int /*long*/ aContext, int aReason) {
+ nsIHelperAppLauncher_1_9 helperAppLauncher = new nsIHelperAppLauncher_1_9 (aLauncher);
+ return helperAppLauncher.SaveToDisk (0, 0);
+}
+
+int PromptForSaveToFile (int /*long*/ aLauncher, int /*long*/ aWindowContext, int /*long*/ aDefaultFileName, int /*long*/ aSuggestedFileExtension, int aForcePrompt, int /*long*/ _retval) {
+ int length = XPCOM.strlen_PRUnichar (aDefaultFileName);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aDefaultFileName, length * 2);
+ String defaultFile = new String (dest);
+
+ length = XPCOM.strlen_PRUnichar (aSuggestedFileExtension);
+ dest = new char[length];
+ XPCOM.memmove (dest, aSuggestedFileExtension, length * 2);
+ String suggestedFileExtension = new String (dest);
+
+ Shell shell = new Shell ();
+ FileDialog fileDialog = new FileDialog (shell, SWT.SAVE);
+ fileDialog.setFileName (defaultFile);
+ fileDialog.setFilterExtensions (new String[] {suggestedFileExtension});
+ String name = fileDialog.open ();
+ shell.close ();
+ if (name == null) {
+ nsIHelperAppLauncher_1_9 launcher = new nsIHelperAppLauncher_1_9 (aLauncher);
+ int rc = launcher.Cancel (XPCOM.NS_BINDING_ABORTED);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ return XPCOM.NS_ERROR_FAILURE;
+ }
+ nsEmbedString path = new nsEmbedString (name);
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_NewLocalFile (path.getAddress (), 1, result);
+ path.dispose ();
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ /* Our own nsIDownload has been registered during the Browser initialization. It will be invoked by Mozilla. */
+ XPCOM.memmove (_retval, result, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/InputStream.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/InputStream.java
new file mode 100644
index 0000000000..3440fbbd0f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/InputStream.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+
+class InputStream {
+ XPCOMObject inputStream;
+ int refCount = 0;
+
+ byte[] buffer;
+ int index = 0;
+
+InputStream (byte[] buffer) {
+ this.buffer = buffer;
+ index = 0;
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ inputStream = new XPCOMObject (new int[] {2, 0, 0, 0, 1, 3, 4, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Close ();}
+ public int /*long*/ method4 (int /*long*/[] args) {return Available (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return Read (args[0], (int)/*64*/args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return ReadSegments (args[0], args[1], (int)/*64*/args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return IsNonBlocking (args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (inputStream != null) {
+ inputStream.dispose ();
+ inputStream = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return inputStream.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {inputStream.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIInputStream.NS_IINPUTSTREAM_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {inputStream.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIInputStream implementation */
+
+int Close () {
+ buffer = null;
+ index = 0;
+ return XPCOM.NS_OK;
+}
+
+int Available (int /*long*/ _retval) {
+ int available = buffer == null ? 0 : buffer.length - index;
+ XPCOM.memmove (_retval, new int[] {available}, 4);
+ return XPCOM.NS_OK;
+}
+
+int Read(int /*long*/ aBuf, int aCount, int /*long*/ _retval) {
+ int max = Math.min (aCount, buffer == null ? 0 : buffer.length - index);
+ if (max > 0) {
+ byte[] src = new byte[max];
+ System.arraycopy (buffer, index, src, 0, max);
+ XPCOM.memmove (aBuf, src, max);
+ index += max;
+ }
+ XPCOM.memmove(_retval, new int[] {max}, 4);
+ return XPCOM.NS_OK;
+}
+
+int ReadSegments (int /*long*/ aWriter, int /*long*/ aClosure, int aCount, int /*long*/ _retval) {
+ int max = Math.min (aCount, buffer == null ? 0 : buffer.length - index);
+ int cnt = max;
+ while (cnt > 0) {
+ int[] aWriteCount = new int[1];
+ int /*long*/ rc = XPCOM.Call (aWriter, getAddress (), aClosure, buffer, index, cnt, aWriteCount);
+ if (rc != XPCOM.NS_OK) break;
+ index += aWriteCount[0];
+ cnt -= aWriteCount[0];
+ }
+ XPCOM.memmove (_retval, new int[] {max - cnt}, 4);
+ return XPCOM.NS_OK;
+}
+
+int IsNonBlocking (int /*long*/ _retval) {
+ /* blocking */
+ XPCOM.memmove (_retval, new int[] {0}, 4);
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java
new file mode 100644
index 0000000000..d9220a1c42
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java
@@ -0,0 +1,3820 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import java.io.*;
+import java.lang.reflect.*;
+import java.util.*;
+
+import org.eclipse.swt.*;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.graphics.*;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.internal.mozilla.init.*;
+import org.eclipse.swt.layout.*;
+
+class Mozilla extends WebBrowser {
+ int /*long*/ embedHandle;
+ nsIWebBrowser webBrowser;
+ Object webBrowserObject;
+ MozillaDelegate delegate;
+
+ /* Interfaces for this Mozilla embedding notification */
+ XPCOMObject supports;
+ XPCOMObject weakReference;
+ XPCOMObject webProgressListener;
+ XPCOMObject webBrowserChrome;
+ XPCOMObject webBrowserChromeFocus;
+ XPCOMObject embeddingSiteWindow;
+ XPCOMObject interfaceRequestor;
+ XPCOMObject supportsWeakReference;
+ XPCOMObject contextMenuListener;
+ XPCOMObject uriContentListener;
+ XPCOMObject tooltipListener;
+ XPCOMObject domEventListener;
+ int chromeFlags = nsIWebBrowserChrome.CHROME_DEFAULT;
+ int registerFunctionsOnState = 0;
+ int refCount, lastKeyCode, lastCharCode, authCount;
+ int /*long*/ request;
+ Point location, size;
+ boolean visible, isChild, ignoreDispose;
+ Shell tip = null;
+ Listener listener;
+ Vector unhookedDOMWindows = new Vector ();
+ String lastNavigateURL;
+ byte[] htmlBytes;
+
+ static nsIAppShell AppShell;
+ static AppFileLocProvider LocationProvider;
+ static WindowCreator2 WindowCreator;
+ static int BrowserCount, NextJSFunctionIndex = 1;
+ static Hashtable AllFunctions = new Hashtable ();
+ static boolean Initialized, IsPre_1_8, IsPre_1_9, PerformedVersionCheck, XPCOMWasGlued, XPCOMInitWasGlued;
+
+ /* XULRunner detect constants */
+ static final String GRERANGE_LOWER = "1.8.1.2"; //$NON-NLS-1$
+ static final String GRERANGE_LOWER_FALLBACK = "1.8"; //$NON-NLS-1$
+ static final boolean LowerRangeInclusive = true;
+ static final String GRERANGE_UPPER = "1.9.*"; //$NON-NLS-1$
+ static final boolean UpperRangeInclusive = true;
+
+ static final int MAX_PORT = 65535;
+ static final String SEPARATOR_OS = System.getProperty ("file.separator"); //$NON-NLS-1$
+ static final String ABOUT_BLANK = "about:blank"; //$NON-NLS-1$
+ static final String DISPOSE_LISTENER_HOOKED = "org.eclipse.swt.browser.Mozilla.disposeListenerHooked"; //$NON-NLS-1$
+ static final String PREFIX_JAVASCRIPT = "javascript:"; //$NON-NLS-1$
+ static final String PREFERENCE_CHARSET = "intl.charset.default"; //$NON-NLS-1$
+ static final String PREFERENCE_DISABLEOPENDURINGLOAD = "dom.disable_open_during_load"; //$NON-NLS-1$
+ static final String PREFERENCE_DISABLEOPENWINDOWSTATUSHIDE = "dom.disable_window_open_feature.status"; //$NON-NLS-1$
+ static final String PREFERENCE_DISABLEWINDOWSTATUSCHANGE = "dom.disable_window_status_change"; //$NON-NLS-1$
+ static final String PREFERENCE_LANGUAGES = "intl.accept_languages"; //$NON-NLS-1$
+ static final String PREFERENCE_PROXYHOST_FTP = "network.proxy.ftp"; //$NON-NLS-1$
+ static final String PREFERENCE_PROXYPORT_FTP = "network.proxy.ftp_port"; //$NON-NLS-1$
+ static final String PREFERENCE_PROXYHOST_HTTP = "network.proxy.http"; //$NON-NLS-1$
+ static final String PREFERENCE_PROXYPORT_HTTP = "network.proxy.http_port"; //$NON-NLS-1$
+ static final String PREFERENCE_PROXYHOST_SSL = "network.proxy.ssl"; //$NON-NLS-1$
+ static final String PREFERENCE_PROXYPORT_SSL = "network.proxy.ssl_port"; //$NON-NLS-1$
+ static final String PREFERENCE_PROXYTYPE = "network.proxy.type"; //$NON-NLS-1$
+ static final String PROFILE_AFTER_CHANGE = "profile-after-change"; //$NON-NLS-1$
+ static final String PROFILE_BEFORE_CHANGE = "profile-before-change"; //$NON-NLS-1$
+ static final String PROFILE_DIR = SEPARATOR_OS + "eclipse" + SEPARATOR_OS; //$NON-NLS-1$
+ static final String PROFILE_DO_CHANGE = "profile-do-change"; //$NON-NLS-1$
+ static final String PROPERTY_PROXYPORT = "network.proxy_port"; //$NON-NLS-1$
+ static final String PROPERTY_PROXYHOST = "network.proxy_host"; //$NON-NLS-1$
+ static final String SEPARATOR_LOCALE = "-"; //$NON-NLS-1$
+ static final String SHUTDOWN_PERSIST = "shutdown-persist"; //$NON-NLS-1$
+ static final String STARTUP = "startup"; //$NON-NLS-1$
+ static final String TOKENIZER_LOCALE = ","; //$NON-NLS-1$
+ static final String URI_FROMMEMORY = "file:///"; //$NON-NLS-1$
+ static final String XULRUNNER_PATH = "org.eclipse.swt.browser.XULRunnerPath"; //$NON-NLS-1$
+
+ // TEMPORARY CODE
+ static final String GRE_INITIALIZED = "org.eclipse.swt.browser.XULRunnerInitialized"; //$NON-NLS-1$
+
+ static {
+ MozillaClearSessions = new Runnable () {
+ public void run () {
+ if (!Initialized) return;
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_COOKIEMANAGER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsICookieManager.NS_ICOOKIEMANAGER_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsICookieManager manager = new nsICookieManager (result[0]);
+ result[0] = 0;
+ rc = manager.GetEnumerator (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ nsISimpleEnumerator enumerator = new nsISimpleEnumerator (result[0]);
+ int[] moreElements = new int[1]; /* PRBool */
+ rc = enumerator.HasMoreElements (moreElements);
+ if (rc != XPCOM.NS_OK) error (rc);
+ while (moreElements[0] != 0) {
+ result[0] = 0;
+ rc = enumerator.GetNext (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ nsICookie cookie = new nsICookie (result[0]);
+ long[] expires = new long[1];
+ rc = cookie.GetExpires (expires);
+ if (expires[0] == 0) {
+ /* indicates a session cookie */
+ int /*long*/ domain = XPCOM.nsEmbedCString_new ();
+ int /*long*/ name = XPCOM.nsEmbedCString_new ();
+ int /*long*/ path = XPCOM.nsEmbedCString_new ();
+ cookie.GetHost (domain);
+ cookie.GetName (name);
+ cookie.GetPath (path);
+ rc = manager.Remove (domain, name, path, 0);
+ XPCOM.nsEmbedCString_delete (domain);
+ XPCOM.nsEmbedCString_delete (name);
+ XPCOM.nsEmbedCString_delete (path);
+ if (rc != XPCOM.NS_OK) error (rc);
+ }
+ cookie.Release ();
+ rc = enumerator.HasMoreElements (moreElements);
+ if (rc != XPCOM.NS_OK) error (rc);
+ }
+ enumerator.Release ();
+ manager.Release ();
+ }
+ };
+
+ MozillaGetCookie = new Runnable() {
+ public void run() {
+ if (!Initialized) return;
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ rc = serviceManager.GetService (XPCOM.NS_IOSERVICE_CID, nsIIOService.NS_IIOSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIIOService ioService = new nsIIOService (result[0]);
+ result[0] = 0;
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, CookieUrl, false);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new (bytes, bytes.length);
+ rc = ioService.NewURI (aSpec, null, 0, result);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ ioService.Release ();
+ if (rc != XPCOM.NS_OK) {
+ serviceManager.Release ();
+ return;
+ }
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NULL_POINTER);
+
+ nsIURI aURI = new nsIURI (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_COOKIESERVICE_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsICookieService.NS_ICOOKIESERVICE_IID, result);
+ int /*long*/ cookieString;
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ nsICookieService cookieService = new nsICookieService (result[0]);
+ result[0] = 0;
+ rc = cookieService.GetCookieString (aURI.getAddress(), 0, result);
+ cookieService.Release ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) {
+ aURI.Release ();
+ serviceManager.Release ();
+ return;
+ }
+ cookieString = result[0];
+ } else {
+ result[0] = 0;
+ rc = serviceManager.GetServiceByContractID (aContractID, nsICookieService_1_9.NS_ICOOKIESERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsICookieService_1_9 cookieService = new nsICookieService_1_9 (result[0]);
+ result[0] = 0;
+ rc = cookieService.GetCookieString(aURI.getAddress(), 0, result);
+ cookieService.Release ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) {
+ aURI.Release ();
+ serviceManager.Release ();
+ return;
+ }
+ cookieString = result[0];
+ }
+ aURI.Release ();
+ serviceManager.Release ();
+ result[0] = 0;
+
+ int length = C.strlen (cookieString);
+ bytes = new byte[length];
+ XPCOM.memmove (bytes, cookieString, length);
+ C.free (cookieString);
+ String allCookies = new String (MozillaDelegate.mbcsToWcs (null, bytes));
+ StringTokenizer tokenizer = new StringTokenizer (allCookies, ";"); //$NON-NLS-1$
+ while (tokenizer.hasMoreTokens ()) {
+ String cookie = tokenizer.nextToken ();
+ int index = cookie.indexOf ('=');
+ if (index != -1) {
+ String name = cookie.substring (0, index).trim ();
+ if (name.equals (CookieName)) {
+ CookieValue = cookie.substring (index + 1).trim ();
+ return;
+ }
+ }
+ }
+ }
+ };
+
+ MozillaSetCookie = new Runnable() {
+ public void run() {
+ if (!Initialized) return;
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ rc = serviceManager.GetService (XPCOM.NS_IOSERVICE_CID, nsIIOService.NS_IIOSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIIOService ioService = new nsIIOService (result[0]);
+ result[0] = 0;
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, CookieUrl, false);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new (bytes, bytes.length);
+ rc = ioService.NewURI (aSpec, null, 0, result);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ ioService.Release ();
+ if (rc != XPCOM.NS_OK) {
+ serviceManager.Release ();
+ return;
+ }
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NULL_POINTER);
+
+ nsIURI aURI = new nsIURI(result[0]);
+ result[0] = 0;
+ byte[] aCookie = MozillaDelegate.wcsToMbcs (null, CookieValue, true);
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_COOKIESERVICE_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsICookieService.NS_ICOOKIESERVICE_IID, result);
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ nsICookieService cookieService = new nsICookieService (result[0]);
+ rc = cookieService.SetCookieString (aURI.getAddress(), 0, aCookie, 0);
+ cookieService.Release ();
+ } else {
+ result[0] = 0;
+ rc = serviceManager.GetServiceByContractID (aContractID, nsICookieService_1_9.NS_ICOOKIESERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsICookieService_1_9 cookieService = new nsICookieService_1_9 (result[0]);
+ rc = cookieService.SetCookieString(aURI.getAddress(), 0, aCookie, 0);
+ cookieService.Release ();
+ }
+ result[0] = 0;
+ aURI.Release ();
+ serviceManager.Release ();
+ CookieResult = rc == 0;
+ }
+ };
+ }
+
+public void create (Composite parent, int style) {
+ delegate = new MozillaDelegate (browser);
+ final Display display = parent.getDisplay ();
+
+ int /*long*/[] result = new int /*long*/[1];
+ if (!Initialized) {
+ boolean initLoaded = false;
+ boolean IsXULRunner = false;
+
+ String greInitialized = System.getProperty (GRE_INITIALIZED);
+ if ("true".equals (greInitialized)) { //$NON-NLS-1$
+ /*
+ * Another browser has already initialized xulrunner in this process,
+ * so just bind to it instead of trying to initialize a new one.
+ */
+ Initialized = true;
+ }
+
+ String mozillaPath = System.getProperty (XULRUNNER_PATH);
+ /*
+ * Browser clients that ship XULRunner in a plug-in must have an opportunity
+ * to set the org.eclipse.swt.browser.XULRunnerPath system property to point
+ * at their XULRunner before the first Mozilla-based Browser is created. To
+ * facilitate this, reflection is used to reference non-existent class
+ * org.eclipse.swt.browser.XULRunnerInitializer the first time a Mozilla-
+ * based Browser is created. A client wishing to use this hook can do so
+ * by creating a fragment of org.eclipse.swt that implements this class and
+ * sets the system property in its static initializer.
+ */
+ if (mozillaPath == null) {
+ try {
+ Class.forName ("org.eclipse.swt.browser.XULRunnerInitializer"); //$NON-NLS-1$
+ mozillaPath = System.getProperty (XULRUNNER_PATH);
+ } catch (ClassNotFoundException e) {
+ /* no fragment is providing this class, which is the typical case */
+ }
+ }
+
+ if (mozillaPath == null) {
+ try {
+ String libName = delegate.getSWTInitLibraryName ();
+ Library.loadLibrary (libName);
+ initLoaded = true;
+ } catch (UnsatisfiedLinkError e) {
+ /*
+ * If this library failed to load then do not attempt to detect a
+ * xulrunner to use. The Browser may still be usable if MOZILLA_FIVE_HOME
+ * points at a GRE.
+ */
+ }
+ } else {
+ mozillaPath += SEPARATOR_OS + delegate.getLibraryName ();
+ IsXULRunner = true;
+ }
+
+ if (initLoaded) {
+ /* attempt to discover a XULRunner to use as the GRE */
+ GREVersionRange range = new GREVersionRange ();
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_LOWER, true);
+ int /*long*/ lower = C.malloc (bytes.length);
+ C.memmove (lower, bytes, bytes.length);
+ range.lower = lower;
+ range.lowerInclusive = LowerRangeInclusive;
+
+ bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_UPPER, true);
+ int /*long*/ upper = C.malloc (bytes.length);
+ C.memmove (upper, bytes, bytes.length);
+ range.upper = upper;
+ range.upperInclusive = UpperRangeInclusive;
+
+ int length = XPCOMInit.PATH_MAX;
+ int /*long*/ greBuffer = C.malloc (length);
+ int /*long*/ propertiesPtr = C.malloc (2 * C.PTR_SIZEOF);
+ int rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, propertiesPtr, 0, greBuffer, length);
+
+ /*
+ * A XULRunner was not found that supports wrapping of XPCOM handles as JavaXPCOM objects.
+ * Drop the lower version bound and try to detect an earlier XULRunner installation.
+ */
+ if (rc != XPCOM.NS_OK) {
+ C.free (lower);
+ bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_LOWER_FALLBACK, true);
+ lower = C.malloc (bytes.length);
+ C.memmove (lower, bytes, bytes.length);
+ range.lower = lower;
+ rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, propertiesPtr, 0, greBuffer, length);
+ }
+
+ C.free (lower);
+ C.free (upper);
+ C.free (propertiesPtr);
+ if (rc == XPCOM.NS_OK) {
+ /* indicates that a XULRunner was found */
+ length = C.strlen (greBuffer);
+ bytes = new byte[length];
+ C.memmove (bytes, greBuffer, length);
+ mozillaPath = new String (MozillaDelegate.mbcsToWcs (null, bytes));
+ IsXULRunner = mozillaPath.length () > 0;
+
+ /*
+ * Test whether the detected XULRunner can be used as the GRE before loading swt's
+ * XULRunner library. If it cannot be used then fall back to attempting to use
+ * the GRE pointed to by MOZILLA_FIVE_HOME.
+ *
+ * One case where this will fail is attempting to use a 64-bit xulrunner while swt
+ * is running in 32-bit mode, or vice versa.
+ */
+ if (IsXULRunner) {
+ byte[] path = MozillaDelegate.wcsToMbcs (null, mozillaPath, true);
+ rc = XPCOMInit.XPCOMGlueStartup (path);
+ if (rc != XPCOM.NS_OK) {
+ mozillaPath = mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
+ if (Device.DEBUG) System.out.println ("cannot use detected XULRunner: " + mozillaPath); //$NON-NLS-1$
+
+ /* attempt to XPCOMGlueStartup the GRE pointed at by MOZILLA_FIVE_HOME */
+ int /*long*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
+ if (ptr == 0) {
+ IsXULRunner = false;
+ } else {
+ length = C.strlen (ptr);
+ byte[] buffer = new byte[length];
+ C.memmove (buffer, ptr, length);
+ mozillaPath = new String (MozillaDelegate.mbcsToWcs (null, buffer));
+ /*
+ * Attempting to XPCOMGlueStartup a mozilla-based GRE != xulrunner can
+ * crash, so don't attempt unless the GRE appears to be xulrunner.
+ */
+ if (mozillaPath.indexOf("xulrunner") == -1) { //$NON-NLS-1$
+ IsXULRunner = false;
+ } else {
+ mozillaPath += SEPARATOR_OS + delegate.getLibraryName ();
+ path = MozillaDelegate.wcsToMbcs (null, mozillaPath, true);
+ rc = XPCOMInit.XPCOMGlueStartup (path);
+ if (rc != XPCOM.NS_OK) {
+ IsXULRunner = false;
+ mozillaPath = mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
+ if (Device.DEBUG) System.out.println ("failed to start as XULRunner: " + mozillaPath); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+ if (IsXULRunner) {
+ XPCOMInitWasGlued = true;
+ }
+ }
+ }
+ C.free (greBuffer);
+ }
+
+ if (IsXULRunner) {
+ if (Device.DEBUG) System.out.println ("XULRunner path: " + mozillaPath); //$NON-NLS-1$
+ try {
+ Library.loadLibrary ("swt-xulrunner"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError e) {
+ SWT.error (SWT.ERROR_NO_HANDLES, e);
+ }
+ byte[] path = MozillaDelegate.wcsToMbcs (null, mozillaPath, true);
+ int rc = XPCOM.XPCOMGlueStartup (path);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ XPCOMWasGlued = true;
+
+ /*
+ * Remove the trailing xpcom lib name from mozillaPath because the
+ * Mozilla.initialize and NS_InitXPCOM2 invocations require a directory name only.
+ */
+ mozillaPath = mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
+ } else {
+ if ((style & SWT.MOZILLA) != 0) {
+ browser.dispose ();
+ String errorString = (mozillaPath != null && mozillaPath.length () > 0) ?
+ " [Failed to use detected XULRunner: " + mozillaPath + "]" :
+ " [Could not detect registered XULRunner to use]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SWT.error (SWT.ERROR_NO_HANDLES, null, errorString);
+ }
+
+ /* attempt to use the GRE pointed at by MOZILLA_FIVE_HOME */
+ int /*long*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
+ if (ptr != 0) {
+ int length = C.strlen (ptr);
+ byte[] buffer = new byte[length];
+ C.memmove (buffer, ptr, length);
+ mozillaPath = new String (MozillaDelegate.mbcsToWcs (null, buffer));
+ } else {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]"); //$NON-NLS-1$
+ }
+ if (Device.DEBUG) System.out.println ("Mozilla path: " + mozillaPath); //$NON-NLS-1$
+
+ /*
+ * Note. Embedding a Mozilla GTK1.2 causes a crash. The workaround
+ * is to check the version of GTK used by Mozilla by looking for
+ * the libwidget_gtk.so library used by Mozilla GTK1.2. Mozilla GTK2
+ * uses the libwidget_gtk2.so library.
+ */
+ if (Compatibility.fileExists (mozillaPath, "components/libwidget_gtk.so")) { //$NON-NLS-1$
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [Mozilla GTK2 required (GTK1.2 detected)]"); //$NON-NLS-1$
+ }
+
+ try {
+ Library.loadLibrary ("swt-mozilla"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError e) {
+ try {
+ /*
+ * The initial loadLibrary attempt may have failed as a result of the user's
+ * system not having libstdc++.so.6 installed, so try to load the alternate
+ * swt mozilla library that depends on libswtc++.so.5 instead.
+ */
+ Library.loadLibrary ("swt-mozilla-gcc3"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError ex) {
+ browser.dispose ();
+ /*
+ * Print the error from the first failed attempt since at this point it's
+ * known that the failure was not due to the libstdc++.so.6 dependency.
+ */
+ SWT.error (SWT.ERROR_NO_HANDLES, e, " [MOZILLA_FIVE_HOME='" + mozillaPath + "']"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ }
+
+ if (!Initialized) {
+ LocationProvider = new AppFileLocProvider (mozillaPath);
+ LocationProvider.AddRef ();
+
+ /* extract external.xpt to temp */
+ String tempPath = System.getProperty ("java.io.tmpdir"); //$NON-NLS-1$
+ File componentsDir = new File (tempPath, "eclipse/mozillaComponents"); //$NON-NLS-1$
+ java.io.InputStream is = Library.class.getResourceAsStream ("/external.xpt"); //$NON-NLS-1$
+ if (is != null) {
+ if (!componentsDir.exists ()) {
+ componentsDir.mkdirs ();
+ }
+ int read;
+ byte [] buffer = new byte [4096];
+ File file = new File (componentsDir, "external.xpt"); //$NON-NLS-1$
+ try {
+ FileOutputStream os = new FileOutputStream (file);
+ while ((read = is.read (buffer)) != -1) {
+ os.write(buffer, 0, read);
+ }
+ os.close ();
+ is.close ();
+ } catch (FileNotFoundException e) {
+ } catch (IOException e) {
+ }
+ }
+ if (componentsDir.exists () && componentsDir.isDirectory ()) {
+ LocationProvider.setComponentsPath (componentsDir.getAbsolutePath ());
+ }
+
+ int /*long*/[] retVal = new int /*long*/[1];
+ nsEmbedString pathString = new nsEmbedString (mozillaPath);
+ int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, retVal);
+ pathString.dispose ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (retVal[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_NULL_POINTER);
+ }
+
+ nsIFile localFile = new nsILocalFile (retVal[0]);
+ if (IsXULRunner) {
+ int size = XPCOM.nsDynamicFunctionLoad_sizeof ();
+ /* alloc memory for two structs, the second is empty to signify the end of the list */
+ int /*long*/ ptr = C.malloc (size * 2);
+ C.memset (ptr, 0, size * 2);
+ nsDynamicFunctionLoad functionLoad = new nsDynamicFunctionLoad ();
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, "XRE_InitEmbedding", true); //$NON-NLS-1$
+ functionLoad.functionName = C.malloc (bytes.length);
+ C.memmove (functionLoad.functionName, bytes, bytes.length);
+ functionLoad.function = C.malloc (C.PTR_SIZEOF);
+ C.memmove (functionLoad.function, new int /*long*/[] {0} , C.PTR_SIZEOF);
+ XPCOM.memmove (ptr, functionLoad, XPCOM.nsDynamicFunctionLoad_sizeof ());
+ XPCOM.XPCOMGlueLoadXULFunctions (ptr);
+ C.memmove (result, functionLoad.function, C.PTR_SIZEOF);
+ int /*long*/ functionPtr = result[0];
+ result[0] = 0;
+ C.free (functionLoad.function);
+ C.free (functionLoad.functionName);
+ C.free (ptr);
+ rc = XPCOM.Call (functionPtr, localFile.getAddress (), localFile.getAddress (), LocationProvider.getAddress (), 0, 0);
+ if (rc == XPCOM.NS_OK) {
+ System.setProperty (XULRUNNER_PATH, mozillaPath);
+ }
+ } else {
+ rc = XPCOM.NS_InitXPCOM2 (0, localFile.getAddress(), LocationProvider.getAddress ());
+ }
+ localFile.Release ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [MOZILLA_FIVE_HOME may not point at an embeddable GRE] [NS_InitEmbedding " + mozillaPath + " error " + rc + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ System.setProperty (GRE_INITIALIZED, "true"); //$NON-NLS-1$
+ }
+
+ /* If JavaXPCOM is detected then attempt to initialize it with the XULRunner being used */
+ if (IsXULRunner) {
+ try {
+ Class clazz = Class.forName ("org.mozilla.xpcom.Mozilla"); //$NON-NLS-1$
+ Method method = clazz.getMethod ("getInstance", new Class[0]); //$NON-NLS-1$
+ Object mozilla = method.invoke (null, new Object[0]);
+ method = clazz.getMethod ("getComponentManager", new Class[0]); //$NON-NLS-1$
+ try {
+ method.invoke (mozilla, new Object[0]);
+ } catch (InvocationTargetException e) {
+ /* indicates that JavaXPCOM has not been initialized yet */
+ Class fileClass = Class.forName ("java.io.File"); //$NON-NLS-1$
+ method = clazz.getMethod ("initialize", new Class[] {fileClass}); //$NON-NLS-1$
+ Constructor constructor = fileClass.getDeclaredConstructor (new Class[] {String.class});
+ Object argument = constructor.newInstance (new Object[] {mozillaPath});
+ method.invoke (mozilla, new Object[] {argument});
+ }
+ } catch (ClassNotFoundException e) {
+ /* JavaXPCOM is not on the classpath */
+ } catch (NoSuchMethodException e) {
+ /* the JavaXPCOM on the classpath does not implement initialize() */
+ } catch (IllegalArgumentException e) {
+ } catch (IllegalAccessException e) {
+ } catch (InvocationTargetException e) {
+ } catch (InstantiationException e) {
+ }
+ }
+
+ int rc = XPCOM.NS_GetComponentManager (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIComponentManager componentManager = new nsIComponentManager (result[0]);
+ result[0] = 0;
+ if (delegate.needsSpinup ()) {
+ /* nsIAppShell is discontinued as of xulrunner 1.9, so do not fail if it is not found */
+ rc = componentManager.CreateInstance (XPCOM.NS_APPSHELL_CID, 0, nsIAppShell.NS_IAPPSHELL_IID, result);
+ if (rc != XPCOM.NS_ERROR_NO_INTERFACE) {
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ AppShell = new nsIAppShell (result[0]);
+ rc = AppShell.Create (0, null);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ rc = AppShell.Spinup ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ }
+ result[0] = 0;
+ }
+
+ WindowCreator = new WindowCreator2 ();
+ WindowCreator.AddRef ();
+
+ rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIWindowWatcher windowWatcher = new nsIWindowWatcher (result[0]);
+ result[0] = 0;
+ rc = windowWatcher.SetWindowCreator (WindowCreator.getAddress());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ windowWatcher.Release ();
+
+ /* compute the profile directory and set it on the AppFileLocProvider */
+ if (LocationProvider != null) {
+ byte[] buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_DIRECTORYSERVICE_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (buffer, nsIDirectoryService.NS_IDIRECTORYSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIDirectoryService directoryService = new nsIDirectoryService (result[0]);
+ result[0] = 0;
+ rc = directoryService.QueryInterface (nsIProperties.NS_IPROPERTIES_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ directoryService.Release ();
+
+ nsIProperties properties = new nsIProperties (result[0]);
+ result[0] = 0;
+ buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_APP_APPLICATION_REGISTRY_DIR, true);
+ rc = properties.Get (buffer, nsIFile.NS_IFILE_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ properties.Release ();
+
+ nsIFile profileDir = new nsIFile (result[0]);
+ result[0] = 0;
+ int /*long*/ path = XPCOM.nsEmbedCString_new ();
+ rc = profileDir.GetNativePath (path);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ int length = XPCOM.nsEmbedCString_Length (path);
+ int /*long*/ ptr = XPCOM.nsEmbedCString_get (path);
+ buffer = new byte [length];
+ XPCOM.memmove (buffer, ptr, length);
+ String profilePath = new String (MozillaDelegate.mbcsToWcs (null, buffer)) + PROFILE_DIR;
+ LocationProvider.setProfilePath (profilePath);
+ LocationProvider.isXULRunner = IsXULRunner;
+ XPCOM.nsEmbedCString_delete (path);
+ profileDir.Release ();
+
+ /* notify observers of a new profile directory being used */
+ buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_OBSERVER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIObserverService observerService = new nsIObserverService (result[0]);
+ result[0] = 0;
+ buffer = MozillaDelegate.wcsToMbcs (null, PROFILE_DO_CHANGE, true);
+ length = STARTUP.length ();
+ char[] chars = new char [length + 1];
+ STARTUP.getChars (0, length, chars, 0);
+ rc = observerService.NotifyObservers (0, buffer, chars);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ buffer = MozillaDelegate.wcsToMbcs (null, PROFILE_AFTER_CHANGE, true);
+ rc = observerService.NotifyObservers (0, buffer, chars);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ observerService.Release ();
+ }
+
+ /*
+ * As a result of using a common profile the user cannot change their locale
+ * and charset. The fix for this is to set mozilla's locale and charset
+ * preference values according to the user's current locale and charset.
+ */
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFSERVICE_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIPrefService.NS_IPREFSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIPrefService prefService = new nsIPrefService (result[0]);
+ result[0] = 0;
+ byte[] buffer = new byte[1];
+ rc = prefService.GetBranch (buffer, result); /* empty buffer denotes root preference level */
+ prefService.Release ();
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIPrefBranch prefBranch = new nsIPrefBranch (result[0]);
+ result[0] = 0;
+
+ /* get Mozilla's current locale preference value */
+ String prefLocales = null;
+ nsIPrefLocalizedString localizedString = null;
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_LANGUAGES, true);
+ rc = prefBranch.GetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ /*
+ * Feature of Debian. For some reason attempting to query for the current locale
+ * preference fails on Debian. The workaround for this is to assume a value of
+ * "en-us,en" since this is typically the default value when mozilla is used without
+ * a profile.
+ */
+ if (rc != XPCOM.NS_OK) {
+ prefLocales = "en-us,en" + TOKENIZER_LOCALE; //$NON-NLS-1$
+ } else {
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ rc = localizedString.ToString (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ int length = XPCOM.strlen_PRUnichar (result[0]);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, result[0], length * 2);
+ prefLocales = new String (dest) + TOKENIZER_LOCALE;
+ }
+ result[0] = 0;
+
+ /*
+ * construct the new locale preference value by prepending the
+ * user's current locale and language to the original value
+ */
+ Locale locale = Locale.getDefault ();
+ String language = locale.getLanguage ();
+ String country = locale.getCountry ();
+ StringBuffer stringBuffer = new StringBuffer (language);
+ stringBuffer.append (SEPARATOR_LOCALE);
+ stringBuffer.append (country.toLowerCase ());
+ stringBuffer.append (TOKENIZER_LOCALE);
+ stringBuffer.append (language);
+ stringBuffer.append (TOKENIZER_LOCALE);
+ String newLocales = stringBuffer.toString ();
+
+ int start, end = -1;
+ do {
+ start = end + 1;
+ end = prefLocales.indexOf (TOKENIZER_LOCALE, start);
+ String token;
+ if (end == -1) {
+ token = prefLocales.substring (start);
+ } else {
+ token = prefLocales.substring (start, end);
+ }
+ if (token.length () > 0) {
+ token = (token + TOKENIZER_LOCALE).trim ();
+ /* ensure that duplicate locale values are not added */
+ if (newLocales.indexOf (token) == -1) {
+ stringBuffer.append (token);
+ }
+ }
+ } while (end != -1);
+ newLocales = stringBuffer.toString ();
+ if (!newLocales.equals (prefLocales)) {
+ /* write the new locale value */
+ newLocales = newLocales.substring (0, newLocales.length () - TOKENIZER_LOCALE.length ()); /* remove trailing tokenizer */
+ int length = newLocales.length ();
+ char[] charBuffer = new char[length + 1];
+ newLocales.getChars (0, length, charBuffer, 0);
+ if (localizedString == null) {
+ byte[] contractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
+ rc = componentManager.CreateInstanceByContractID (contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ }
+ localizedString.SetDataWithLength (length, charBuffer);
+ rc = prefBranch.SetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress());
+ }
+ if (localizedString != null) {
+ localizedString.Release ();
+ localizedString = null;
+ }
+
+ /* get Mozilla's current charset preference value */
+ String prefCharset = null;
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_CHARSET, true);
+ rc = prefBranch.GetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ /*
+ * Feature of Debian. For some reason attempting to query for the current charset
+ * preference fails on Debian. The workaround for this is to assume a value of
+ * "ISO-8859-1" since this is typically the default value when mozilla is used
+ * without a profile.
+ */
+ if (rc != XPCOM.NS_OK) {
+ prefCharset = "ISO-8859-1"; //$NON_NLS-1$
+ } else {
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ rc = localizedString.ToString (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ int length = XPCOM.strlen_PRUnichar (result[0]);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, result[0], length * 2);
+ prefCharset = new String (dest);
+ }
+ result[0] = 0;
+
+ String newCharset = System.getProperty ("file.encoding"); // $NON-NLS-1$
+ if (!newCharset.equals (prefCharset)) {
+ /* write the new charset value */
+ int length = newCharset.length ();
+ char[] charBuffer = new char[length + 1];
+ newCharset.getChars (0, length, charBuffer, 0);
+ if (localizedString == null) {
+ byte[] contractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
+ rc = componentManager.CreateInstanceByContractID (contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ }
+ localizedString.SetDataWithLength (length, charBuffer);
+ rc = prefBranch.SetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress ());
+ }
+ if (localizedString != null) localizedString.Release ();
+
+ /*
+ * Check for proxy values set as documented java properties and update mozilla's
+ * preferences with these values if needed.
+ */
+ String proxyHost = System.getProperty (PROPERTY_PROXYHOST);
+ String proxyPortString = System.getProperty (PROPERTY_PROXYPORT);
+
+ int port = -1;
+ if (proxyPortString != null) {
+ try {
+ int value = Integer.valueOf (proxyPortString).intValue ();
+ if (0 <= value && value <= MAX_PORT) port = value;
+ } catch (NumberFormatException e) {
+ /* do nothing, java property has non-integer value */
+ }
+ }
+
+ if (proxyHost != null) {
+ byte[] contractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFLOCALIZEDSTRING_CONTRACTID, true);
+ rc = componentManager.CreateInstanceByContractID (contractID, 0, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ localizedString = new nsIPrefLocalizedString (result[0]);
+ result[0] = 0;
+ int length = proxyHost.length ();
+ char[] charBuffer = new char[length + 1];
+ proxyHost.getChars (0, length, charBuffer, 0);
+ rc = localizedString.SetDataWithLength (length, charBuffer);
+ if (rc != XPCOM.NS_OK) error (rc);
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_PROXYHOST_FTP, true);
+ rc = prefBranch.SetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress ());
+ if (rc != XPCOM.NS_OK) error (rc);
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_PROXYHOST_HTTP, true);
+ rc = prefBranch.SetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress ());
+ if (rc != XPCOM.NS_OK) error (rc);
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_PROXYHOST_SSL, true);
+ rc = prefBranch.SetComplexValue (buffer, nsIPrefLocalizedString.NS_IPREFLOCALIZEDSTRING_IID, localizedString.getAddress ());
+ if (rc != XPCOM.NS_OK) error (rc);
+ localizedString.Release ();
+ }
+
+ if (port != -1) {
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_PROXYPORT_FTP, true);
+ rc = prefBranch.SetIntPref (buffer, port);
+ if (rc != XPCOM.NS_OK) error (rc);
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_PROXYPORT_HTTP, true);
+ rc = prefBranch.SetIntPref (buffer, port);
+ if (rc != XPCOM.NS_OK) error (rc);
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_PROXYPORT_SSL, true);
+ rc = prefBranch.SetIntPref (buffer, port);
+ if (rc != XPCOM.NS_OK) error (rc);
+ }
+
+ if (proxyHost != null || port != -1) {
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_PROXYTYPE, true);
+ rc = prefBranch.SetIntPref (buffer, 1);
+ if (rc != XPCOM.NS_OK) error (rc);
+ }
+
+ /*
+ * Ensure that windows that are shown during page loads are not blocked. Firefox may
+ * try to block these by default since such windows are often unwelcome, but this
+ * assumption should not be made in the Browser's context. Since the Browser client
+ * is responsible for creating the new Browser and Shell in an OpenWindowListener,
+ * they should decide whether the new window is unwelcome or not and act accordingly.
+ */
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_DISABLEOPENDURINGLOAD, true);
+ rc = prefBranch.SetBoolPref (buffer, 0);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ /* Ensure that the status text can be set through means like javascript */
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_DISABLEWINDOWSTATUSCHANGE, true);
+ rc = prefBranch.SetBoolPref (buffer, 0);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ /* Ensure that the status line can be hidden when opening a window from javascript */
+ buffer = MozillaDelegate.wcsToMbcs (null, PREFERENCE_DISABLEOPENWINDOWSTATUSHIDE, true);
+ rc = prefBranch.SetBoolPref (buffer, 0);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ prefBranch.Release ();
+
+ PromptService2Factory factory = new PromptService2Factory ();
+ factory.AddRef ();
+
+ rc = componentManager.QueryInterface (nsIComponentRegistrar.NS_ICOMPONENTREGISTRAR_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIComponentRegistrar componentRegistrar = new nsIComponentRegistrar (result[0]);
+ result[0] = 0;
+ componentRegistrar.AutoRegister (0); /* detect the External component */
+
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PROMPTSERVICE_CONTRACTID, true);
+ byte[] aClassName = MozillaDelegate.wcsToMbcs (null, "Prompt Service", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_PROMPTSERVICE_CID, aClassName, aContractID, factory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ factory.Release ();
+
+ ExternalFactory externalFactory = new ExternalFactory ();
+ externalFactory.AddRef ();
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.EXTERNAL_CONTRACTID, true);
+ aClassName = MozillaDelegate.wcsToMbcs (null, "External", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.EXTERNAL_CID, aClassName, aContractID, externalFactory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ externalFactory.Release ();
+
+ rc = serviceManager.GetService (XPCOM.NS_CATEGORYMANAGER_CID, nsICategoryManager.NS_ICATEGORYMANAGER_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsICategoryManager categoryManager = new nsICategoryManager (result[0]);
+ result[0] = 0;
+ byte[] category = MozillaDelegate.wcsToMbcs (null, "JavaScript global property", true); //$NON-NLS-1$
+ byte[] entry = MozillaDelegate.wcsToMbcs (null, "external", true); //$NON-NLS-1$
+ rc = categoryManager.AddCategoryEntry(category, entry, aContractID, 1, 1, result);
+ result[0] = 0;
+ categoryManager.Release ();
+
+ /*
+ * This Download factory will be used if the GRE version is < 1.8.
+ * If the GRE version is 1.8.x then the Download factory that is registered later for
+ * contract "Transfer" will be used.
+ * If the GRE version is >= 1.9 then no Download factory is registered because this
+ * functionality is provided by the GRE.
+ */
+ DownloadFactory downloadFactory = new DownloadFactory ();
+ downloadFactory.AddRef ();
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_DOWNLOAD_CONTRACTID, true);
+ aClassName = MozillaDelegate.wcsToMbcs (null, "Download", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ downloadFactory.Release ();
+
+ FilePickerFactory pickerFactory = IsXULRunner ? new FilePickerFactory_1_8 () : new FilePickerFactory ();
+ pickerFactory.AddRef ();
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_FILEPICKER_CONTRACTID, true);
+ aClassName = MozillaDelegate.wcsToMbcs (null, "FilePicker", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_FILEPICKER_CID, aClassName, aContractID, pickerFactory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ pickerFactory.Release ();
+
+ componentRegistrar.Release ();
+ componentManager.Release ();
+
+ Initialized = true;
+ }
+
+ if (display.getData (DISPOSE_LISTENER_HOOKED) == null) {
+ display.setData (DISPOSE_LISTENER_HOOKED, DISPOSE_LISTENER_HOOKED);
+ display.addListener (SWT.Dispose, new Listener () {
+ public void handleEvent (Event event) {
+ if (BrowserCount > 0) return; /* another display is still active */
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_OBSERVER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIObserverService observerService = new nsIObserverService (result[0]);
+ result[0] = 0;
+ buffer = MozillaDelegate.wcsToMbcs (null, PROFILE_BEFORE_CHANGE, true);
+ int length = SHUTDOWN_PERSIST.length ();
+ char[] chars = new char [length + 1];
+ SHUTDOWN_PERSIST.getChars (0, length, chars, 0);
+ rc = observerService.NotifyObservers (0, buffer, chars);
+ if (rc != XPCOM.NS_OK) error (rc);
+ observerService.Release ();
+
+ if (LocationProvider != null) {
+ String prefsLocation = LocationProvider.profilePath + AppFileLocProvider.PREFERENCES_FILE;
+ nsEmbedString pathString = new nsEmbedString (prefsLocation);
+ rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
+ pathString.dispose ();
+
+ nsILocalFile localFile = new nsILocalFile (result [0]);
+ result[0] = 0;
+ rc = localFile.QueryInterface (nsIFile.NS_IFILE_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+ localFile.Release ();
+
+ nsIFile prefFile = new nsIFile (result[0]);
+ result[0] = 0;
+
+ buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFSERVICE_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (buffer, nsIPrefService.NS_IPREFSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIPrefService prefService = new nsIPrefService (result[0]);
+ result[0] = 0;
+ rc = prefService.SavePrefFile(prefFile.getAddress ());
+ prefService.Release ();
+ prefFile.Release ();
+ }
+ serviceManager.Release ();
+
+ if (XPCOMWasGlued) {
+ /*
+ * XULRunner 1.9 can crash on Windows if XPCOMGlueShutdown is invoked here,
+ * presumably because one or more of its unloaded symbols are referenced when
+ * this callback returns. The workaround is to delay invoking XPCOMGlueShutdown
+ * so that its symbols are still available once this callback returns.
+ */
+ display.asyncExec (new Runnable () {
+ public void run () {
+ XPCOM.XPCOMGlueShutdown ();
+ }
+ });
+
+ // the following is intentionally commented, because calling XRE_TermEmbedding
+ // causes subsequent browser instantiations within the process to fail
+
+// int size = XPCOM.nsDynamicFunctionLoad_sizeof ();
+// /* alloc memory for two structs, the second is empty to signify the end of the list */
+// int /*long*/ ptr = C.malloc (size * 2);
+// C.memset (ptr, 0, size * 2);
+// nsDynamicFunctionLoad functionLoad = new nsDynamicFunctionLoad ();
+// byte[] bytes = MozillaDelegate.wcsToMbcs (null, "XRE_TermEmbedding", true); //$NON-NLS-1$
+// functionLoad.functionName = C.malloc (bytes.length);
+// C.memmove (functionLoad.functionName, bytes, bytes.length);
+// functionLoad.function = C.malloc (C.PTR_SIZEOF);
+// C.memmove (functionLoad.function, new int /*long*/[] {0} , C.PTR_SIZEOF);
+// XPCOM.memmove (ptr, functionLoad, XPCOM.nsDynamicFunctionLoad_sizeof ());
+// XPCOM.XPCOMGlueLoadXULFunctions (ptr);
+// C.memmove (result, functionLoad.function, C.PTR_SIZEOF);
+// int /*long*/ functionPtr = result[0];
+// result[0] = 0;
+// C.free (functionLoad.function);
+// C.free (functionLoad.functionName);
+// C.free (ptr);
+// XPCOM.Call (functionPtr);
+
+ XPCOMWasGlued = false;
+ }
+ if (XPCOMInitWasGlued) {
+ XPCOMInit.XPCOMGlueShutdown ();
+ XPCOMInitWasGlued = false;
+ }
+ Initialized = false;
+ }
+ });
+ }
+
+ BrowserCount++;
+ int rc = XPCOM.NS_GetComponentManager (result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ nsIComponentManager componentManager = new nsIComponentManager (result[0]);
+ result[0] = 0;
+ nsID NS_IWEBBROWSER_CID = new nsID ("F1EAC761-87E9-11d3-AF80-00A024FFC08C"); //$NON-NLS-1$
+ rc = componentManager.CreateInstance (NS_IWEBBROWSER_CID, 0, nsIWebBrowser.NS_IWEBBROWSER_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+
+ webBrowser = new nsIWebBrowser (result[0]);
+ result[0] = 0;
+
+ createCOMInterfaces ();
+ AddRef ();
+
+ rc = webBrowser.SetContainerWindow (webBrowserChrome.getAddress());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_NO_INTERFACE);
+ }
+
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ result[0] = 0;
+ Rectangle rect = browser.getClientArea ();
+ if (rect.isEmpty ()) {
+ rect.width = 1;
+ rect.height = 1;
+ }
+
+ embedHandle = delegate.getHandle ();
+
+ rc = baseWindow.InitWindow (embedHandle, 0, 0, 0, rect.width, rect.height);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_FAILURE);
+ }
+ rc = delegate.createBaseWindow (baseWindow);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_FAILURE);
+ }
+ rc = baseWindow.SetVisibility (1);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_FAILURE);
+ }
+ baseWindow.Release ();
+
+ if (!PerformedVersionCheck) {
+ PerformedVersionCheck = true;
+
+ rc = componentManager.QueryInterface (nsIComponentRegistrar.NS_ICOMPONENTREGISTRAR_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_NOINTERFACE);
+ }
+ nsIComponentRegistrar componentRegistrar = new nsIComponentRegistrar (result[0]);
+ result[0] = 0;
+
+ HelperAppLauncherDialogFactory dialogFactory = new HelperAppLauncherDialogFactory ();
+ dialogFactory.AddRef ();
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CONTRACTID, true);
+ byte[] aClassName = MozillaDelegate.wcsToMbcs (null, "Helper App Launcher Dialog", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CID, aClassName, aContractID, dialogFactory.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ dialogFactory.Release ();
+
+ /*
+ * Check for the availability of the pre-1.8 implementation of nsIDocShell
+ * to determine if the GRE's version is < 1.8.
+ */
+ rc = webBrowser.QueryInterface (nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID, result);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_FAILURE);
+ }
+ if (result[0] == 0) {
+ browser.dispose ();
+ error (XPCOM.NS_ERROR_NO_INTERFACE);
+ }
+ nsIInterfaceRequestor interfaceRequestor = new nsIInterfaceRequestor (result[0]);
+ result[0] = 0;
+
+ rc = interfaceRequestor.GetInterface (nsIDocShell.NS_IDOCSHELL_IID, result);
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ IsPre_1_8 = true;
+ new nsISupports (result[0]).Release ();
+ }
+ result[0] = 0;
+ IsPre_1_9 = true;
+
+ /*
+ * A Download factory for contract "Transfer" must be registered iff the GRE's version is 1.8.x.
+ * Check for the availability of the 1.8 implementation of nsIDocShell to determine if the
+ * GRE's version is 1.8.x.
+ * If the GRE version is < 1.8 then the previously-registered Download factory for contract
+ * "Download" will be used.
+ * If the GRE version is >= 1.9 then no Download factory is registered because this
+ * functionality is provided by the GRE.
+ */
+ if (!IsPre_1_8) {
+ rc = interfaceRequestor.GetInterface (nsIDocShell_1_8.NS_IDOCSHELL_IID, result);
+ if (rc == XPCOM.NS_OK && result[0] != 0) { /* 1.8 */
+ new nsISupports (result[0]).Release ();
+ result[0] = 0;
+
+ DownloadFactory_1_8 downloadFactory_1_8 = new DownloadFactory_1_8 ();
+ downloadFactory_1_8.AddRef ();
+ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_TRANSFER_CONTRACTID, true);
+ aClassName = MozillaDelegate.wcsToMbcs (null, "Transfer", true); //$NON-NLS-1$
+ rc = componentRegistrar.RegisterFactory (XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory_1_8.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+ downloadFactory_1_8.Release ();
+ } else { /* >= 1.9 */
+ IsPre_1_9 = false;
+ }
+ }
+ result[0] = 0;
+ interfaceRequestor.Release ();
+ componentRegistrar.Release ();
+ }
+ componentManager.Release ();
+
+ /*
+ * Bug in XULRunner 1.9. On win32, Mozilla does not clear its background before content has
+ * been set into it. As a result, embedders appear broken if they do not immediately display
+ * a URL or text. The Mozilla bug for this is https://bugzilla.mozilla.org/show_bug.cgi?id=453523.
+ *
+ * The workaround is to subclass the Mozilla window and clear it whenever WM_ERASEBKGND is received.
+ * This subclass should be removed once content has been set into the browser.
+ */
+ if (!IsPre_1_9) {
+ delegate.addWindowSubclass ();
+ }
+
+ rc = webBrowser.AddWebBrowserListener (weakReference.getAddress (), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ rc = webBrowser.SetParentURIContentListener (uriContentListener.getAddress ());
+ if (rc != XPCOM.NS_OK) {
+ browser.dispose ();
+ error (rc);
+ }
+
+ delegate.init ();
+
+ listener = new Listener () {
+ public void handleEvent (Event event) {
+ switch (event.type) {
+ case SWT.Dispose: {
+ /* make this handler run after other dispose listeners */
+ if (ignoreDispose) {
+ ignoreDispose = false;
+ break;
+ }
+ ignoreDispose = true;
+ browser.notifyListeners (event.type, event);
+ event.type = SWT.NONE;
+ onDispose (event.display);
+ break;
+ }
+ case SWT.Resize: onResize (); break;
+ case SWT.FocusIn: Activate (); break;
+ case SWT.Activate: Activate (); break;
+ case SWT.Deactivate: {
+ Display display = event.display;
+ if (Mozilla.this.browser == display.getFocusControl ()) Deactivate ();
+ break;
+ }
+ case SWT.Show: {
+ /*
+ * Feature in GTK Mozilla. Mozilla does not show up when
+ * its container (a GTK fixed handle) is made visible
+ * after having been hidden. The workaround is to reset
+ * its size after the container has been made visible.
+ */
+ Display display = event.display;
+ display.asyncExec(new Runnable () {
+ public void run() {
+ if (browser.isDisposed ()) return;
+ onResize ();
+ }
+ });
+ break;
+ }
+ }
+ }
+ };
+ int[] folderEvents = new int[] {
+ SWT.Dispose,
+ SWT.Resize,
+ SWT.FocusIn,
+ SWT.Activate,
+ SWT.Deactivate,
+ SWT.Show,
+ SWT.KeyDown // needed to make browser traversable
+ };
+ for (int i = 0; i < folderEvents.length; i++) {
+ browser.addListener (folderEvents[i], listener);
+ }
+}
+
+public boolean back () {
+ htmlBytes = null;
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ rc = webNavigation.GoBack ();
+ webNavigation.Release ();
+ return rc == XPCOM.NS_OK;
+}
+
+void createCOMInterfaces () {
+ // Create each of the interfaces that this object implements
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ weakReference = new XPCOMObject (new int[] {2, 0, 0, 2}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return QueryReferent (args[0], args[1]);}
+ };
+
+ webProgressListener = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 3, 4, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStateChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnProgressChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3], (int)/*64*/args[4], (int)/*64*/args[5]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return OnLocationChange (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return OnStatusChange (args[0], args[1], (int)/*64*/args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return OnSecurityChange (args[0], args[1], (int)/*64*/args[2]);}
+ };
+
+ webBrowserChrome = new XPCOMObject (new int[] {2, 0, 0, 2, 1, 1, 1, 1, 0, 2, 0, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return SetStatus ((int)/*64*/args[0], args[1]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetWebBrowser (args[0]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return SetWebBrowser (args[0]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetChromeFlags (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return SetChromeFlags ((int)/*64*/args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return DestroyBrowserWindow ();}
+ public int /*long*/ method9 (int /*long*/[] args) {return SizeBrowserTo ((int)/*64*/args[0], (int)/*64*/args[1]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return ShowAsModal ();}
+ public int /*long*/ method11 (int /*long*/[] args) {return IsWindowModal (args[0]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return ExitModalEventLoop ((int)/*64*/args[0]);}
+ };
+
+ webBrowserChromeFocus = new XPCOMObject (new int[] {2, 0, 0, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return FocusNextElement ();}
+ public int /*long*/ method4 (int /*long*/[] args) {return FocusPrevElement ();}
+ };
+
+ embeddingSiteWindow = new XPCOMObject (new int[] {2, 0, 0, 5, 5, 0, 1, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return SetDimensions ((int)/*64*/args[0], (int)/*64*/args[1], (int)/*64*/args[2], (int)/*64*/args[3], (int)/*64*/args[4]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetDimensions ((int)/*64*/args[0], args[1], args[2], args[3], args[4]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return SetFocus ();}
+ public int /*long*/ method6 (int /*long*/[] args) {return GetVisibility (args[0]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return SetVisibility ((int)/*64*/args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return GetTitle (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return SetTitle (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return GetSiteWindow (args[0]);}
+ };
+
+ interfaceRequestor = new XPCOMObject (new int[] {2, 0, 0, 2} ){
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return GetInterface (args[0], args[1]);}
+ };
+
+ supportsWeakReference = new XPCOMObject (new int[] {2, 0, 0, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return GetWeakReference (args[0]);}
+ };
+
+ contextMenuListener = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnShowContextMenu ((int)/*64*/args[0], args[1], args[2]);}
+ };
+
+ uriContentListener = new XPCOMObject (new int[] {2, 0, 0, 2, 5, 3, 4, 1, 1, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnStartURIOpen (args[0], args[1]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return DoContent (args[0], (int)/*64*/args[1], args[2], args[3], args[4]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return IsPreferred (args[0], args[1], args[2]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return CanHandleContent (args[0], (int)/*64*/args[1], args[2], args[3]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return GetLoadCookie (args[0]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return SetLoadCookie (args[0]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return GetParentContentListener (args[0]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return SetParentContentListener (args[0]);}
+ };
+
+ tooltipListener = new XPCOMObject (new int[] {2, 0, 0, 3, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return OnShowTooltip ((int)/*64*/args[0], (int)/*64*/args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return OnHideTooltip ();}
+ };
+
+ domEventListener = new XPCOMObject (new int[] {2, 0, 0, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return HandleEvent (args[0]);}
+ };
+}
+
+void deregisterFunction (BrowserFunction function) {
+ super.deregisterFunction (function);
+ AllFunctions.remove (new Integer (function.index));
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (weakReference != null) {
+ weakReference.dispose ();
+ weakReference = null;
+ }
+ if (webProgressListener != null) {
+ webProgressListener.dispose ();
+ webProgressListener = null;
+ }
+ if (webBrowserChrome != null) {
+ webBrowserChrome.dispose ();
+ webBrowserChrome = null;
+ }
+ if (webBrowserChromeFocus != null) {
+ webBrowserChromeFocus.dispose ();
+ webBrowserChromeFocus = null;
+ }
+ if (embeddingSiteWindow != null) {
+ embeddingSiteWindow.dispose ();
+ embeddingSiteWindow = null;
+ }
+ if (interfaceRequestor != null) {
+ interfaceRequestor.dispose ();
+ interfaceRequestor = null;
+ }
+ if (supportsWeakReference != null) {
+ supportsWeakReference.dispose ();
+ supportsWeakReference = null;
+ }
+ if (contextMenuListener != null) {
+ contextMenuListener.dispose ();
+ contextMenuListener = null;
+ }
+ if (uriContentListener != null) {
+ uriContentListener.dispose ();
+ uriContentListener = null;
+ }
+ if (tooltipListener != null) {
+ tooltipListener.dispose ();
+ tooltipListener = null;
+ }
+ if (domEventListener != null) {
+ domEventListener.dispose ();
+ domEventListener = null;
+ }
+}
+
+public boolean execute (String script) {
+ /*
+ * This could be the first content that is set into the browser, so
+ * ensure that the custom subclass that works around Mozilla bug
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=453523 is removed.
+ */
+ delegate.removeWindowSubclass ();
+
+ /*
+ * As of mozilla 1.9 executing javascript via the javascript: protocol no
+ * longer happens synchronously. As a result, the result of executing JS
+ * is not returned to the java side when expected by the client. The
+ * workaround is to invoke the javascript handler directly via C++, which is
+ * exposed as of mozilla 1.9.
+ */
+ int /*long*/[] result = new int /*long*/[1];
+ if (!IsPre_1_9) {
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ nsIPrincipal principal = null;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_SCRIPTSECURITYMANAGER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIScriptSecurityManager_1_9_1.NS_ISCRIPTSECURITYMANAGER_IID, result);
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ nsIScriptSecurityManager_1_9_1 securityManager = new nsIScriptSecurityManager_1_9_1 (result[0]);
+ result[0] = 0;
+ rc = securityManager.GetSystemPrincipal (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NULL_POINTER);
+ principal = new nsIPrincipal (result[0]);
+ result[0] = 0;
+ securityManager.Release ();
+ } else {
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIScriptSecurityManager_1_9.NS_ISCRIPTSECURITYMANAGER_IID, result);
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ nsIScriptSecurityManager_1_9 securityManager = new nsIScriptSecurityManager_1_9 (result[0]);
+ result[0] = 0;
+ rc = securityManager.GetSystemPrincipal (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NULL_POINTER);
+ principal = new nsIPrincipal (result[0]);
+ result[0] = 0;
+ securityManager.Release ();
+ }
+ }
+ serviceManager.Release ();
+
+ if (principal != null) {
+ rc = webBrowser.QueryInterface (nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIInterfaceRequestor interfaceRequestor = new nsIInterfaceRequestor (result[0]);
+ result[0] = 0;
+ nsID scriptGlobalObjectNSID = new nsID ("6afecd40-0b9a-4cfd-8c42-0f645cd91829"); /* nsIScriptGlobalObject */ //$NON-NLS-1$
+ rc = interfaceRequestor.GetInterface (scriptGlobalObjectNSID, result);
+ interfaceRequestor.Release ();
+
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ int /*long*/ scriptGlobalObject = result[0];
+ result[0] = 0;
+ rc = (int/*64*/)XPCOM.nsIScriptGlobalObject_EnsureScriptEnvironment (scriptGlobalObject, 2); /* nsIProgrammingLanguage.JAVASCRIPT */
+ if (rc != XPCOM.NS_OK) error (rc);
+ int /*long*/ scriptContext = XPCOM.nsIScriptGlobalObject_GetScriptContext (scriptGlobalObject, 2); /* nsIProgrammingLanguage.JAVASCRIPT */
+ int /*long*/ globalJSObject = XPCOM.nsIScriptGlobalObject_GetScriptGlobal (scriptGlobalObject, 2); /* nsIProgrammingLanguage.JAVASCRIPT */
+ new nsISupports (scriptGlobalObject).Release ();
+
+ if (scriptContext != 0 && globalJSObject != 0) {
+ /* ensure that the received nsIScriptContext implements the expected interface */
+ nsID scriptContextNSID = new nsID ("e7b9871d-3adc-4bf7-850d-7fb9554886bf"); /* nsIScriptContext */ //$NON-NLS-1$
+ rc = new nsISupports (scriptContext).QueryInterface (scriptContextNSID, result);
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ new nsISupports (result[0]).Release ();
+ result[0] = 0;
+
+ int /*long*/ nativeContext = XPCOM.nsIScriptContext_GetNativeContext (scriptContext);
+ if (nativeContext != 0) {
+ int length = script.length ();
+ char[] scriptChars = new char[length];
+ script.getChars(0, length, scriptChars, 0);
+ byte[] urlbytes = MozillaDelegate.wcsToMbcs (null, getUrl (), true);
+ rc = principal.GetJSPrincipals (nativeContext, result);
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ int /*long*/ principals = result[0];
+ result[0] = 0;
+ principal.Release ();
+ String mozillaPath = LocationProvider.mozillaPath + delegate.getJSLibraryName () + '\0';
+ byte[] pathBytes = null;
+ try {
+ pathBytes = mozillaPath.getBytes ("UTF-8"); //$NON-NLS-1$
+ } catch (UnsupportedEncodingException e) {
+ pathBytes = mozillaPath.getBytes ();
+ }
+ rc = XPCOM.JS_EvaluateUCScriptForPrincipals (pathBytes, nativeContext, globalJSObject, principals, scriptChars, length, urlbytes, 0, result);
+ return rc != 0;
+ }
+ }
+ }
+ }
+ }
+ principal.Release ();
+ }
+ }
+
+ /* fall back to the pre-1.9 approach */
+
+ String url = PREFIX_JAVASCRIPT + script + ";void(0);"; //$NON-NLS-1$
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ char[] arg = url.toCharArray ();
+ char[] c = new char[arg.length+1];
+ System.arraycopy (arg, 0, c, 0, arg.length);
+ rc = webNavigation.LoadURI (c, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
+ webNavigation.Release ();
+ return rc == XPCOM.NS_OK;
+}
+
+static Browser findBrowser (int /*long*/ handle) {
+ return MozillaDelegate.findBrowser (handle);
+}
+
+static Browser findBrowser (nsIDOMWindow aDOMWindow) {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error(rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIWindowWatcher windowWatcher = new nsIWindowWatcher (result[0]);
+ result[0] = 0;
+ /* the chrome will only be answered for the top-level nsIDOMWindow */
+ rc = aDOMWindow.GetTop (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ int /*long*/ topDOMWindow = result[0];
+ result[0] = 0;
+ rc = windowWatcher.GetChromeForWindow (topDOMWindow, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ new nsISupports (topDOMWindow).Release ();
+ windowWatcher.Release ();
+ if (result[0] == 0) return null; /* the parent chrome is disconnected */
+
+ nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome (result[0]);
+ result[0] = 0;
+ rc = webBrowserChrome.QueryInterface (nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ webBrowserChrome.Release ();
+
+ nsIEmbeddingSiteWindow embeddingSiteWindow = new nsIEmbeddingSiteWindow (result[0]);
+ result[0] = 0;
+ rc = embeddingSiteWindow.GetSiteWindow (result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+ embeddingSiteWindow.Release ();
+
+ return findBrowser (result[0]);
+}
+
+public boolean forward () {
+ htmlBytes = null;
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ rc = webNavigation.GoForward ();
+ webNavigation.Release ();
+
+ return rc == XPCOM.NS_OK;
+}
+
+public String getBrowserType () {
+ return "mozilla"; //$NON-NLS-1$
+}
+
+int getNextFunctionIndex () {
+ return NextJSFunctionIndex++;
+}
+
+public String getText () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.GetContentDOMWindow (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIDOMWindow window = new nsIDOMWindow (result[0]);
+ result[0] = 0;
+ rc = window.GetDocument (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ window.Release ();
+
+ int /*long*/ document = result[0];
+ result[0] = 0;
+ rc = XPCOM.NS_GetComponentManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIComponentManager componentManager = new nsIComponentManager (result[0]);
+ result[0] = 0;
+ byte[] contractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_DOMSERIALIZER_CONTRACTID, true);
+ char[] chars = null;
+
+ rc = componentManager.CreateInstanceByContractID (contractID, 0, nsIDOMSerializer_1_7.NS_IDOMSERIALIZER_IID, result);
+ if (rc == XPCOM.NS_OK) { /* mozilla >= 1.7 */
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIDOMSerializer_1_7 serializer = new nsIDOMSerializer_1_7 (result[0]);
+ result[0] = 0;
+ int /*long*/ string = XPCOM.nsEmbedString_new ();
+ rc = serializer.SerializeToString (document, string);
+ serializer.Release ();
+
+ int length = XPCOM.nsEmbedString_Length (string);
+ int /*long*/ buffer = XPCOM.nsEmbedString_get (string);
+ chars = new char[length];
+ XPCOM.memmove (chars, buffer, length * 2);
+ XPCOM.nsEmbedString_delete (string);
+ } else { /* mozilla < 1.7 */
+ rc = componentManager.CreateInstanceByContractID (contractID, 0, nsIDOMSerializer.NS_IDOMSERIALIZER_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIDOMSerializer serializer = new nsIDOMSerializer (result[0]);
+ result[0] = 0;
+ rc = serializer.SerializeToString (document, result);
+ serializer.Release ();
+
+ int length = XPCOM.strlen_PRUnichar (result[0]);
+ chars = new char[length];
+ XPCOM.memmove (chars, result[0], length * 2);
+ }
+
+ componentManager.Release ();
+ new nsISupports (document).Release ();
+ return new String (chars);
+}
+
+public String getUrl () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ int /*long*/[] aCurrentURI = new int /*long*/[1];
+ rc = webNavigation.GetCurrentURI (aCurrentURI);
+ if (rc != XPCOM.NS_OK) error (rc);
+ webNavigation.Release ();
+
+ byte[] dest = null;
+ if (aCurrentURI[0] != 0) {
+ nsIURI uri = new nsIURI (aCurrentURI[0]);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ rc = uri.GetSpec (aSpec);
+ if (rc != XPCOM.NS_OK) error (rc);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ uri.Release ();
+ }
+ if (dest == null) return ""; //$NON-NLS-1$
+
+ String location = new String (dest);
+ /*
+ * If the URI indicates that the page is being rendered from memory
+ * (via setText()) then set it to about:blank to be consistent with IE.
+ */
+ if (location.equals (URI_FROMMEMORY)) location = ABOUT_BLANK;
+ return location;
+}
+
+public Object getWebBrowser () {
+ if ((browser.getStyle () & SWT.MOZILLA) == 0) return null;
+ if (webBrowserObject != null) return webBrowserObject;
+
+ try {
+ Class clazz = Class.forName ("org.mozilla.xpcom.Mozilla"); //$NON-NLS-1$
+ Method method = clazz.getMethod ("getInstance", new Class[0]); //$NON-NLS-1$
+ Object mozilla = method.invoke (null, new Object[0]);
+ method = clazz.getMethod ("wrapXPCOMObject", new Class[] {Long.TYPE, String.class}); //$NON-NLS-1$
+ webBrowserObject = method.invoke (mozilla, new Object[] {new Long (webBrowser.getAddress ()), nsIWebBrowser.NS_IWEBBROWSER_IID_STR});
+ /*
+ * The following AddRef() is needed to offset the automatic Release() that
+ * will be performed by JavaXPCOM when webBrowserObject is finalized.
+ */
+ webBrowser.AddRef ();
+ return webBrowserObject;
+ } catch (ClassNotFoundException e) {
+ } catch (NoSuchMethodException e) {
+ } catch (IllegalArgumentException e) {
+ } catch (IllegalAccessException e) {
+ } catch (InvocationTargetException e) {
+ }
+ return null;
+}
+
+public boolean isBackEnabled () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ int[] aCanGoBack = new int[1]; /* PRBool */
+ rc = webNavigation.GetCanGoBack (aCanGoBack);
+ webNavigation.Release ();
+ return aCanGoBack[0] != 0;
+}
+
+public boolean isForwardEnabled () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ int[] aCanGoForward = new int[1]; /* PRBool */
+ rc = webNavigation.GetCanGoForward (aCanGoForward);
+ webNavigation.Release ();
+ return aCanGoForward[0] != 0;
+}
+
+static String error (int code) {
+ throw new SWTError ("XPCOM error " + code); //$NON-NLS-1$
+}
+
+void onDispose (Display display) {
+ int rc = webBrowser.RemoveWebBrowserListener (weakReference.getAddress (), nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ rc = webBrowser.SetParentURIContentListener (0);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ rc = webBrowser.SetContainerWindow (0);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ unhookDOMListeners ();
+ if (listener != null) {
+ int[] folderEvents = new int[] {
+ SWT.Dispose,
+ SWT.Resize,
+ SWT.FocusIn,
+ SWT.Activate,
+ SWT.Deactivate,
+ SWT.Show,
+ SWT.KeyDown,
+ };
+ for (int i = 0; i < folderEvents.length; i++) {
+ browser.removeListener (folderEvents[i], listener);
+ }
+ listener = null;
+ }
+
+ int /*long*/[] result = new int /*long*/[1];
+ rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ rc = baseWindow.Destroy ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ baseWindow.Release ();
+
+ Release ();
+ webBrowser.Release ();
+ webBrowser = null;
+ webBrowserObject = null;
+ lastNavigateURL = null;
+ htmlBytes = null;
+
+ if (tip != null && !tip.isDisposed ()) tip.dispose ();
+ tip = null;
+ location = size = null;
+
+ Enumeration elements = unhookedDOMWindows.elements ();
+ while (elements.hasMoreElements ()) {
+ LONG ptrObject = (LONG)elements.nextElement ();
+ new nsISupports (ptrObject.value).Release ();
+ }
+ unhookedDOMWindows = null;
+
+ elements = functions.elements ();
+ while (elements.hasMoreElements ()) {
+ BrowserFunction function = ((BrowserFunction)elements.nextElement ());
+ AllFunctions.remove (new Integer (function.index));
+ function.dispose (false);
+ }
+ functions = null;
+
+ delegate.onDispose (embedHandle);
+ delegate = null;
+
+ embedHandle = 0;
+ BrowserCount--;
+}
+
+void Activate () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus (result[0]);
+ rc = webBrowserFocus.Activate ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ webBrowserFocus.Release ();
+}
+
+void Deactivate () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebBrowserFocus webBrowserFocus = new nsIWebBrowserFocus (result[0]);
+ rc = webBrowserFocus.Deactivate ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ webBrowserFocus.Release ();
+}
+
+void onResize () {
+ Rectangle rect = browser.getClientArea ();
+ int width = Math.max (1, rect.width);
+ int height = Math.max (1, rect.height);
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ delegate.setSize (embedHandle, width, height);
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ rc = baseWindow.SetPositionAndSize (0, 0, width, height, 1);
+ if (rc != XPCOM.NS_OK) error (rc);
+ baseWindow.Release ();
+}
+
+public void refresh () {
+ htmlBytes = null;
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error(rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ rc = webNavigation.Reload (nsIWebNavigation.LOAD_FLAGS_NONE);
+ webNavigation.Release ();
+ if (rc == XPCOM.NS_OK) return;
+ /*
+ * Feature in Mozilla. Reload returns an error code NS_ERROR_INVALID_POINTER
+ * when it is called immediately after a request to load a new document using
+ * LoadURI. The workaround is to ignore this error code.
+ *
+ * Feature in Mozilla. Attempting to reload a file that no longer exists
+ * returns an error code of NS_ERROR_FILE_NOT_FOUND. This is equivalent to
+ * attempting to load a non-existent local url, which is not a Browser error,
+ * so this error code should be ignored.
+ */
+ if (rc != XPCOM.NS_ERROR_INVALID_POINTER && rc != XPCOM.NS_ERROR_FILE_NOT_FOUND) error (rc);
+}
+
+void registerFunction (BrowserFunction function) {
+ super.registerFunction (function);
+ AllFunctions.put (new Integer (function.index), function);
+}
+
+public boolean setText (String html) {
+ /*
+ * Feature in Mozilla. The focus memory of Mozilla must be
+ * properly managed through the nsIWebBrowserFocus interface.
+ * In particular, nsIWebBrowserFocus.deactivate must be called
+ * when the focus moves from the browser (or one of its children
+ * managed by Mozilla to another widget. We currently do not
+ * get notified when a widget takes focus away from the Browser.
+ * As a result, deactivate is not properly called. This causes
+ * Mozilla to retake focus the next time a document is loaded.
+ * This breaks the case where the HTML loaded in the Browser
+ * varies while the user enters characters in a text widget. The text
+ * widget loses focus every time new content is loaded.
+ * The current workaround is to call deactivate everytime if
+ * the browser currently does not have focus. A better workaround
+ * would be to have a way to call deactivate when the Browser
+ * or one of its children loses focus.
+ */
+ if (browser != browser.getDisplay ().getFocusControl ()) Deactivate ();
+
+ /* convert the String containing HTML to an array of bytes with UTF-8 data */
+ byte[] data = null;
+ try {
+ data = html.getBytes ("UTF-8"); //$NON-NLS-1$
+ } catch (UnsupportedEncodingException e) {
+ return false;
+ }
+
+ /*
+ * This could be the first content that is set into the browser, so
+ * ensure that the custom subclass that works around Mozilla bug
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=453523 is removed.
+ */
+ delegate.removeWindowSubclass ();
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebBrowserStream.NS_IWEBBROWSERSTREAM_IID, result);
+ if (rc == XPCOM.NS_OK && result[0] != 0) {
+ /*
+ * Setting mozilla's content through nsIWebBrowserStream does not cause a page
+ * load to occur, so the events that usually accompany a page change are not
+ * fired. To make this behave as expected, navigate to about:blank first and
+ * then set the html content once the page has loaded.
+ */
+ new nsISupports (result[0]).Release ();
+ result[0] = 0;
+
+ /*
+ * If htmlBytes is not null then the about:blank page is already being loaded,
+ * so no Navigate is required. Just set the html that is to be shown.
+ */
+ boolean blankLoading = htmlBytes != null;
+ htmlBytes = data;
+ if (blankLoading) return true;
+
+ /* navigate to about:blank */
+ rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ result[0] = 0;
+ char[] uri = new char[ABOUT_BLANK.length () + 1];
+ ABOUT_BLANK.getChars (0, ABOUT_BLANK.length (), uri, 0);
+ rc = webNavigation.LoadURI (uri, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
+ if (rc != XPCOM.NS_OK) error (rc);
+ webNavigation.Release ();
+ } else {
+ byte[] contentCharsetBuffer = MozillaDelegate.wcsToMbcs (null, "UTF-8", true); //$NON-NLS-1$
+ int /*long*/ aContentCharset = XPCOM.nsEmbedCString_new (contentCharsetBuffer, contentCharsetBuffer.length);
+ byte[] contentTypeBuffer = MozillaDelegate.wcsToMbcs (null, "text/html", true); // $NON-NLS-1$
+ int /*long*/ aContentType = XPCOM.nsEmbedCString_new (contentTypeBuffer, contentTypeBuffer.length);
+
+ rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ rc = serviceManager.GetService (XPCOM.NS_IOSERVICE_CID, nsIIOService.NS_IIOSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIIOService ioService = new nsIIOService (result[0]);
+ result[0] = 0;
+ /*
+ * Note. Mozilla ignores LINK tags used to load CSS stylesheets
+ * when the URI protocol for the nsInputStreamChannel
+ * is about:blank. The fix is to specify the file protocol.
+ */
+ byte[] aString = MozillaDelegate.wcsToMbcs (null, URI_FROMMEMORY, false);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new (aString, aString.length);
+ rc = ioService.NewURI (aSpec, null, 0, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ ioService.Release ();
+
+ nsIURI uri = new nsIURI (result[0]);
+ result[0] = 0;
+
+ rc = webBrowser.QueryInterface (nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ nsIInterfaceRequestor interfaceRequestor = new nsIInterfaceRequestor (result[0]);
+ result[0] = 0;
+
+ /*
+ * Feature in Mozilla. LoadStream invokes the nsIInputStream argument
+ * through a different thread. The callback mechanism must attach
+ * a non java thread to the JVM otherwise the nsIInputStream Read and
+ * Close methods never get called.
+ */
+ InputStream inputStream = new InputStream (data);
+ inputStream.AddRef ();
+
+ rc = interfaceRequestor.GetInterface (nsIDocShell.NS_IDOCSHELL_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ nsIDocShell docShell = new nsIDocShell (result[0]);
+ result[0] = 0;
+ rc = docShell.LoadStream (inputStream.getAddress (), uri.getAddress (), aContentType, aContentCharset, 0);
+ docShell.Release ();
+
+ inputStream.Release ();
+ interfaceRequestor.Release ();
+ uri.Release ();
+ XPCOM.nsEmbedCString_delete (aContentType);
+ XPCOM.nsEmbedCString_delete (aContentCharset);
+ }
+ return true;
+}
+
+public boolean setUrl (String url) {
+ htmlBytes = null;
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ /*
+ * This could be the first content that is set into the browser, so
+ * ensure that the custom subclass that works around Mozilla bug
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=453523 is removed.
+ */
+ delegate.removeWindowSubclass ();
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ char[] uri = new char[url.length () + 1];
+ url.getChars (0, url.length (), uri, 0);
+ rc = webNavigation.LoadURI (uri, nsIWebNavigation.LOAD_FLAGS_NONE, 0, 0, 0);
+ webNavigation.Release ();
+ return rc == XPCOM.NS_OK;
+}
+
+public void stop () {
+ htmlBytes = null;
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebNavigation webNavigation = new nsIWebNavigation (result[0]);
+ rc = webNavigation.Stop (nsIWebNavigation.STOP_ALL);
+ if (rc != XPCOM.NS_OK) error (rc);
+ webNavigation.Release ();
+}
+
+void hookDOMListeners (nsIDOMEventTarget target, boolean isTop) {
+ nsEmbedString string = new nsEmbedString (XPCOM.DOMEVENT_FOCUS);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_UNLOAD);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEDOWN);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEUP);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEMOVE);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEWHEEL);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEDRAG);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+
+ /*
+ * Only hook mouseover and mouseout if the target is a top-level frame, so that mouse moves
+ * between frames will not generate events.
+ */
+ if (isTop && delegate.hookEnterExit ()) {
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEOVER);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEOUT);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ }
+
+ string = new nsEmbedString (XPCOM.DOMEVENT_KEYDOWN);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_KEYPRESS);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_KEYUP);
+ target.AddEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+}
+
+void unhookDOMListeners () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.GetContentDOMWindow (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIDOMWindow window = new nsIDOMWindow (result[0]);
+ result[0] = 0;
+ rc = window.QueryInterface (nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIDOMEventTarget target = new nsIDOMEventTarget (result[0]);
+ result[0] = 0;
+ unhookDOMListeners (target);
+ target.Release ();
+
+ /* Listeners must be unhooked in pages contained in frames */
+ rc = window.GetFrames (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ nsIDOMWindowCollection frames = new nsIDOMWindowCollection (result[0]);
+ result[0] = 0;
+ int[] frameCount = new int[1];
+ rc = frames.GetLength (frameCount); /* PRUint32 */
+ if (rc != XPCOM.NS_OK) error (rc);
+ int count = frameCount[0];
+
+ if (count > 0) {
+ for (int i = 0; i < count; i++) {
+ rc = frames.Item (i, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIDOMWindow frame = new nsIDOMWindow (result[0]);
+ result[0] = 0;
+ rc = frame.QueryInterface (nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ target = new nsIDOMEventTarget (result[0]);
+ result[0] = 0;
+ unhookDOMListeners (target);
+ target.Release ();
+ frame.Release ();
+ }
+ }
+ frames.Release ();
+ window.Release ();
+}
+
+void unhookDOMListeners (nsIDOMEventTarget target) {
+ nsEmbedString string = new nsEmbedString (XPCOM.DOMEVENT_FOCUS);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_UNLOAD);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEDOWN);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEUP);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEMOVE);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEWHEEL);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEDRAG);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEOVER);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_MOUSEOUT);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_KEYDOWN);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_KEYPRESS);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+ string = new nsEmbedString (XPCOM.DOMEVENT_KEYUP);
+ target.RemoveEventListener (string.getAddress (), domEventListener.getAddress (), 0);
+ string.dispose ();
+}
+
+/* nsISupports */
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWeakReference.NS_IWEAKREFERENCE_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {weakReference.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webProgressListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWebBrowserChrome.NS_IWEBBROWSERCHROME_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webBrowserChrome.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWebBrowserChromeFocus.NS_IWEBBROWSERCHROMEFOCUS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {webBrowserChromeFocus.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {embeddingSiteWindow.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {interfaceRequestor.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsISupportsWeakReference.NS_ISUPPORTSWEAKREFERENCE_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supportsWeakReference.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIContextMenuListener.NS_ICONTEXTMENULISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {contextMenuListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIURIContentListener.NS_IURICONTENTLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {uriContentListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsITooltipListener.NS_ITOOLTIPLISTENER_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {tooltipListener.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIWeakReference */
+
+int QueryReferent (int /*long*/ riid, int /*long*/ ppvObject) {
+ return QueryInterface (riid, ppvObject);
+}
+
+/* nsIInterfaceRequestor */
+
+int GetInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+ if (guid.Equals (nsIDOMWindow.NS_IDOMWINDOW_IID)) {
+ int /*long*/[] aContentDOMWindow = new int /*long*/[1];
+ int rc = webBrowser.GetContentDOMWindow (aContentDOMWindow);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (aContentDOMWindow[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ XPCOM.memmove (ppvObject, aContentDOMWindow, C.PTR_SIZEOF);
+ return rc;
+ }
+ return QueryInterface (riid, ppvObject);
+}
+
+int GetWeakReference (int /*long*/ ppvObject) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {weakReference.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+}
+
+/* nsIWebProgressListener */
+
+int OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStateFlags, int aStatus) {
+ if (registerFunctionsOnState != 0 && ((aStateFlags & registerFunctionsOnState) == registerFunctionsOnState)) {
+ registerFunctionsOnState = 0;
+ Enumeration elements = functions.elements ();
+ while (elements.hasMoreElements ()) {
+ BrowserFunction function = (BrowserFunction)elements.nextElement ();
+ execute (function.functionString);
+ }
+ }
+
+ if ((aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) == 0) return XPCOM.NS_OK;
+ if ((aStateFlags & nsIWebProgressListener.STATE_START) != 0) {
+ if (request == 0) request = aRequest;
+ registerFunctionsOnState = nsIWebProgressListener.STATE_IS_REQUEST | nsIWebProgressListener.STATE_START;
+ /*
+ * Add the page's nsIDOMWindow to the collection of windows that will
+ * have DOM listeners added to them later on in the page loading
+ * process. These listeners cannot be added yet because the
+ * nsIDOMWindow is not ready to take them at this stage.
+ */
+ int /*long*/[] result = new int /*long*/[1];
+ nsIWebProgress progress = new nsIWebProgress (aWebProgress);
+ int rc = progress.GetDOMWindow (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ unhookedDOMWindows.addElement (new LONG (result[0]));
+ } else if ((aStateFlags & nsIWebProgressListener.STATE_REDIRECTING) != 0) {
+ if (request == aRequest) request = 0;
+ registerFunctionsOnState = nsIWebProgressListener.STATE_TRANSFERRING;
+ } else if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
+ /*
+ * If this page's nsIDOMWindow handle is still in unhookedDOMWindows then
+ * add its DOM listeners now. It's possible for this to happen since
+ * there is no guarantee that a STATE_TRANSFERRING state change will be
+ * received for every window in a page, which is when these listeners
+ * are typically added.
+ */
+ int /*long*/[] result = new int /*long*/[1];
+ nsIWebProgress progress = new nsIWebProgress (aWebProgress);
+ int rc = progress.GetDOMWindow (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIDOMWindow domWindow = new nsIDOMWindow (result[0]);
+
+ LONG ptrObject = new LONG (result[0]);
+ result[0] = 0;
+ int index = unhookedDOMWindows.indexOf (ptrObject);
+ if (index != -1) {
+ rc = webBrowser.GetContentDOMWindow (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ boolean isTop = result[0] == domWindow.getAddress ();
+ new nsISupports (result[0]).Release ();
+ result[0] = 0;
+
+ rc = domWindow.QueryInterface (nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIDOMEventTarget target = new nsIDOMEventTarget (result[0]);
+ result[0] = 0;
+ hookDOMListeners (target, isTop);
+ target.Release ();
+
+ /*
+ * Remove and unreference the nsIDOMWindow from the collection of windows
+ * that are waiting to have DOM listeners hooked on them.
+ */
+ unhookedDOMWindows.remove (ptrObject);
+ new nsISupports (ptrObject.value).Release ();
+ }
+
+ boolean deferCompleted = false;
+ /*
+ * If htmlBytes is not null then there is html from a previous setText() call
+ * waiting to be set into the about:blank page once it has completed loading.
+ */
+ if (htmlBytes != null) {
+ nsIRequest req = new nsIRequest (aRequest);
+ int /*long*/ name = XPCOM.nsEmbedCString_new ();
+ rc = req.GetName (name);
+ if (rc != XPCOM.NS_OK) error (rc);
+ int length = XPCOM.nsEmbedCString_Length (name);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (name);
+ byte[] dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ String url = new String (dest);
+ XPCOM.nsEmbedCString_delete (name);
+
+ if (url.startsWith (ABOUT_BLANK)) {
+ /*
+ * Setting mozilla's content with nsIWebBrowserStream invalidates the
+ * DOM listeners that were hooked on it (about:blank), so remove them and
+ * add new ones after the content has been set.
+ */
+ unhookDOMListeners ();
+
+ rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ rc = serviceManager.GetService (XPCOM.NS_IOSERVICE_CID, nsIIOService.NS_IIOSERVICE_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIIOService ioService = new nsIIOService (result[0]);
+ result[0] = 0;
+ /*
+ * Note. Mozilla ignores LINK tags used to load CSS stylesheets
+ * when the URI protocol for the nsInputStreamChannel
+ * is about:blank. The fix is to specify the file protocol.
+ */
+ byte[] aString = MozillaDelegate.wcsToMbcs (null, URI_FROMMEMORY, false);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new (aString, aString.length);
+ rc = ioService.NewURI (aSpec, null, 0, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ ioService.Release ();
+
+ nsIURI uri = new nsIURI (result[0]);
+ result[0] = 0;
+
+ rc = webBrowser.QueryInterface (nsIWebBrowserStream.NS_IWEBBROWSERSTREAM_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIWebBrowserStream stream = new nsIWebBrowserStream (result[0]);
+ result[0] = 0;
+
+ byte[] contentTypeBuffer = MozillaDelegate.wcsToMbcs (null, "text/html", true); // $NON-NLS-1$
+ int /*long*/ aContentType = XPCOM.nsEmbedCString_new (contentTypeBuffer, contentTypeBuffer.length);
+
+ rc = stream.OpenStream (uri.getAddress (), aContentType);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ /*
+ * When content is being streamed to Mozilla this is the only place
+ * where registered functions can be re-installed such that they will
+ * be invokable at load time by JS contained in the stream.
+ */
+ Enumeration elements = functions.elements ();
+ while (elements.hasMoreElements ()) {
+ BrowserFunction function = (BrowserFunction)elements.nextElement ();
+ execute (function.functionString);
+ }
+
+ int /*long*/ ptr = C.malloc (htmlBytes.length);
+ XPCOM.memmove (ptr, htmlBytes, htmlBytes.length);
+ int pageSize = 8192;
+ int pageCount = htmlBytes.length / pageSize + 1;
+ int /*long*/ current = ptr;
+ for (int i = 0; i < pageCount; i++) {
+ length = i == pageCount - 1 ? htmlBytes.length % pageSize : pageSize;
+ if (length > 0) {
+ rc = stream.AppendToStream (current, length);
+ if (rc != XPCOM.NS_OK) error (rc);
+ }
+ current += pageSize;
+ }
+ rc = stream.CloseStream ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ C.free (ptr);
+ XPCOM.nsEmbedCString_delete (aContentType);
+ stream.Release ();
+ uri.Release ();
+ htmlBytes = null;
+ /*
+ * Browser content that is set via nsIWebBrowserStream is not parsed immediately.
+ * Since clients depend on the Completed event to know when the browser's content
+ * is available, delay the sending of this event so that the stream content will
+ * be parsed first.
+ */
+ deferCompleted = true;
+
+ rc = webBrowser.GetContentDOMWindow (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ boolean isTop = result[0] == domWindow.getAddress ();
+ new nsISupports (result[0]).Release ();
+ result[0] = 0;
+
+ rc = domWindow.QueryInterface (nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ nsIDOMEventTarget target = new nsIDOMEventTarget (result[0]);
+ result[0] = 0;
+ hookDOMListeners (target, isTop);
+ target.Release ();
+ }
+ }
+ domWindow.Release ();
+
+ /*
+ * Feature in Mozilla. When a request is redirected (STATE_REDIRECTING),
+ * it never reaches the state STATE_STOP and it is replaced with a new request.
+ * The new request is received when it is in the state STATE_STOP.
+ * To handle this case, the variable request is set to 0 when the corresponding
+ * request is redirected. The following request received with the state STATE_STOP
+ * - the new request resulting from the redirection - is used to send
+ * the ProgressListener.completed event.
+ */
+ if (request == aRequest || request == 0) {
+ request = 0;
+ StatusTextEvent event = new StatusTextEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ event.text = ""; //$NON-NLS-1$
+ for (int i = 0; i < statusTextListeners.length; i++) {
+ statusTextListeners[i].changed (event);
+ }
+
+ final Display display = browser.getDisplay ();
+ final ProgressEvent event2 = new ProgressEvent (browser);
+ event2.display = display;
+ event2.widget = browser;
+ Runnable runnable = new Runnable () {
+ public void run () {
+ if (browser.isDisposed ()) return;
+ for (int i = 0; i < progressListeners.length; i++) {
+ progressListeners[i].completed (event2);
+ }
+ }
+ };
+ if (deferCompleted) {
+ display.asyncExec (runnable);
+ } else {
+ display.syncExec (runnable);
+ }
+ }
+
+ registerFunctionsOnState = 0;
+ } else if ((aStateFlags & nsIWebProgressListener.STATE_TRANSFERRING) != 0) {
+ /*
+ * Hook DOM listeners to the page's nsIDOMWindow here because this is
+ * the earliest opportunity to do so.
+ */
+ int /*long*/[] result = new int /*long*/[1];
+ nsIWebProgress progress = new nsIWebProgress (aWebProgress);
+ int rc = progress.GetDOMWindow (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIDOMWindow domWindow = new nsIDOMWindow (result[0]);
+
+ LONG ptrObject = new LONG (result[0]);
+ result[0] = 0;
+ int index = unhookedDOMWindows.indexOf (ptrObject);
+ if (index != -1) {
+ rc = webBrowser.GetContentDOMWindow (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ boolean isTop = result[0] == domWindow.getAddress ();
+ new nsISupports (result[0]).Release ();
+ result[0] = 0;
+
+ rc = domWindow.QueryInterface (nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIDOMEventTarget target = new nsIDOMEventTarget (result[0]);
+ result[0] = 0;
+ hookDOMListeners (target, isTop);
+ target.Release ();
+
+ /*
+ * Remove and unreference the nsIDOMWindow from the collection of windows
+ * that are waiting to have DOM listeners hooked on them.
+ */
+ unhookedDOMWindows.remove (ptrObject);
+ new nsISupports (ptrObject.value).Release ();
+ }
+ domWindow.Release ();
+ }
+ return XPCOM.NS_OK;
+}
+
+int OnProgressChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress) {
+ if (progressListeners.length == 0) return XPCOM.NS_OK;
+ ProgressEvent event = new ProgressEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ event.current = aCurTotalProgress;
+ event.total = aMaxTotalProgress;
+ for (int i = 0; i < progressListeners.length; i++) {
+ progressListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int OnLocationChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ aLocation) {
+ /*
+ * Feature in Mozilla. When a page is loaded via setText before a previous
+ * setText page load has completed, the expected OnStateChange STATE_STOP for the
+ * original setText never arrives because it gets replaced by the OnStateChange
+ * STATE_STOP for the new request. This results in the request field never being
+ * cleared because the original request's OnStateChange STATE_STOP is still expected
+ * (but never arrives). To handle this case, the request field is updated to the new
+ * overriding request since its OnStateChange STATE_STOP will be received next.
+ */
+ if (request != 0 && request != aRequest) request = aRequest;
+
+ if (locationListeners.length == 0) return XPCOM.NS_OK;
+
+ nsIWebProgress webProgress = new nsIWebProgress (aWebProgress);
+ int /*long*/[] aDOMWindow = new int /*long*/[1];
+ int rc = webProgress.GetDOMWindow (aDOMWindow);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (aDOMWindow[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIDOMWindow domWindow = new nsIDOMWindow (aDOMWindow[0]);
+ int /*long*/[] aTop = new int /*long*/[1];
+ rc = domWindow.GetTop (aTop);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (aTop[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+ domWindow.Release ();
+
+ nsIDOMWindow topWindow = new nsIDOMWindow (aTop[0]);
+ topWindow.Release ();
+
+ nsIURI location = new nsIURI (aLocation);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ location.GetSpec (aSpec);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ byte[] dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ String url = new String (dest);
+
+ /*
+ * As of Mozilla 1.8, the first time that a page is displayed, regardless of
+ * whether it's via Browser.setURL() or Browser.setText(), the GRE navigates
+ * to about:blank and fires the corresponding navigation events. Do not send
+ * this event on to the user since it is not expected.
+ */
+ if (!IsPre_1_8 && aRequest == 0 && url.startsWith (ABOUT_BLANK)) return XPCOM.NS_OK;
+
+ LocationEvent event = new LocationEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ event.location = url;
+ /*
+ * If the URI indicates that the page is being rendered from memory
+ * (via setText()) then set it to about:blank to be consistent with IE.
+ */
+ if (event.location.equals (URI_FROMMEMORY)) event.location = ABOUT_BLANK;
+ event.top = aTop[0] == aDOMWindow[0];
+ for (int i = 0; i < locationListeners.length; i++) {
+ locationListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int OnStatusChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStatus, int /*long*/ aMessage) {
+ if (statusTextListeners.length == 0) return XPCOM.NS_OK;
+ StatusTextEvent event = new StatusTextEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ int length = XPCOM.strlen_PRUnichar (aMessage);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aMessage, length * 2);
+ event.text = new String (dest);
+ for (int i = 0; i < statusTextListeners.length; i++) {
+ statusTextListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int OnSecurityChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int state) {
+ return XPCOM.NS_OK;
+}
+
+/* nsIWebBrowserChrome */
+
+int SetStatus (int statusType, int /*long*/ status) {
+ if (statusTextListeners.length == 0) return XPCOM.NS_OK;
+ StatusTextEvent event = new StatusTextEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ int length = XPCOM.strlen_PRUnichar (status);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, status, length * 2);
+ String string = new String (dest);
+ event.text = string;
+ for (int i = 0; i < statusTextListeners.length; i++) {
+ statusTextListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int GetWebBrowser (int /*long*/ aWebBrowser) {
+ int /*long*/[] ret = new int /*long*/[1];
+ if (webBrowser != null) {
+ webBrowser.AddRef ();
+ ret[0] = webBrowser.getAddress ();
+ }
+ XPCOM.memmove (aWebBrowser, ret, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int SetWebBrowser (int /*long*/ aWebBrowser) {
+ if (webBrowser != null) webBrowser.Release ();
+ webBrowser = aWebBrowser != 0 ? new nsIWebBrowser (aWebBrowser) : null;
+ return XPCOM.NS_OK;
+}
+
+int GetChromeFlags (int /*long*/ aChromeFlags) {
+ int[] ret = new int[1];
+ ret[0] = chromeFlags;
+ XPCOM.memmove (aChromeFlags, ret, 4); /* PRUint32 */
+ return XPCOM.NS_OK;
+}
+
+int SetChromeFlags (int aChromeFlags) {
+ chromeFlags = aChromeFlags;
+ return XPCOM.NS_OK;
+}
+
+int DestroyBrowserWindow () {
+ WindowEvent newEvent = new WindowEvent (browser);
+ newEvent.display = browser.getDisplay ();
+ newEvent.widget = browser;
+ for (int i = 0; i < closeWindowListeners.length; i++) {
+ closeWindowListeners[i].close (newEvent);
+ }
+ /*
+ * Note on Mozilla. The DestroyBrowserWindow notification cannot be cancelled.
+ * The browser widget cannot be used after this notification has been received.
+ * The application is advised to close the window hosting the browser widget.
+ * The browser widget must be disposed in all cases.
+ */
+ browser.dispose ();
+ return XPCOM.NS_OK;
+}
+
+int SizeBrowserTo (int aCX, int aCY) {
+ size = new Point (aCX, aCY);
+ boolean isChrome = (chromeFlags & nsIWebBrowserChrome.CHROME_OPENAS_CHROME) != 0;
+ if (isChrome) {
+ Shell shell = browser.getShell ();
+ shell.setSize (shell.computeSize (size.x, size.y));
+ }
+ return XPCOM.NS_OK;
+}
+
+int ShowAsModal () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_CONTEXTSTACK_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIJSContextStack.NS_IJSCONTEXTSTACK_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIJSContextStack stack = new nsIJSContextStack (result[0]);
+ result[0] = 0;
+ rc = stack.Push (0);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ Shell shell = browser.getShell ();
+ Display display = browser.getDisplay ();
+ while (!shell.isDisposed ()) {
+ if (!display.readAndDispatch ()) display.sleep ();
+ }
+
+ rc = stack.Pop (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ stack.Release ();
+ return XPCOM.NS_OK;
+}
+
+int IsWindowModal (int /*long*/ retval) {
+ int result = (chromeFlags & nsIWebBrowserChrome.CHROME_MODAL) != 0 ? 1 : 0;
+ XPCOM.memmove (retval, new int[] {result}, 4); /* PRBool */
+ return XPCOM.NS_OK;
+}
+
+int ExitModalEventLoop (int aStatus) {
+ return XPCOM.NS_OK;
+}
+
+/* nsIEmbeddingSiteWindow */
+
+int SetDimensions (int flags, int x, int y, int cx, int cy) {
+ if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) != 0) {
+ location = new Point (x, y);
+ browser.getShell ().setLocation (x, y);
+ }
+ if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_SIZE_INNER) != 0) {
+ browser.setSize (cx, cy);
+ }
+ if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_SIZE_OUTER) != 0) {
+ browser.getShell ().setSize (cx, cy);
+ }
+ return XPCOM.NS_OK;
+}
+
+int GetDimensions (int flags, int /*long*/ x, int /*long*/ y, int /*long*/ cx, int /*long*/ cy) {
+ if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) != 0) {
+ Point location = browser.getShell ().getLocation ();
+ if (x != 0) C.memmove (x, new int[] {location.x}, 4); /* PRInt32 */
+ if (y != 0) C.memmove (y, new int[] {location.y}, 4); /* PRInt32 */
+ }
+ if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_SIZE_INNER) != 0) {
+ Point size = browser.getSize ();
+ if (cx != 0) C.memmove (cx, new int[] {size.x}, 4); /* PRInt32 */
+ if (cy != 0) C.memmove (cy, new int[] {size.y}, 4); /* PRInt32 */
+ }
+ if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_SIZE_OUTER) != 0) {
+ Point size = browser.getShell().getSize ();
+ if (cx != 0) C.memmove (cx, new int[] {size.x}, 4); /* PRInt32 */
+ if (cy != 0) C.memmove (cy, new int[] {size.y}, 4); /* PRInt32 */
+ }
+ return XPCOM.NS_OK;
+}
+
+int SetFocus () {
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ rc = baseWindow.SetFocus ();
+ if (rc != XPCOM.NS_OK) error (rc);
+ baseWindow.Release ();
+
+ /*
+ * Note. Mozilla notifies here that one of the children took
+ * focus. This could or should be used to fire an SWT.FOCUS_IN
+ * event on Browser focus listeners.
+ */
+ return XPCOM.NS_OK;
+}
+
+int GetVisibility (int /*long*/ aVisibility) {
+ boolean visible = browser.isVisible () && !browser.getShell ().getMinimized ();
+ XPCOM.memmove (aVisibility, new int[] {visible ? 1 : 0}, 4); /* PRBool */
+ return XPCOM.NS_OK;
+}
+
+int SetVisibility (int aVisibility) {
+ if (isChild) {
+ WindowEvent event = new WindowEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ if (aVisibility != 0) {
+ /*
+ * Bug in Mozilla. When the JavaScript window.open is executed, Mozilla
+ * fires multiple SetVisibility 1 notifications. The workaround is
+ * to ignore subsequent notifications.
+ */
+ if (!visible) {
+ visible = true;
+ event.location = location;
+ event.size = size;
+ event.addressBar = (chromeFlags & nsIWebBrowserChrome.CHROME_LOCATIONBAR) != 0;
+ /* Feature of OSX. The menu bar is always displayed. */
+ boolean isOSX = Platform.PLATFORM.equals ("cocoa") || Platform.PLATFORM.equals ("carbon");
+ event.menuBar = isOSX || (chromeFlags & nsIWebBrowserChrome.CHROME_MENUBAR) != 0;
+ event.statusBar = (chromeFlags & nsIWebBrowserChrome.CHROME_STATUSBAR) != 0;
+ event.toolBar = (chromeFlags & nsIWebBrowserChrome.CHROME_TOOLBAR) != 0;
+ for (int i = 0; i < visibilityWindowListeners.length; i++) {
+ visibilityWindowListeners[i].show (event);
+ }
+ location = null;
+ size = null;
+ }
+ } else {
+ visible = false;
+ for (int i = 0; i < visibilityWindowListeners.length; i++) {
+ visibilityWindowListeners[i].hide (event);
+ }
+ }
+ } else {
+ visible = aVisibility != 0;
+ }
+ return XPCOM.NS_OK;
+}
+
+int GetTitle (int /*long*/ aTitle) {
+ return XPCOM.NS_OK;
+}
+
+int SetTitle (int /*long*/ aTitle) {
+ if (titleListeners.length == 0) return XPCOM.NS_OK;
+ TitleEvent event = new TitleEvent (browser);
+ event.display = browser.getDisplay ();
+ event.widget = browser;
+ /*
+ * To be consistent with other platforms the title event should
+ * contain the page's url if the page does not contain a <title>
+ * tag.
+ */
+ int length = XPCOM.strlen_PRUnichar (aTitle);
+ if (length > 0) {
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aTitle, length * 2);
+ event.title = new String (dest);
+ } else {
+ event.title = getUrl ();
+ }
+ for (int i = 0; i < titleListeners.length; i++) {
+ titleListeners[i].changed (event);
+ }
+ return XPCOM.NS_OK;
+}
+
+int GetSiteWindow (int /*long*/ aSiteWindow) {
+ /*
+ * Note. The handle is expected to be an HWND on Windows and
+ * a GtkWidget* on GTK. This callback is invoked on Windows
+ * when the javascript window.print is invoked and the print
+ * dialog comes up. If no handle is returned, the print dialog
+ * does not come up on this platform.
+ */
+ XPCOM.memmove (aSiteWindow, new int /*long*/[] {embedHandle}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+/* nsIWebBrowserChromeFocus */
+
+int FocusNextElement () {
+ /*
+ * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
+ * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
+ * with the Mozilla application TestGtkEmbed. The workaround is to
+ * send the traversal notification after this callback returns.
+ */
+ browser.getDisplay ().asyncExec (new Runnable () {
+ public void run () {
+ if (browser.isDisposed ()) return;
+ browser.traverse (SWT.TRAVERSE_TAB_NEXT);
+ }
+ });
+ return XPCOM.NS_OK;
+}
+
+int FocusPrevElement () {
+ /*
+ * Bug in Mozilla embedding API. Mozilla takes back the focus after sending
+ * this event. This prevents tabbing out of Mozilla. This behaviour can be reproduced
+ * with the Mozilla application TestGtkEmbed. The workaround is to
+ * send the traversal notification after this callback returns.
+ */
+ browser.getDisplay ().asyncExec (new Runnable () {
+ public void run () {
+ if (browser.isDisposed ()) return;
+ browser.traverse (SWT.TRAVERSE_TAB_PREVIOUS);
+ }
+ });
+ return XPCOM.NS_OK;
+}
+
+/* nsIContextMenuListener */
+
+int OnShowContextMenu (int aContextFlags, int /*long*/ aEvent, int /*long*/ aNode) {
+ nsIDOMEvent domEvent = new nsIDOMEvent (aEvent);
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = domEvent.QueryInterface (nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIDOMMouseEvent domMouseEvent = new nsIDOMMouseEvent (result[0]);
+ int[] aScreenX = new int[1], aScreenY = new int[1];
+ rc = domMouseEvent.GetScreenX (aScreenX);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domMouseEvent.GetScreenY (aScreenY);
+ if (rc != XPCOM.NS_OK) error (rc);
+ domMouseEvent.Release ();
+
+ Event event = new Event ();
+ event.x = aScreenX[0];
+ event.y = aScreenY[0];
+ browser.notifyListeners (SWT.MenuDetect, event);
+ if (!event.doit || browser.isDisposed ()) return XPCOM.NS_OK;
+ Menu menu = browser.getMenu ();
+ if (menu != null && !menu.isDisposed ()) {
+ if (aScreenX[0] != event.x || aScreenY[0] != event.y) {
+ menu.setLocation (event.x, event.y);
+ }
+ menu.setVisible (true);
+ }
+ return XPCOM.NS_OK;
+}
+
+/* nsIURIContentListener */
+
+int OnStartURIOpen (int /*long*/ aURI, int /*long*/ retval) {
+ authCount = 0;
+
+ nsIURI location = new nsIURI (aURI);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ location.GetSpec (aSpec);
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ byte[] dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ XPCOM.nsEmbedCString_delete (aSpec);
+ String value = new String (dest);
+ boolean doit = true;
+ if (request == 0) {
+ /*
+ * listeners should not be notified of internal transitions like "javascript:..."
+ * because this is an implementation side-effect, not a true navigate
+ */
+ if (!value.startsWith (PREFIX_JAVASCRIPT)) {
+ if (locationListeners.length > 0) {
+ LocationEvent event = new LocationEvent (browser);
+ event.display = browser.getDisplay();
+ event.widget = browser;
+ event.location = value;
+ /*
+ * If the URI indicates that the page is being rendered from memory
+ * (via setText()) then set it to about:blank to be consistent with IE.
+ */
+ if (event.location.equals (URI_FROMMEMORY)) event.location = ABOUT_BLANK;
+ event.doit = doit;
+ for (int i = 0; i < locationListeners.length; i++) {
+ locationListeners[i].changing (event);
+ }
+ doit = event.doit && !browser.isDisposed();
+ }
+
+ if (doit) {
+ if (jsEnabledChanged) {
+ jsEnabledChanged = false;
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = webBrowser.QueryInterface (nsIWebBrowserSetup.NS_IWEBBROWSERSETUP_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIWebBrowserSetup setup = new nsIWebBrowserSetup (result[0]);
+ result[0] = 0;
+ rc = setup.SetProperty (nsIWebBrowserSetup.SETUP_ALLOW_JAVASCRIPT, jsEnabled ? 1 : 0);
+ if (rc != XPCOM.NS_OK) error (rc);
+ setup.Release ();
+ }
+ lastNavigateURL = value;
+ }
+ }
+ }
+ XPCOM.memmove (retval, new int[] {doit ? 0 : 1}, 4); /* PRBool */
+ return XPCOM.NS_OK;
+}
+
+int DoContent (int /*long*/ aContentType, int aIsContentPreferred, int /*long*/ aRequest, int /*long*/ aContentHandler, int /*long*/ retval) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int IsPreferred (int /*long*/ aContentType, int /*long*/ aDesiredContentType, int /*long*/ retval) {
+ boolean preferred = false;
+ int size = XPCOM.strlen (aContentType);
+ if (size > 0) {
+ byte[] typeBytes = new byte[size + 1];
+ XPCOM.memmove (typeBytes, aContentType, size);
+ String contentType = new String (typeBytes, 0, size);
+
+ /* do not attempt to handle known problematic content types */
+ if (!contentType.equals (XPCOM.CONTENT_MAYBETEXT) && !contentType.equals (XPCOM.CONTENT_MULTIPART)) {
+ /* determine whether browser can handle the content type */
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+
+ /* First try to use the nsIWebNavigationInfo if it's available (>= mozilla 1.8) */
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_WEBNAVIGATIONINFO_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIWebNavigationInfo.NS_IWEBNAVIGATIONINFO_IID, result);
+ if (rc == XPCOM.NS_OK) {
+ byte[] bytes = MozillaDelegate.wcsToMbcs (null, contentType, true);
+ int /*long*/ typePtr = XPCOM.nsEmbedCString_new (bytes, bytes.length);
+ nsIWebNavigationInfo info = new nsIWebNavigationInfo (result[0]);
+ result[0] = 0;
+ int[] isSupportedResult = new int[1]; /* PRUint32 */
+ rc = info.IsTypeSupported (typePtr, 0, isSupportedResult);
+ if (rc != XPCOM.NS_OK) error (rc);
+ info.Release ();
+ XPCOM.nsEmbedCString_delete (typePtr);
+ preferred = isSupportedResult[0] != 0;
+ } else {
+ /* nsIWebNavigationInfo is not available, so do the type lookup */
+ result[0] = 0;
+ rc = serviceManager.GetService (XPCOM.NS_CATEGORYMANAGER_CID, nsICategoryManager.NS_ICATEGORYMANAGER_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsICategoryManager categoryManager = new nsICategoryManager (result[0]);
+ result[0] = 0;
+ byte[] categoryBytes = MozillaDelegate.wcsToMbcs (null, "Gecko-Content-Viewers", true); //$NON-NLS-1$
+ rc = categoryManager.GetCategoryEntry (categoryBytes, typeBytes, result);
+ categoryManager.Release ();
+ /* if no viewer for the content type is registered then rc == XPCOM.NS_ERROR_NOT_AVAILABLE */
+ preferred = rc == XPCOM.NS_OK;
+ }
+ serviceManager.Release ();
+ }
+ }
+
+ XPCOM.memmove(retval, new int[] {preferred ? 1 : 0}, 4); /* PRBool */
+ if (preferred) {
+ XPCOM.memmove (aDesiredContentType, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ }
+ return XPCOM.NS_OK;
+}
+
+int CanHandleContent (int /*long*/ aContentType, int aIsContentPreferred, int /*long*/ aDesiredContentType, int /*long*/ retval) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetLoadCookie (int /*long*/ aLoadCookie) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetLoadCookie (int /*long*/ aLoadCookie) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetParentContentListener (int /*long*/ aParentContentListener) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int SetParentContentListener (int /*long*/ aParentContentListener) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+/* nsITooltipListener */
+
+int OnShowTooltip (int aXCoords, int aYCoords, int /*long*/ aTipText) {
+ int length = XPCOM.strlen_PRUnichar (aTipText);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aTipText, length * 2);
+ String text = new String (dest);
+ if (tip != null && !tip.isDisposed ()) tip.dispose ();
+ Display display = browser.getDisplay ();
+ Shell parent = browser.getShell ();
+ tip = new Shell (parent, SWT.ON_TOP);
+ tip.setLayout (new FillLayout());
+ Label label = new Label (tip, SWT.CENTER);
+ label.setForeground (display.getSystemColor (SWT.COLOR_INFO_FOREGROUND));
+ label.setBackground (display.getSystemColor (SWT.COLOR_INFO_BACKGROUND));
+ label.setText (text);
+ /*
+ * Bug in Mozilla embedded API. Tooltip coordinates are wrong for
+ * elements inside an inline frame (IFrame tag). The workaround is
+ * to position the tooltip based on the mouse cursor location.
+ */
+ Point point = display.getCursorLocation ();
+ /* Assuming cursor is 21x21 because this is the size of
+ * the arrow cursor on Windows
+ */
+ point.y += 21;
+ tip.setLocation (point);
+ tip.pack ();
+ tip.setVisible (true);
+ return XPCOM.NS_OK;
+}
+
+int OnHideTooltip () {
+ if (tip != null && !tip.isDisposed ()) tip.dispose ();
+ tip = null;
+ return XPCOM.NS_OK;
+}
+
+/* nsIDOMEventListener */
+
+int HandleEvent (int /*long*/ event) {
+ nsIDOMEvent domEvent = new nsIDOMEvent (event);
+
+ int /*long*/ type = XPCOM.nsEmbedString_new ();
+ int rc = domEvent.GetType (type);
+ if (rc != XPCOM.NS_OK) error (rc);
+ int length = XPCOM.nsEmbedString_Length (type);
+ int /*long*/ buffer = XPCOM.nsEmbedString_get (type);
+ char[] chars = new char[length];
+ XPCOM.memmove (chars, buffer, length * 2);
+ String typeString = new String (chars);
+ XPCOM.nsEmbedString_delete (type);
+
+ if (XPCOM.DOMEVENT_UNLOAD.equals (typeString)) {
+ int /*long*/[] result = new int /*long*/[1];
+ rc = domEvent.GetCurrentTarget (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+
+ nsIDOMEventTarget target = new nsIDOMEventTarget (result[0]);
+ unhookDOMListeners (target);
+ target.Release ();
+ return XPCOM.NS_OK;
+ }
+
+ if (XPCOM.DOMEVENT_FOCUS.equals (typeString)) {
+ delegate.handleFocus ();
+ return XPCOM.NS_OK;
+ }
+
+ if (XPCOM.DOMEVENT_KEYDOWN.equals (typeString)) {
+ int /*long*/[] result = new int /*long*/[1];
+ rc = domEvent.QueryInterface (nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIDOMKeyEvent domKeyEvent = new nsIDOMKeyEvent (result[0]);
+ result[0] = 0;
+
+ int[] aKeyCode = new int[1]; /* PRUint32 */
+ rc = domKeyEvent.GetKeyCode (aKeyCode);
+ if (rc != XPCOM.NS_OK) error (rc);
+ int keyCode = translateKey (aKeyCode[0]);
+
+ /*
+ * if keyCode == lastKeyCode then either a repeating key like Shift
+ * is being held or a key for which key events are not sent has been
+ * pressed. In both of these cases a KeyDown should not be sent.
+ */
+ if (keyCode != lastKeyCode) {
+ lastKeyCode = keyCode;
+ switch (keyCode) {
+ case SWT.SHIFT:
+ case SWT.CONTROL:
+ case SWT.ALT:
+ case SWT.CAPS_LOCK:
+ case SWT.NUM_LOCK:
+ case SWT.SCROLL_LOCK:
+ case SWT.COMMAND: {
+ /* keypress events will not be received for these keys, so send KeyDowns for them now */
+ int[] aAltKey = new int[1], aCtrlKey = new int[1], aShiftKey = new int[1], aMetaKey = new int[1]; /* PRBool */
+ rc = domKeyEvent.GetAltKey (aAltKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetCtrlKey (aCtrlKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetShiftKey (aShiftKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetMetaKey (aMetaKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ Event keyEvent = new Event ();
+ keyEvent.widget = browser;
+ keyEvent.type = SWT.KeyDown;
+ keyEvent.keyCode = keyCode;
+ keyEvent.stateMask = (aAltKey[0] != 0 ? SWT.ALT : 0) | (aCtrlKey[0] != 0 ? SWT.CTRL : 0) | (aShiftKey[0] != 0 ? SWT.SHIFT : 0) | (aMetaKey[0] != 0 ? SWT.COMMAND : 0);
+ keyEvent.stateMask &= ~keyCode; /* remove current keydown if it's a state key */
+ browser.notifyListeners (keyEvent.type, keyEvent);
+ if (!keyEvent.doit || browser.isDisposed ()) {
+ domEvent.PreventDefault ();
+ }
+ break;
+ }
+ default: {
+ /*
+ * If the keydown has Meta (but not Meta+Ctrl) as a modifier then send a KeyDown event for it here
+ * because a corresponding keypress event will not be received for it from the DOM. If the keydown
+ * does not have Meta as a modifier, or has Meta+Ctrl as a modifier, then then do nothing here
+ * because its KeyDown event will be sent from the keypress listener.
+ */
+ int[] aMetaKey = new int[1]; /* PRBool */
+ rc = domKeyEvent.GetMetaKey (aMetaKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (aMetaKey[0] != 0) {
+ int[] aCtrlKey = new int[1]; /* PRBool */
+ rc = domKeyEvent.GetCtrlKey (aCtrlKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (aCtrlKey[0] == 0) {
+ int[] aAltKey = new int[1], aShiftKey = new int[1]; /* PRBool */
+ rc = domKeyEvent.GetAltKey (aAltKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetShiftKey (aShiftKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+
+ Event keyEvent = new Event ();
+ keyEvent.widget = browser;
+ keyEvent.type = SWT.KeyDown;
+ keyEvent.keyCode = lastKeyCode;
+ keyEvent.stateMask = (aAltKey[0] != 0 ? SWT.ALT : 0) | (aCtrlKey[0] != 0? SWT.CTRL : 0) | (aShiftKey[0] != 0? SWT.SHIFT : 0) | (aMetaKey[0] != 0? SWT.COMMAND : 0);
+ browser.notifyListeners (keyEvent.type, keyEvent);
+ if (!keyEvent.doit || browser.isDisposed ()) {
+ domEvent.PreventDefault ();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ domKeyEvent.Release ();
+ return XPCOM.NS_OK;
+ }
+
+ if (XPCOM.DOMEVENT_KEYPRESS.equals (typeString)) {
+ /*
+ * if keydown could not determine a keycode for this key then it's a
+ * key for which key events are not sent (eg.- the Windows key)
+ */
+ if (lastKeyCode == 0) return XPCOM.NS_OK;
+
+ /*
+ * On linux only, unexpected keypress events are received for some
+ * modifier keys. The workaround is to ignore these events since
+ * KeyDown events are sent for these keys in the keydown listener.
+ */
+ switch (lastKeyCode) {
+ case SWT.CAPS_LOCK:
+ case SWT.NUM_LOCK:
+ case SWT.SCROLL_LOCK: return XPCOM.NS_OK;
+ }
+
+ int /*long*/[] result = new int /*long*/[1];
+ rc = domEvent.QueryInterface (nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIDOMKeyEvent domKeyEvent = new nsIDOMKeyEvent (result[0]);
+ result[0] = 0;
+
+ int[] aAltKey = new int[1], aCtrlKey = new int[1], aShiftKey = new int[1], aMetaKey = new int[1]; /* PRBool */
+ rc = domKeyEvent.GetAltKey (aAltKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetCtrlKey (aCtrlKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetShiftKey (aShiftKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetMetaKey (aMetaKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ domKeyEvent.Release ();
+
+ int[] aCharCode = new int[1]; /* PRUint32 */
+ rc = domKeyEvent.GetCharCode (aCharCode);
+ if (rc != XPCOM.NS_OK) error (rc);
+ lastCharCode = aCharCode[0];
+ if (lastCharCode == 0) {
+ switch (lastKeyCode) {
+ case SWT.TAB: lastCharCode = SWT.TAB; break;
+ case SWT.CR: lastCharCode = SWT.CR; break;
+ case SWT.BS: lastCharCode = SWT.BS; break;
+ case SWT.ESC: lastCharCode = SWT.ESC; break;
+ case SWT.DEL: lastCharCode = SWT.DEL; break;
+ }
+ }
+ if (aCtrlKey[0] != 0 && (0 <= lastCharCode && lastCharCode <= 0x7F)) {
+ if ('a' <= lastCharCode && lastCharCode <= 'z') lastCharCode -= 'a' - 'A';
+ if (64 <= lastCharCode && lastCharCode <= 95) lastCharCode -= 64;
+ }
+
+ Event keyEvent = new Event ();
+ keyEvent.widget = browser;
+ keyEvent.type = SWT.KeyDown;
+ keyEvent.keyCode = lastKeyCode;
+ keyEvent.character = (char)lastCharCode;
+ keyEvent.stateMask = (aAltKey[0] != 0 ? SWT.ALT : 0) | (aCtrlKey[0] != 0 ? SWT.CTRL : 0) | (aShiftKey[0] != 0 ? SWT.SHIFT : 0) | (aMetaKey[0] != 0 ? SWT.COMMAND : 0);
+ browser.notifyListeners (keyEvent.type, keyEvent);
+ if (!keyEvent.doit || browser.isDisposed ()) {
+ domEvent.PreventDefault ();
+ }
+ return XPCOM.NS_OK;
+ }
+
+ if (XPCOM.DOMEVENT_KEYUP.equals (typeString)) {
+ int /*long*/[] result = new int /*long*/[1];
+ rc = domEvent.QueryInterface (nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIDOMKeyEvent domKeyEvent = new nsIDOMKeyEvent (result[0]);
+ result[0] = 0;
+
+ int[] aKeyCode = new int[1]; /* PRUint32 */
+ rc = domKeyEvent.GetKeyCode (aKeyCode);
+ if (rc != XPCOM.NS_OK) error (rc);
+ int keyCode = translateKey (aKeyCode[0]);
+ if (keyCode == 0) {
+ /* indicates a key for which key events are not sent */
+ domKeyEvent.Release ();
+ return XPCOM.NS_OK;
+ }
+ if (keyCode != lastKeyCode) {
+ /* keyup does not correspond to the last keydown */
+ lastKeyCode = keyCode;
+ lastCharCode = 0;
+ }
+
+ int[] aAltKey = new int[1], aCtrlKey = new int[1], aShiftKey = new int[1], aMetaKey = new int[1]; /* PRBool */
+ rc = domKeyEvent.GetAltKey (aAltKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetCtrlKey (aCtrlKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetShiftKey (aShiftKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domKeyEvent.GetMetaKey (aMetaKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ domKeyEvent.Release ();
+
+ Event keyEvent = new Event ();
+ keyEvent.widget = browser;
+ keyEvent.type = SWT.KeyUp;
+ keyEvent.keyCode = lastKeyCode;
+ keyEvent.character = (char)lastCharCode;
+ keyEvent.stateMask = (aAltKey[0] != 0 ? SWT.ALT : 0) | (aCtrlKey[0] != 0 ? SWT.CTRL : 0) | (aShiftKey[0] != 0 ? SWT.SHIFT : 0) | (aMetaKey[0] != 0 ? SWT.COMMAND : 0);
+ switch (lastKeyCode) {
+ case SWT.SHIFT:
+ case SWT.CONTROL:
+ case SWT.ALT:
+ case SWT.COMMAND: {
+ keyEvent.stateMask |= lastKeyCode;
+ }
+ }
+ browser.notifyListeners (keyEvent.type, keyEvent);
+ if (!keyEvent.doit || browser.isDisposed ()) {
+ domEvent.PreventDefault ();
+ }
+ lastKeyCode = lastCharCode = 0;
+ return XPCOM.NS_OK;
+ }
+
+ /* mouse event */
+
+ int /*long*/[] result = new int /*long*/[1];
+ rc = domEvent.QueryInterface (nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
+ nsIDOMMouseEvent domMouseEvent = new nsIDOMMouseEvent (result[0]);
+ result[0] = 0;
+
+ /*
+ * MouseOver and MouseOut events are fired any time the mouse enters or exits
+ * any element within the Browser. To ensure that SWT events are only
+ * fired for mouse movements into or out of the Browser, do not fire an
+ * event if the element being exited (on MouseOver) or entered (on MouseExit)
+ * is within the Browser.
+ */
+ if (XPCOM.DOMEVENT_MOUSEOVER.equals (typeString) || XPCOM.DOMEVENT_MOUSEOUT.equals (typeString)) {
+ rc = domMouseEvent.GetRelatedTarget (result);
+ if (rc != XPCOM.NS_OK) error (rc);
+ if (result[0] != 0) {
+ domMouseEvent.Release ();
+ return XPCOM.NS_OK;
+ }
+ }
+
+ int[] aClientX = new int[1], aClientY = new int[1], aDetail = new int[1]; /* PRInt32 */
+ rc = domMouseEvent.GetClientX (aClientX);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domMouseEvent.GetClientY (aClientY);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domMouseEvent.GetDetail (aDetail);
+ if (rc != XPCOM.NS_OK) error (rc);
+ short[] aButton = new short[1]; /* PRUint16 */
+ rc = domMouseEvent.GetButton (aButton);
+ if (rc != XPCOM.NS_OK) error (rc);
+ int[] aAltKey = new int[1], aCtrlKey = new int[1], aShiftKey = new int[1], aMetaKey = new int[1]; /* PRBool */
+ rc = domMouseEvent.GetAltKey (aAltKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domMouseEvent.GetCtrlKey (aCtrlKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domMouseEvent.GetShiftKey (aShiftKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ rc = domMouseEvent.GetMetaKey (aMetaKey);
+ if (rc != XPCOM.NS_OK) error (rc);
+ domMouseEvent.Release ();
+
+ Event mouseEvent = new Event ();
+ mouseEvent.widget = browser;
+ mouseEvent.x = aClientX[0]; mouseEvent.y = aClientY[0];
+ mouseEvent.stateMask = (aAltKey[0] != 0 ? SWT.ALT : 0) | (aCtrlKey[0] != 0 ? SWT.CTRL : 0) | (aShiftKey[0] != 0 ? SWT.SHIFT : 0) | (aMetaKey[0] != 0 ? SWT.COMMAND : 0);
+
+ if (XPCOM.DOMEVENT_MOUSEDOWN.equals (typeString)) {
+ delegate.handleMouseDown ();
+ mouseEvent.type = SWT.MouseDown;
+ mouseEvent.button = aButton[0] + 1;
+ mouseEvent.count = aDetail[0];
+ } else if (XPCOM.DOMEVENT_MOUSEUP.equals (typeString)) {
+ /*
+ * Bug on OSX. For some reason multiple mouseup events come from the DOM
+ * when button 3 is released on OSX. The first of these events has a count
+ * detail and the others do not. The workaround is to not fire received
+ * button 3 mouseup events that do not have a count since mouse events
+ * without a click count are not valid.
+ */
+ int button = aButton[0] + 1;
+ int count = aDetail[0];
+ if (count == 0 && button == 3) return XPCOM.NS_OK;
+ mouseEvent.type = SWT.MouseUp;
+ mouseEvent.button = button;
+ mouseEvent.count = count;
+ } else if (XPCOM.DOMEVENT_MOUSEMOVE.equals (typeString)) {
+ mouseEvent.type = SWT.MouseMove;
+ } else if (XPCOM.DOMEVENT_MOUSEWHEEL.equals (typeString)) {
+ mouseEvent.type = SWT.MouseWheel;
+ mouseEvent.count = -aDetail[0];
+ } else if (XPCOM.DOMEVENT_MOUSEOVER.equals (typeString)) {
+ mouseEvent.type = SWT.MouseEnter;
+ } else if (XPCOM.DOMEVENT_MOUSEOUT.equals (typeString)) {
+ mouseEvent.type = SWT.MouseExit;
+ } else if (XPCOM.DOMEVENT_MOUSEDRAG.equals (typeString)) {
+ mouseEvent.type = SWT.DragDetect;
+ mouseEvent.button = aButton[0] + 1;
+ switch (mouseEvent.button) {
+ case 1: mouseEvent.stateMask |= SWT.BUTTON1; break;
+ case 2: mouseEvent.stateMask |= SWT.BUTTON2; break;
+ case 3: mouseEvent.stateMask |= SWT.BUTTON3; break;
+ case 4: mouseEvent.stateMask |= SWT.BUTTON4; break;
+ case 5: mouseEvent.stateMask |= SWT.BUTTON5; break;
+ }
+ }
+
+ browser.notifyListeners (mouseEvent.type, mouseEvent);
+ if (browser.isDisposed ()) return XPCOM.NS_OK;
+ if (aDetail[0] == 2 && XPCOM.DOMEVENT_MOUSEDOWN.equals (typeString)) {
+ mouseEvent = new Event ();
+ mouseEvent.widget = browser;
+ mouseEvent.x = aClientX[0]; mouseEvent.y = aClientY[0];
+ mouseEvent.stateMask = (aAltKey[0] != 0 ? SWT.ALT : 0) | (aCtrlKey[0] != 0 ? SWT.CTRL : 0) | (aShiftKey[0] != 0 ? SWT.SHIFT : 0) | (aMetaKey[0] != 0 ? SWT.COMMAND : 0);
+ mouseEvent.type = SWT.MouseDoubleClick;
+ mouseEvent.button = aButton[0] + 1;
+ mouseEvent.count = aDetail[0];
+ browser.notifyListeners (mouseEvent.type, mouseEvent);
+ }
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptDialog.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptDialog.java
new file mode 100644
index 0000000000..f4558d082f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptDialog.java
@@ -0,0 +1,294 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.*;
+import org.eclipse.swt.layout.*;
+import org.eclipse.swt.widgets.*;
+
+class PromptDialog extends Dialog {
+
+ PromptDialog(Shell parent, int style) {
+ super(parent, style);
+ }
+
+ PromptDialog(Shell parent) {
+ this(parent, 0);
+ }
+
+ void alertCheck(String title, String text, String check, final int[] checkValue) {
+ Shell parent = getParent();
+ final Shell shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+ if (title != null) shell.setText(title);
+ GridLayout gridLayout = new GridLayout();
+ shell.setLayout(gridLayout);
+ Label label = new Label(shell, SWT.WRAP);
+ label.setText(text);
+ GridData data = new GridData();
+ Monitor monitor = parent.getMonitor();
+ int maxWidth = monitor.getBounds().width * 2 / 3;
+ int width = label.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
+ data.widthHint = Math.min(width, maxWidth);
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ label.setLayoutData (data);
+
+ final Button checkButton = check != null ? new Button(shell, SWT.CHECK) : null;
+ if (checkButton != null) {
+ checkButton.setText(check);
+ checkButton.setSelection(checkValue[0] != 0);
+ data = new GridData ();
+ data.horizontalAlignment = GridData.BEGINNING;
+ checkButton.setLayoutData (data);
+ }
+ Button okButton = new Button(shell, SWT.PUSH);
+ okButton.setText(SWT.getMessage("SWT_OK")); //$NON-NLS-1$
+ data = new GridData ();
+ data.horizontalAlignment = GridData.CENTER;
+ okButton.setLayoutData (data);
+ okButton.addListener(SWT.Selection, new Listener() {
+ public void handleEvent(Event event) {
+ if (checkButton != null) checkValue[0] = checkButton.getSelection() ? 1 : 0;
+ shell.close();
+ }
+ });
+
+ shell.pack();
+ shell.open();
+ Display display = parent.getDisplay();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch()) display.sleep();
+ }
+ }
+
+ void confirmEx(String title, String text, String check, String button0, String button1, String button2, int defaultIndex, final int[] checkValue, final int[] result) {
+ Shell parent = getParent();
+ final Shell shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+ shell.setText(title);
+ GridLayout gridLayout = new GridLayout();
+ shell.setLayout(gridLayout);
+ Label label = new Label(shell, SWT.WRAP);
+ label.setText(text);
+ GridData data = new GridData();
+ Monitor monitor = parent.getMonitor();
+ int maxWidth = monitor.getBounds().width * 2 / 3;
+ int width = label.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
+ data.widthHint = Math.min(width, maxWidth);
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ label.setLayoutData (data);
+
+ final Button[] buttons = new Button[4];
+ Listener listener = new Listener() {
+ public void handleEvent(Event event) {
+ if (buttons[0] != null) checkValue[0] = buttons[0].getSelection() ? 1 : 0;
+ Widget widget = event.widget;
+ for (int i = 1; i < buttons.length; i++) {
+ if (widget == buttons[i]) {
+ result[0] = i - 1;
+ break;
+ }
+ }
+ shell.close();
+ }
+ };
+ if (check != null) {
+ buttons[0] = new Button(shell, SWT.CHECK);
+ buttons[0].setText(check);
+ buttons[0].setSelection(checkValue[0] != 0);
+ data = new GridData ();
+ data.horizontalAlignment = GridData.BEGINNING;
+ buttons[0].setLayoutData (data);
+ }
+ Composite composite = new Composite(shell, SWT.NONE);
+ data = new GridData();
+ data.horizontalAlignment = GridData.CENTER;
+ composite.setLayoutData (data);
+ GridLayout layout = new GridLayout();
+ layout.makeColumnsEqualWidth = true;
+ composite.setLayout(layout);
+ int buttonCount = 0;
+ if (button0 != null) {
+ buttons[1] = new Button(composite, SWT.PUSH);
+ buttons[1].setText(button0);
+ buttons[1].addListener(SWT.Selection, listener);
+ buttons[1].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ buttonCount++;
+ }
+ if (button1 != null) {
+ buttons[2] = new Button(composite, SWT.PUSH);
+ buttons[2].setText(button1);
+ buttons[2].addListener(SWT.Selection, listener);
+ buttons[2].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ buttonCount++;
+ }
+ if (button2 != null) {
+ buttons[3] = new Button(composite, SWT.PUSH);
+ buttons[3].setText(button2);
+ buttons[3].addListener(SWT.Selection, listener);
+ buttons[3].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ buttonCount++;
+ }
+ layout.numColumns = buttonCount;
+ Button defaultButton = buttons [defaultIndex + 1];
+ if (defaultButton != null) shell.setDefaultButton (defaultButton);
+
+ shell.pack();
+ shell.open();
+ Display display = parent.getDisplay();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch()) display.sleep();
+ }
+ }
+
+ void prompt(String title, String text, String check, final String[] value, final int[] checkValue, final int[] result) {
+ Shell parent = getParent();
+ final Shell shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+ if (title != null) shell.setText(title);
+ GridLayout gridLayout = new GridLayout();
+ shell.setLayout(gridLayout);
+ Label label = new Label(shell, SWT.WRAP);
+ label.setText(text);
+ GridData data = new GridData();
+ Monitor monitor = parent.getMonitor();
+ int maxWidth = monitor.getBounds().width * 2 / 3;
+ int width = label.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
+ data.widthHint = Math.min(width, maxWidth);
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ label.setLayoutData (data);
+
+ final Text valueText = new Text(shell, SWT.BORDER);
+ if (value[0] != null) valueText.setText(value[0]);
+ data = new GridData();
+ width = valueText.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
+ if (width > maxWidth) data.widthHint = maxWidth;
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ valueText.setLayoutData(data);
+
+ final Button[] buttons = new Button[3];
+ Listener listener = new Listener() {
+ public void handleEvent(Event event) {
+ if (buttons[0] != null) checkValue[0] = buttons[0].getSelection() ? 1 : 0;
+ value[0] = valueText.getText();
+ result[0] = event.widget == buttons[1] ? 1 : 0;
+ shell.close();
+ }
+ };
+ if (check != null) {
+ buttons[0] = new Button(shell, SWT.CHECK);
+ buttons[0].setText(check);
+ buttons[0].setSelection(checkValue[0] != 0);
+ data = new GridData ();
+ data.horizontalAlignment = GridData.BEGINNING;
+ buttons[0].setLayoutData (data);
+ }
+ Composite composite = new Composite(shell, SWT.NONE);
+ data = new GridData();
+ data.horizontalAlignment = GridData.CENTER;
+ composite.setLayoutData (data);
+ composite.setLayout(new GridLayout(2, true));
+ buttons[1] = new Button(composite, SWT.PUSH);
+ buttons[1].setText(SWT.getMessage("SWT_OK")); //$NON-NLS-1$
+ buttons[1].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ buttons[1].addListener(SWT.Selection, listener);
+ buttons[2] = new Button(composite, SWT.PUSH);
+ buttons[2].setText(SWT.getMessage("SWT_Cancel")); //$NON-NLS-1$
+ buttons[2].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ buttons[2].addListener(SWT.Selection, listener);
+
+ shell.pack();
+ shell.open();
+ Display display = parent.getDisplay();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch()) display.sleep();
+ }
+ }
+
+ void promptUsernameAndPassword(String title, String text, String check, final String[] user, final String[] pass, final int[] checkValue, final int[] result) {
+ Shell parent = getParent();
+ final Shell shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+ shell.setText(title);
+ GridLayout gridLayout = new GridLayout();
+ shell.setLayout(gridLayout);
+ Label label = new Label(shell, SWT.WRAP);
+ label.setText(text);
+ GridData data = new GridData();
+ Monitor monitor = parent.getMonitor();
+ int maxWidth = monitor.getBounds().width * 2 / 3;
+ int width = label.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
+ data.widthHint = Math.min(width, maxWidth);
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ label.setLayoutData (data);
+
+ Label userLabel = new Label(shell, SWT.NONE);
+ userLabel.setText(SWT.getMessage("SWT_Username")); //$NON-NLS-1$
+
+ final Text userText = new Text(shell, SWT.BORDER);
+ if (user[0] != null) userText.setText(user[0]);
+ data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ userText.setLayoutData(data);
+
+ Label passwordLabel = new Label(shell, SWT.NONE);
+ passwordLabel.setText(SWT.getMessage("SWT_Password")); //$NON-NLS-1$
+
+ final Text passwordText = new Text(shell, SWT.PASSWORD | SWT.BORDER);
+ if (pass[0] != null) passwordText.setText(pass[0]);
+ data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ passwordText.setLayoutData(data);
+
+ final Button[] buttons = new Button[3];
+ Listener listener = new Listener() {
+ public void handleEvent(Event event) {
+ if (buttons[0] != null) checkValue[0] = buttons[0].getSelection() ? 1 : 0;
+ user[0] = userText.getText();
+ pass[0] = passwordText.getText();
+ result[0] = event.widget == buttons[1] ? 1 : 0;
+ shell.close();
+ }
+ };
+ if (check != null) {
+ buttons[0] = new Button(shell, SWT.CHECK);
+ buttons[0].setText(check);
+ buttons[0].setSelection(checkValue[0] != 0);
+ data = new GridData ();
+ data.horizontalAlignment = GridData.BEGINNING;
+ buttons[0].setLayoutData (data);
+ }
+ Composite composite = new Composite(shell, SWT.NONE);
+ data = new GridData();
+ data.horizontalAlignment = GridData.CENTER;
+ composite.setLayoutData (data);
+ composite.setLayout(new GridLayout(2, true));
+ buttons[1] = new Button(composite, SWT.PUSH);
+ buttons[1].setText(SWT.getMessage("SWT_OK")); //$NON-NLS-1$
+ buttons[1].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ buttons[1].addListener(SWT.Selection, listener);
+ buttons[2] = new Button(composite, SWT.PUSH);
+ buttons[2].setText(SWT.getMessage("SWT_Cancel")); //$NON-NLS-1$
+ buttons[2].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ buttons[2].addListener(SWT.Selection, listener);
+
+ shell.setDefaultButton(buttons[1]);
+ shell.pack();
+ shell.open();
+ Display display = parent.getDisplay();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch()) display.sleep();
+ }
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptService2.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptService2.java
new file mode 100644
index 0000000000..41452c212b
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptService2.java
@@ -0,0 +1,641 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.*;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.widgets.*;
+
+class PromptService2 {
+ XPCOMObject supports;
+ XPCOMObject promptService;
+ XPCOMObject promptService2;
+ int refCount = 0;
+
+PromptService2 () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ promptService = new XPCOMObject (new int[] {2, 0, 0, 3, 5, 4, 6, 10, 7, 8, 7, 7}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Alert (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return AlertCheck (args[0], args[1], args[2], args[3], args[4]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return Confirm (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return ConfirmCheck (args[0], args[1], args[2], args[3], args[4], args[5]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return ConfirmEx (args[0], args[1], args[2], (int)/*64*/args[3], args[4], args[5], args[6], args[7], args[8], args[9]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return Prompt (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return PromptUsernameAndPassword (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return PromptPassword (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return Select (args[0], args[1], args[2], (int)/*64*/args[3], args[4], args[5], args[6]);}
+ };
+
+ promptService2 = new XPCOMObject (new int[] {2, 0, 0, 3, 5, 4, 6, 10, 7, 8, 7, 7, 7, 9}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return Alert (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return AlertCheck (args[0], args[1], args[2], args[3], args[4]);}
+ public int /*long*/ method5 (int /*long*/[] args) {return Confirm (args[0], args[1], args[2], args[3]);}
+ public int /*long*/ method6 (int /*long*/[] args) {return ConfirmCheck (args[0], args[1], args[2], args[3], args[4], args[5]);}
+ public int /*long*/ method7 (int /*long*/[] args) {return ConfirmEx (args[0], args[1], args[2], (int)/*64*/args[3], args[4], args[5], args[6], args[7], args[8], args[9]);}
+ public int /*long*/ method8 (int /*long*/[] args) {return Prompt (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method9 (int /*long*/[] args) {return PromptUsernameAndPassword (args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);}
+ public int /*long*/ method10 (int /*long*/[] args) {return PromptPassword (args[0], args[1], args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method11 (int /*long*/[] args) {return Select (args[0], args[1], args[2], (int)/*64*/args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method12 (int /*long*/[] args) {return PromptAuth (args[0], args[1], (int)/*64*/args[2], args[3], args[4], args[5], args[6]);}
+ public int /*long*/ method13 (int /*long*/[] args) {return AsyncPromptAuth (args[0], args[1], args[2], args[3], (int)/*64*/args[4], args[5], args[6], args[7], args[8]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (promptService != null) {
+ promptService.dispose ();
+ promptService = null;
+ }
+ if (promptService2 != null) {
+ promptService2.dispose ();
+ promptService2 = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return promptService2.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIPromptService.NS_IPROMPTSERVICE_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {promptService.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIPromptService2.NS_IPROMPTSERVICE2_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {promptService2.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+Browser getBrowser (int /*long*/ aDOMWindow) {
+ if (aDOMWindow == 0) return null;
+ nsIDOMWindow window = new nsIDOMWindow (aDOMWindow);
+ return Mozilla.findBrowser (window);
+}
+
+String getLabel (int buttonFlag, int index, int /*long*/ buttonTitle) {
+ String label = null;
+ int flag = (buttonFlag & (0xff * index)) / index;
+ switch (flag) {
+ case nsIPromptService.BUTTON_TITLE_CANCEL : label = SWT.getMessage ("SWT_Cancel"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_NO : label = SWT.getMessage ("SWT_No"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_OK : label = SWT.getMessage ("SWT_OK"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_SAVE : label = SWT.getMessage ("SWT_Save"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_YES : label = SWT.getMessage ("SWT_Yes"); break; //$NON-NLS-1$
+ case nsIPromptService.BUTTON_TITLE_IS_STRING : {
+ int length = XPCOM.strlen_PRUnichar (buttonTitle);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, buttonTitle, length * 2);
+ label = new String (dest);
+ }
+ }
+ return label;
+}
+
+/* nsIPromptService */
+
+int Alert (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText) {
+ Browser browser = getBrowser (aParent);
+
+ int length = XPCOM.strlen_PRUnichar (aDialogTitle);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aDialogTitle, length * 2);
+ String titleLabel = new String (dest);
+
+ length = XPCOM.strlen_PRUnichar (aText);
+ dest = new char[length];
+ XPCOM.memmove (dest, aText, length * 2);
+ String textLabel = new String (dest);
+
+ Shell shell = browser == null ? new Shell () : browser.getShell ();
+ MessageBox messageBox = new MessageBox (shell, SWT.OK | SWT.ICON_WARNING);
+ messageBox.setText (titleLabel);
+ messageBox.setMessage (textLabel);
+ messageBox.open ();
+ return XPCOM.NS_OK;
+}
+
+int AlertCheck (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText, int /*long*/ aCheckMsg, int /*long*/ aCheckState) {
+ Browser browser = getBrowser (aParent);
+
+ int length = XPCOM.strlen_PRUnichar (aDialogTitle);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aDialogTitle, length * 2);
+ String titleLabel = new String (dest);
+
+ length = XPCOM.strlen_PRUnichar (aText);
+ dest = new char[length];
+ XPCOM.memmove (dest, aText, length * 2);
+ String textLabel = new String (dest);
+
+ length = XPCOM.strlen_PRUnichar (aCheckMsg);
+ dest = new char[length];
+ XPCOM.memmove (dest, aCheckMsg, length * 2);
+ String checkLabel = new String (dest);
+
+ Shell shell = browser == null ? new Shell () : browser.getShell ();
+ PromptDialog dialog = new PromptDialog (shell);
+ int[] check = new int[1];
+ if (aCheckState != 0) XPCOM.memmove (check, aCheckState, 4); /* PRBool */
+ dialog.alertCheck (titleLabel, textLabel, checkLabel, check);
+ if (aCheckState != 0) XPCOM.memmove (aCheckState, check, 4); /* PRBool */
+ return XPCOM.NS_OK;
+}
+
+int AsyncPromptAuth(int /*long*/ aParent, int /*long*/ aChannel, int /*long*/ aCallback, int /*long*/ aContext, int level, int /*long*/ authInfo, int /*long*/ checkboxLabel, int /*long*/ checkValue, int /*long*/ _retval) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int Confirm (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText, int /*long*/ _retval) {
+ Browser browser = getBrowser (aParent);
+
+ int length = XPCOM.strlen_PRUnichar (aDialogTitle);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aDialogTitle, length * 2);
+ String titleLabel = new String (dest);
+
+ length = XPCOM.strlen_PRUnichar (aText);
+ dest = new char[length];
+ XPCOM.memmove (dest, aText, length * 2);
+ String textLabel = new String (dest);
+
+ Shell shell = browser == null ? new Shell () : browser.getShell ();
+ MessageBox messageBox = new MessageBox (shell, SWT.OK | SWT.CANCEL | SWT.ICON_QUESTION);
+ messageBox.setText (titleLabel);
+ messageBox.setMessage (textLabel);
+ int id = messageBox.open ();
+ int[] result = {id == SWT.OK ? 1 : 0};
+ XPCOM.memmove (_retval, result, 4);
+ return XPCOM.NS_OK;
+}
+
+int ConfirmCheck (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText, int /*long*/ aCheckMsg, int /*long*/ aCheckState, int /*long*/ _retval) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int ConfirmEx (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText, int aButtonFlags, int /*long*/ aButton0Title, int /*long*/ aButton1Title, int /*long*/ aButton2Title, int /*long*/ aCheckMsg, int /*long*/ aCheckState, int /*long*/ _retval) {
+ Browser browser = getBrowser (aParent);
+
+ int length = XPCOM.strlen_PRUnichar (aDialogTitle);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, aDialogTitle, length * 2);
+ String titleLabel = new String (dest);
+
+ length = XPCOM.strlen_PRUnichar (aText);
+ dest = new char[length];
+ XPCOM.memmove (dest, aText, length * 2);
+ String textLabel = new String (dest);
+
+ String checkLabel = null;
+ if (aCheckMsg != 0) {
+ length = XPCOM.strlen_PRUnichar (aCheckMsg);
+ dest = new char[length];
+ XPCOM.memmove (dest, aCheckMsg, length * 2);
+ checkLabel = new String (dest);
+ }
+
+ String button0Label = getLabel (aButtonFlags, nsIPromptService.BUTTON_POS_0, aButton0Title);
+ String button1Label = getLabel (aButtonFlags, nsIPromptService.BUTTON_POS_1, aButton1Title);
+ String button2Label = getLabel (aButtonFlags, nsIPromptService.BUTTON_POS_2, aButton2Title);
+
+ int defaultIndex = 0;
+ if ((aButtonFlags & nsIPromptService.BUTTON_POS_1_DEFAULT) != 0) {
+ defaultIndex = 1;
+ } else if ((aButtonFlags & nsIPromptService.BUTTON_POS_2_DEFAULT) != 0) {
+ defaultIndex = 2;
+ }
+
+ Shell shell = browser == null ? new Shell () : browser.getShell ();
+ PromptDialog dialog = new PromptDialog (shell);
+ int[] check = new int[1], result = new int[1];
+ if (aCheckState != 0) XPCOM.memmove (check, aCheckState, 4);
+ dialog.confirmEx (titleLabel, textLabel, checkLabel, button0Label, button1Label, button2Label, defaultIndex, check, result);
+ if (aCheckState != 0) XPCOM.memmove (aCheckState, check, 4);
+ XPCOM.memmove (_retval, result, 4);
+ return XPCOM.NS_OK;
+}
+
+int Prompt (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText, int /*long*/ aValue, int /*long*/ aCheckMsg, int /*long*/ aCheckState, int /*long*/ _retval) {
+ Browser browser = getBrowser (aParent);
+ String titleLabel = null, textLabel, checkLabel = null;
+ String[] valueLabel = new String[1];
+ char[] dest;
+ int length;
+ if (aDialogTitle != 0) {
+ length = XPCOM.strlen_PRUnichar (aDialogTitle);
+ dest = new char[length];
+ XPCOM.memmove (dest, aDialogTitle, length * 2);
+ titleLabel = new String (dest);
+ }
+
+ length = XPCOM.strlen_PRUnichar (aText);
+ dest = new char[length];
+ XPCOM.memmove (dest, aText, length * 2);
+ textLabel = new String (dest);
+
+ int /*long*/[] valueAddr = new int /*long*/[1];
+ XPCOM.memmove (valueAddr, aValue, C.PTR_SIZEOF);
+ if (valueAddr[0] != 0) {
+ length = XPCOM.strlen_PRUnichar (valueAddr[0]);
+ dest = new char[length];
+ XPCOM.memmove (dest, valueAddr[0], length * 2);
+ valueLabel[0] = new String (dest);
+ }
+
+ if (aCheckMsg != 0) {
+ length = XPCOM.strlen_PRUnichar (aCheckMsg);
+ if (length > 0) {
+ dest = new char[length];
+ XPCOM.memmove (dest, aCheckMsg, length * 2);
+ checkLabel = new String (dest);
+ }
+ }
+
+ Shell shell = browser == null ? new Shell () : browser.getShell ();
+ PromptDialog dialog = new PromptDialog (shell);
+ int[] check = new int[1], result = new int[1];
+ if (aCheckState != 0) XPCOM.memmove (check, aCheckState, 4);
+ dialog.prompt (titleLabel, textLabel, checkLabel, valueLabel, check, result);
+
+ XPCOM.memmove (_retval, result, 4);
+ if (result[0] == 1) {
+ /*
+ * User selected OK. User name and password are returned as PRUnichar values. Any default
+ * value that we override must be freed using the nsIMemory service.
+ */
+ if (valueLabel[0] != null) {
+ int /*long*/[] result2 = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result2);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result2[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result2[0]);
+ result2[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result2);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result2[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result2[0]);
+ result2[0] = 0;
+
+ int cnt = valueLabel[0].length ();
+ char[] buffer = new char[cnt + 1];
+ valueLabel[0].getChars (0, cnt, buffer, 0);
+ int size = buffer.length * 2;
+ int /*long*/ ptr = memory.Alloc (size);
+ XPCOM.memmove (ptr, buffer, size);
+ XPCOM.memmove (aValue, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
+
+ if (valueAddr[0] != 0) {
+ memory.Free (valueAddr[0]);
+ }
+ memory.Release ();
+ }
+ }
+ if (aCheckState != 0) XPCOM.memmove (aCheckState, check, 4);
+ return XPCOM.NS_OK;
+}
+
+int PromptAuth(int /*long*/ aParent, int /*long*/ aChannel, int level, int /*long*/ authInfo, int /*long*/ checkboxLabel, int /*long*/ checkboxValue, int /*long*/ _retval) {
+ nsIAuthInformation auth = new nsIAuthInformation (authInfo);
+
+ Browser browser = getBrowser (aParent);
+ if (browser != null) {
+ Mozilla mozilla = (Mozilla)browser.webBrowser;
+ /*
+ * Do not invoke the listeners if this challenge has been failed too many
+ * times because a listener is likely giving incorrect credentials repeatedly
+ * and will do so indefinitely.
+ */
+ if (mozilla.authCount++ < 3) {
+ for (int i = 0; i < mozilla.authenticationListeners.length; i++) {
+ AuthenticationEvent event = new AuthenticationEvent (browser);
+ event.location = mozilla.lastNavigateURL;
+ mozilla.authenticationListeners[i].authenticate (event);
+ if (!event.doit) {
+ XPCOM.memmove (_retval, new int[] {0}, 4); /* PRBool */
+ return XPCOM.NS_OK;
+ }
+ if (event.user != null && event.password != null) {
+ nsEmbedString string = new nsEmbedString (event.user);
+ int rc = auth.SetUsername (string.getAddress ());
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ string.dispose ();
+ string = new nsEmbedString (event.password);
+ rc = auth.SetPassword (string.getAddress ());
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ string.dispose ();
+ XPCOM.memmove (_retval, new int[] {1}, 4); /* PRBool */
+ return XPCOM.NS_OK;
+ }
+ }
+ }
+ }
+
+ /* no listener handled the challenge, so show an authentication dialog */
+
+ String checkLabel = null;
+ int[] checkValue = new int[1];
+ String[] userLabel = new String[1], passLabel = new String[1];
+
+ String title = SWT.getMessage ("SWT_Authentication_Required"); //$NON-NLS-1$
+
+ if (checkboxLabel != 0 && checkboxValue != 0) {
+ int length = XPCOM.strlen_PRUnichar (checkboxLabel);
+ char[] dest = new char[length];
+ XPCOM.memmove (dest, checkboxLabel, length * 2);
+ checkLabel = new String (dest);
+ XPCOM.memmove (checkValue, checkboxValue, 4); /* PRBool */
+ }
+
+ /* get initial username and password values */
+
+ int /*long*/ ptr = XPCOM.nsEmbedString_new ();
+ int rc = auth.GetUsername (ptr);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ int length = XPCOM.nsEmbedString_Length (ptr);
+ int /*long*/ buffer = XPCOM.nsEmbedString_get (ptr);
+ char[] chars = new char[length];
+ XPCOM.memmove (chars, buffer, length * 2);
+ userLabel[0] = new String (chars);
+ XPCOM.nsEmbedString_delete (ptr);
+
+ ptr = XPCOM.nsEmbedString_new ();
+ rc = auth.GetPassword (ptr);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ length = XPCOM.nsEmbedString_Length (ptr);
+ buffer = XPCOM.nsEmbedString_get (ptr);
+ chars = new char[length];
+ XPCOM.memmove (chars, buffer, length * 2);
+ passLabel[0] = new String (chars);
+ XPCOM.nsEmbedString_delete (ptr);
+
+ /* compute the message text */
+
+ ptr = XPCOM.nsEmbedString_new ();
+ rc = auth.GetRealm (ptr);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ length = XPCOM.nsEmbedString_Length (ptr);
+ buffer = XPCOM.nsEmbedString_get (ptr);
+ chars = new char[length];
+ XPCOM.memmove (chars, buffer, length * 2);
+ String realm = new String (chars);
+ XPCOM.nsEmbedString_delete (ptr);
+
+ nsIChannel channel = new nsIChannel (aChannel);
+ int /*long*/[] uri = new int /*long*/[1];
+ rc = channel.GetURI (uri);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (uri[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
+
+ nsIURI nsURI = new nsIURI (uri[0]);
+ int /*long*/ host = XPCOM.nsEmbedCString_new ();
+ rc = nsURI.GetHost (host);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ length = XPCOM.nsEmbedCString_Length (host);
+ buffer = XPCOM.nsEmbedCString_get (host);
+ byte[] bytes = new byte[length];
+ XPCOM.memmove (bytes, buffer, length);
+ String hostString = new String (bytes);
+ XPCOM.nsEmbedCString_delete (host);
+ nsURI.Release ();
+
+ String message;
+ if (realm.length () > 0 && hostString.length () > 0) {
+ message = Compatibility.getMessage ("SWT_Enter_Username_and_Password", new String[] {realm, hostString}); //$NON-NLS-1$
+ } else {
+ message = ""; //$NON-NLS-1$
+ }
+
+ /* open the prompter */
+ Shell shell = browser == null ? new Shell () : browser.getShell ();
+ PromptDialog dialog = new PromptDialog (shell);
+ int[] result = new int[1];
+ dialog.promptUsernameAndPassword (title, message, checkLabel, userLabel, passLabel, checkValue, result);
+
+ XPCOM.memmove (_retval, result, 4); /* PRBool */
+ if (result[0] == 1) { /* User selected OK */
+ nsEmbedString string = new nsEmbedString (userLabel[0]);
+ rc = auth.SetUsername(string.getAddress ());
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ string.dispose ();
+
+ string = new nsEmbedString (passLabel[0]);
+ rc = auth.SetPassword(string.getAddress ());
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ string.dispose ();
+ }
+
+ if (checkboxValue != 0) XPCOM.memmove (checkboxValue, checkValue, 4); /* PRBool */
+ return XPCOM.NS_OK;
+}
+
+int PromptUsernameAndPassword (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText, int /*long*/ aUsername, int /*long*/ aPassword, int /*long*/ aCheckMsg, int /*long*/ aCheckState, int /*long*/ _retval) {
+ Browser browser = getBrowser (aParent);
+ String user = null, password = null;
+
+ if (browser != null) {
+ Mozilla mozilla = (Mozilla)browser.webBrowser;
+ /*
+ * Do not invoke the listeners if this challenge has been failed too many
+ * times because a listener is likely giving incorrect credentials repeatedly
+ * and will do so indefinitely.
+ */
+ if (mozilla.authCount++ < 3) {
+ for (int i = 0; i < mozilla.authenticationListeners.length; i++) {
+ AuthenticationEvent event = new AuthenticationEvent (browser);
+ event.location = mozilla.lastNavigateURL;
+ mozilla.authenticationListeners[i].authenticate (event);
+ if (!event.doit) {
+ XPCOM.memmove (_retval, new int[] {0}, 4); /* PRBool */
+ return XPCOM.NS_OK;
+ }
+ if (event.user != null && event.password != null) {
+ user = event.user;
+ password = event.password;
+ XPCOM.memmove (_retval, new int[] {1}, 4); /* PRBool */
+ break;
+ }
+ }
+ }
+ }
+
+ if (user == null) {
+ /* no listener handled the challenge, so show an authentication dialog */
+
+ String titleLabel, textLabel, checkLabel = null;
+ String[] userLabel = new String[1], passLabel = new String[1];
+ char[] dest;
+ int length;
+ if (aDialogTitle != 0) {
+ length = XPCOM.strlen_PRUnichar (aDialogTitle);
+ dest = new char[length];
+ XPCOM.memmove (dest, aDialogTitle, length * 2);
+ titleLabel = new String (dest);
+ } else {
+ titleLabel = SWT.getMessage ("SWT_Authentication_Required"); //$NON-NLS-1$
+ }
+
+ length = XPCOM.strlen_PRUnichar (aText);
+ dest = new char[length];
+ XPCOM.memmove (dest, aText, length * 2);
+ textLabel = new String (dest);
+
+ int /*long*/[] userAddr = new int /*long*/[1];
+ XPCOM.memmove (userAddr, aUsername, C.PTR_SIZEOF);
+ if (userAddr[0] != 0) {
+ length = XPCOM.strlen_PRUnichar (userAddr[0]);
+ dest = new char[length];
+ XPCOM.memmove (dest, userAddr[0], length * 2);
+ userLabel[0] = new String (dest);
+ }
+
+ int /*long*/[] passAddr = new int /*long*/[1];
+ XPCOM.memmove (passAddr, aPassword, C.PTR_SIZEOF);
+ if (passAddr[0] != 0) {
+ length = XPCOM.strlen_PRUnichar (passAddr[0]);
+ dest = new char[length];
+ XPCOM.memmove (dest, passAddr[0], length * 2);
+ passLabel[0] = new String (dest);
+ }
+
+ if (aCheckMsg != 0) {
+ length = XPCOM.strlen_PRUnichar (aCheckMsg);
+ if (length > 0) {
+ dest = new char[length];
+ XPCOM.memmove (dest, aCheckMsg, length * 2);
+ checkLabel = new String (dest);
+ }
+ }
+
+ Shell shell = browser == null ? new Shell () : browser.getShell ();
+ PromptDialog dialog = new PromptDialog (shell);
+ int[] check = new int[1], result = new int[1];
+ if (aCheckState != 0) XPCOM.memmove (check, aCheckState, 4); /* PRBool */
+ dialog.promptUsernameAndPassword (titleLabel, textLabel, checkLabel, userLabel, passLabel, check, result);
+
+ XPCOM.memmove (_retval, result, 4); /* PRBool */
+ if (result[0] == 1) {
+ /* User selected OK */
+ user = userLabel[0];
+ password = passLabel[0];
+ }
+ if (aCheckState != 0) XPCOM.memmove (aCheckState, check, 4); /* PRBool */
+ }
+
+ if (user != null) {
+ /*
+ * User name and password are returned as PRUnichar values. Any default
+ * value that we override must be freed using the nsIMemory service.
+ */
+ int /*long*/[] userAddr = new int /*long*/[1];
+ XPCOM.memmove (userAddr, aUsername, C.PTR_SIZEOF);
+ int /*long*/[] passAddr = new int /*long*/[1];
+ XPCOM.memmove (passAddr, aPassword, C.PTR_SIZEOF);
+
+ int /*long*/[] result = new int /*long*/[1];
+ int rc = XPCOM.NS_GetServiceManager (result);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
+
+ nsIServiceManager serviceManager = new nsIServiceManager (result[0]);
+ result[0] = 0;
+ byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_MEMORY_CONTRACTID, true);
+ rc = serviceManager.GetServiceByContractID (aContractID, nsIMemory.NS_IMEMORY_IID, result);
+ if (rc != XPCOM.NS_OK) SWT.error (rc);
+ if (result[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
+ serviceManager.Release ();
+
+ nsIMemory memory = new nsIMemory (result[0]);
+ result[0] = 0;
+ if (userAddr[0] != 0) memory.Free (userAddr[0]);
+ if (passAddr[0] != 0) memory.Free (passAddr[0]);
+ memory.Release ();
+
+ /* write the name and password values */
+
+ int cnt = user.length ();
+ char[] buffer = new char[cnt + 1];
+ user.getChars (0, cnt, buffer, 0);
+ int size = buffer.length * 2;
+ int /*long*/ ptr = C.malloc (size);
+ XPCOM.memmove (ptr, buffer, size);
+ XPCOM.memmove (aUsername, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
+
+ cnt = password.length ();
+ buffer = new char[cnt + 1];
+ password.getChars (0, cnt, buffer, 0);
+ size = buffer.length * 2;
+ ptr = C.malloc (size);
+ XPCOM.memmove (ptr, buffer, size);
+ XPCOM.memmove (aPassword, new int /*long*/[] {ptr}, C.PTR_SIZEOF);
+ }
+
+ return XPCOM.NS_OK;
+}
+
+int PromptPassword (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText, int /*long*/ aPassword, int /*long*/ aCheckMsg, int /*long*/ aCheckState, int /*long*/ _retval) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+int Select (int /*long*/ aParent, int /*long*/ aDialogTitle, int /*long*/ aText, int aCount, int /*long*/ aSelectList, int /*long*/ aOutSelection, int /*long*/ _retval) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptService2Factory.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptService2Factory.java
new file mode 100644
index 0000000000..89fdc66a75
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/PromptService2Factory.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+
+class PromptService2Factory {
+ XPCOMObject supports;
+ XPCOMObject factory;
+ int refCount = 0;
+
+PromptService2Factory () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return LockFactory ((int)/*64*/args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (factory != null) {
+ factory.dispose ();
+ factory = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return factory.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIFactory */
+
+int CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) {
+ PromptService2 promptService = new PromptService2 ();
+ promptService.AddRef ();
+ XPCOM.memmove (result, new int /*long*/[] {promptService.getAddress ()}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+
+int LockFactory (int lock) {
+ return XPCOM.NS_OK;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/SimpleEnumerator.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/SimpleEnumerator.java
new file mode 100644
index 0000000000..4be8516ca4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/SimpleEnumerator.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.internal.C;
+import org.eclipse.swt.internal.mozilla.*;
+
+class SimpleEnumerator {
+ XPCOMObject supports;
+ XPCOMObject simpleEnumerator;
+ int refCount = 0;
+ nsISupports[] values;
+ int index = 0;
+
+SimpleEnumerator (nsISupports[] values) {
+ this.values = values;
+ for (int i = 0; i < values.length; i++) {
+ values[i].AddRef ();
+ }
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ simpleEnumerator = new XPCOMObject (new int[] {2, 0, 0, 1, 1}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return HasMoreElements (args[0]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return GetNext (args[0]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (simpleEnumerator != null) {
+ simpleEnumerator.dispose ();
+ simpleEnumerator = null;
+ }
+ if (values != null) {
+ for (int i = 0; i < values.length; i++) {
+ values[i].Release ();
+ }
+ values = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return simpleEnumerator.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsISimpleEnumerator.NS_ISIMPLEENUMERATOR_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {simpleEnumerator.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+int HasMoreElements (int /*long*/ _retval) {
+ boolean more = values != null && index < values.length;
+ XPCOM.memmove (_retval, new int[] {more ? 1 : 0}, 4); /*PRBool */
+ return XPCOM.NS_OK;
+}
+
+int GetNext (int /*long*/ _retval) {
+ if (values == null || index == values.length) return XPCOM.NS_ERROR_UNEXPECTED;
+ nsISupports value = values[index++];
+ value.AddRef ();
+ XPCOM.memmove (_retval, new int /*long*/[] {value.getAddress ()}, C.PTR_SIZEOF);
+ return XPCOM.NS_OK;
+}
+}
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/WindowCreator2.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/WindowCreator2.java
new file mode 100644
index 0000000000..17ca0515f3
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/WindowCreator2.java
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.*;
+import org.eclipse.swt.graphics.*;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.layout.*;
+import org.eclipse.swt.widgets.*;
+
+class WindowCreator2 {
+ XPCOMObject supports;
+ XPCOMObject windowCreator;
+ XPCOMObject windowCreator2;
+ int refCount = 0;
+
+WindowCreator2 () {
+ createCOMInterfaces ();
+}
+
+int AddRef () {
+ refCount++;
+ return refCount;
+}
+
+void createCOMInterfaces () {
+ /* Create each of the interfaces that this object implements */
+ supports = new XPCOMObject (new int[] {2, 0, 0}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ };
+
+ windowCreator = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateChromeWindow (args[0], (int)/*64*/args[1], args[2]);}
+ };
+
+ windowCreator2 = new XPCOMObject (new int[] {2, 0, 0, 3, 6}) {
+ public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
+ public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
+ public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
+ public int /*long*/ method3 (int /*long*/[] args) {return CreateChromeWindow (args[0], (int)/*64*/args[1], args[2]);}
+ public int /*long*/ method4 (int /*long*/[] args) {return CreateChromeWindow2 (args[0], (int)/*64*/args[1], (int)/*64*/args[2], args[3], args[4], args[5]);}
+ };
+}
+
+void disposeCOMInterfaces () {
+ if (supports != null) {
+ supports.dispose ();
+ supports = null;
+ }
+ if (windowCreator != null) {
+ windowCreator.dispose ();
+ windowCreator = null;
+ }
+
+ if (windowCreator2 != null) {
+ windowCreator2.dispose ();
+ windowCreator2 = null;
+ }
+}
+
+int /*long*/ getAddress () {
+ return windowCreator.getAddress ();
+}
+
+int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) {
+ if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE;
+ nsID guid = new nsID ();
+ XPCOM.memmove (guid, riid, nsID.sizeof);
+
+ if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWindowCreator.NS_IWINDOWCREATOR_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {windowCreator.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+ if (guid.Equals (nsIWindowCreator2.NS_IWINDOWCREATOR2_IID)) {
+ XPCOM.memmove (ppvObject, new int /*long*/[] {windowCreator2.getAddress ()}, C.PTR_SIZEOF);
+ AddRef ();
+ return XPCOM.NS_OK;
+ }
+
+ XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF);
+ return XPCOM.NS_ERROR_NO_INTERFACE;
+}
+
+int Release () {
+ refCount--;
+ if (refCount == 0) disposeCOMInterfaces ();
+ return refCount;
+}
+
+/* nsIWindowCreator */
+
+int CreateChromeWindow (int /*long*/ parent, int chromeFlags, int /*long*/ _retval) {
+ return CreateChromeWindow2 (parent, chromeFlags, 0, 0, 0, _retval);
+}
+
+/* nsIWindowCreator2 */
+
+int CreateChromeWindow2 (int /*long*/ parent, int chromeFlags, int contextFlags, int /*long*/ uri, int /*long*/ cancel, int /*long*/ _retval) {
+ if (parent == 0 && (chromeFlags & nsIWebBrowserChrome.CHROME_OPENAS_CHROME) == 0) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+ }
+ Browser src = null;
+ if (parent != 0) {
+ nsIWebBrowserChrome browserChromeParent = new nsIWebBrowserChrome (parent);
+ int /*long*/[] aWebBrowser = new int /*long*/[1];
+ int rc = browserChromeParent.GetWebBrowser (aWebBrowser);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (aWebBrowser[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+
+ nsIWebBrowser webBrowser = new nsIWebBrowser (aWebBrowser[0]);
+ int /*long*/[] result = new int /*long*/[1];
+ rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+ webBrowser.Release ();
+
+ nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
+ result[0] = 0;
+ int /*long*/[] aParentNativeWindow = new int /*long*/[1];
+ rc = baseWindow.GetParentNativeWindow (aParentNativeWindow);
+ if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+ if (aParentNativeWindow[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
+ baseWindow.Release ();
+
+ src = Mozilla.findBrowser (aParentNativeWindow[0]);
+ }
+ final Browser browser;
+ boolean doit = true;
+ if ((chromeFlags & nsIWebBrowserChrome.CHROME_OPENAS_CHROME) != 0) {
+ /*
+ * Mozilla will request a new Browser in a modal window in order to emulate a native
+ * dialog that is not available to it (eg.- a print dialog on Linux). For this
+ * reason modal requests are handled here so that the user is not exposed to them.
+ */
+ int style = SWT.DIALOG_TRIM;
+ if ((chromeFlags & nsIWebBrowserChrome.CHROME_MODAL) != 0) style |= SWT.APPLICATION_MODAL;
+ final Shell shell = src == null ?
+ new Shell (style) :
+ new Shell (src.getShell(), style);
+ shell.setLayout (new FillLayout ());
+ browser = new Browser (shell, src == null ? SWT.MOZILLA : src.getStyle () & SWT.MOZILLA);
+ browser.addVisibilityWindowListener (new VisibilityWindowListener () {
+ public void hide (WindowEvent event) {
+ }
+ public void show (WindowEvent event) {
+ if (event.location != null) shell.setLocation (event.location);
+ if (event.size != null) {
+ Point size = event.size;
+ shell.setSize (shell.computeSize (size.x, size.y));
+ }
+ shell.open ();
+ }
+ });
+ browser.addCloseWindowListener (new CloseWindowListener () {
+ public void close (WindowEvent event) {
+ shell.close ();
+ }
+ });
+ if (uri != 0) {
+ nsIURI location = new nsIURI (uri);
+ int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+ if (location.GetSpec (aSpec) == XPCOM.NS_OK) {
+ int length = XPCOM.nsEmbedCString_Length (aSpec);
+ if (length > 0) {
+ int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ byte[] dest = new byte[length];
+ XPCOM.memmove (dest, buffer, length);
+ browser.setUrl (new String (dest));
+ }
+ }
+ XPCOM.nsEmbedCString_delete (aSpec);
+ }
+ } else {
+ WindowEvent event = new WindowEvent (src);
+ event.display = src.getDisplay ();
+ event.widget = src;
+ event.required = true;
+ for (int i = 0; i < src.webBrowser.openWindowListeners.length; i++) {
+ src.webBrowser.openWindowListeners[i].open (event);
+ }
+ browser = event.browser;
+
+ /* Ensure that the Browser provided by the client is valid for use */
+ doit = browser != null && !browser.isDisposed ();
+ if (doit) {
+ String platform = Platform.PLATFORM;
+ boolean isMozillaNativePlatform = platform.equals ("gtk") || platform.equals ("motif"); //$NON-NLS-1$ //$NON-NLS-2$
+ doit = isMozillaNativePlatform || (browser.getStyle () & SWT.MOZILLA) != 0;
+ }
+ }
+ if (doit) {
+ Mozilla mozilla = (Mozilla)browser.webBrowser;
+ mozilla.isChild = true;
+ int /*long*/ chromePtr = mozilla.webBrowserChrome.getAddress ();
+ nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome (chromePtr);
+ webBrowserChrome.SetChromeFlags (chromeFlags);
+ webBrowserChrome.AddRef ();
+ XPCOM.memmove (_retval, new int /*long*/[] {chromePtr}, C.PTR_SIZEOF);
+ } else {
+ if (cancel != 0) {
+ C.memmove (cancel, new int[] {1}, 4); /* PRBool */
+ }
+ }
+ return doit ? XPCOM.NS_OK : XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java
new file mode 100644
index 0000000000..bebef9393b
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java
@@ -0,0 +1,2155 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2006 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+import org.eclipse.swt.internal.*;
+
+/** @jniclass flags=cpp */
+public class XPCOM extends C {
+ public static final String MOZILLA_FIVE_HOME = "MOZILLA_FIVE_HOME"; //$NON-NLS-1$
+ public static final String MOZILLA_PLUGIN_PATH = "MOZ_PLUGIN_PATH"; //$NON-NLS-1$
+ public static final String CONTENT_MAYBETEXT = "application/x-vnd.mozilla.maybe-text"; //$NON-NLS-1$
+ public static final String CONTENT_MULTIPART = "multipart/x-mixed-replace"; //$NON-NLS-1$
+ public static final String DOMEVENT_FOCUS = "focus"; //$NON-NLS-1$
+ public static final String DOMEVENT_UNLOAD = "unload"; //$NON-NLS-1$
+ public static final String DOMEVENT_MOUSEDOWN = "mousedown"; //$NON-NLS-1$
+ public static final String DOMEVENT_MOUSEUP = "mouseup"; //$NON-NLS-1$
+ public static final String DOMEVENT_MOUSEMOVE = "mousemove"; //$NON-NLS-1$
+ public static final String DOMEVENT_MOUSEDRAG = "draggesture"; //$NON-NLS-1$
+ public static final String DOMEVENT_MOUSEWHEEL = "DOMMouseScroll"; //$NON-NLS-1$
+ public static final String DOMEVENT_MOUSEOVER = "mouseover"; //$NON-NLS-1$
+ public static final String DOMEVENT_MOUSEOUT = "mouseout"; //$NON-NLS-1$
+ public static final String DOMEVENT_KEYUP = "keyup"; //$NON-NLS-1$
+ public static final String DOMEVENT_KEYDOWN = "keydown"; //$NON-NLS-1$
+ public static final String DOMEVENT_KEYPRESS = "keypress"; //$NON-NLS-1$
+
+ /* CID constants */
+ public static final nsID EXTERNAL_CID = new nsID ("f2c59ad0-bd76-11dd-ad8b-0800200c9a66"); //$NON-NLS-1$
+ public static final nsID NS_APPSHELL_CID = new nsID("2d96b3df-c051-11d1-a827-0040959a28c9"); //$NON-NLS-1$
+ public static final nsID NS_CATEGORYMANAGER_CID = new nsID("16d222a6-1dd2-11b2-b693-f38b02c021b2"); //$NON-NLS-1$
+ public static final nsID NS_DOWNLOAD_CID = new nsID("e3fa9D0a-1dd1-11b2-bdef-8c720b597445"); //$NON-NLS-1$
+ public static final nsID NS_FILEPICKER_CID = new nsID("54ae32f8-1dd2-11b2-a209-df7c505370f8"); //$NON-NLS-1$
+ public static final nsID NS_HELPERAPPLAUNCHERDIALOG_CID = new nsID("f68578eb-6ec2-4169-ae19-8c6243f0abe1"); //$NON-NLS-1$
+ public static final nsID NS_INPUTSTREAMCHANNEL_CID = new nsID("6ddb050c-0d04-11d4-986e-00c04fa0cf4a"); //$NON-NLS-1$
+ public static final nsID NS_IOSERVICE_CID = new nsID("9ac9e770-18bc-11d3-9337-00104ba0fd40"); //$NON-NLS-1$
+ public static final nsID NS_LOADGROUP_CID = new nsID("e1c61582-2a84-11d3-8cce-0060b0fc14a3"); //$NON-NLS-1$
+ public static final nsID NS_PROMPTSERVICE_CID = new nsID("a2112d6a-0e28-421f-b46a-25c0b308cbd0"); //$NON-NLS-1$
+
+ public static final String EXTERNAL_CONTRACTID = "@eclipse.org/external;1"; //$NON-NLS-1$
+ public static final String NS_CONTEXTSTACK_CONTRACTID = "@mozilla.org/js/xpc/ContextStack;1"; //$NON-NLS-1$
+ public static final String NS_COOKIEMANAGER_CONTRACTID = "@mozilla.org/cookiemanager;1"; //$NON-NLS-1$
+ public static final String NS_COOKIESERVICE_CONTRACTID = "@mozilla.org/cookieService;1"; //$NON-NLS-1$
+ public static final String NS_DIRECTORYSERVICE_CONTRACTID = "@mozilla.org/file/directory_service;1"; //$NON-NLS-1$
+ public static final String NS_DOMSERIALIZER_CONTRACTID = "@mozilla.org/xmlextras/xmlserializer;1"; //$NON-NLS-1$
+ public static final String NS_DOWNLOAD_CONTRACTID = "@mozilla.org/download;1"; //$NON-NLS-1$
+ public static final String NS_FILEPICKER_CONTRACTID = "@mozilla.org/filepicker;1"; //$NON-NLS-1$
+ public static final String NS_HELPERAPPLAUNCHERDIALOG_CONTRACTID = "@mozilla.org/helperapplauncherdialog;1"; //$NON-NLS-1$
+ public static final String NS_MEMORY_CONTRACTID = "@mozilla.org/xpcom/memory-service;1"; //$NON-NLS-1$
+ public static final String NS_SCRIPTSECURITYMANAGER_CONTRACTID = "@mozilla.org/scriptsecuritymanager;1"; //$NON-NLS-1$
+ public static final String NS_OBSERVER_CONTRACTID = "@mozilla.org/observer-service;1"; //$NON-NLS-1$
+ public static final String NS_PREFLOCALIZEDSTRING_CONTRACTID = "@mozilla.org/pref-localizedstring;1"; //$NON-NLS-1$
+ public static final String NS_PREFSERVICE_CONTRACTID = "@mozilla.org/preferences-service;1"; //$NON-NLS-1$
+ public static final String NS_PROMPTSERVICE_CONTRACTID = "@mozilla.org/embedcomp/prompt-service;1"; //$NON-NLS-1$
+ public static final String NS_TRANSFER_CONTRACTID = "@mozilla.org/transfer;1"; //$NON-NLS-1$
+ public static final String NS_VARIANT_CONTRACTID = "@mozilla.org/variant;1"; //$NON-NLS-1$
+ public static final String NS_WEBNAVIGATIONINFO_CONTRACTID = "@mozilla.org/webnavigation-info;1"; //$NON-NLS-1$
+ public static final String NS_WINDOWWATCHER_CONTRACTID = "@mozilla.org/embedcomp/window-watcher;1"; //$NON-NLS-1$
+
+ /* directory service constants */
+ public static final String NS_APP_APPLICATION_REGISTRY_DIR = "AppRegD"; //$NON-NLS-1$
+ public static final String NS_APP_CACHE_PARENT_DIR = "cachePDir"; //$NON-NLS-1$
+ public static final String NS_APP_HISTORY_50_FILE = "UHist"; //$NON-NLS-1$
+ public static final String NS_APP_LOCALSTORE_50_FILE = "LclSt"; //$NON-NLS-1$
+ public static final String NS_APP_PLUGINS_DIR_LIST = "APluginsDL"; //$NON-NLS-1$
+ public static final String NS_APP_PREF_DEFAULTS_50_DIR = "PrfDef"; //$NON-NLS-1$
+ public static final String NS_APP_PREFS_50_DIR = "PrefD"; //$NON-NLS-1$
+ public static final String NS_APP_PREFS_50_FILE = "PrefF"; //$NON-NLS-1$
+ public static final String NS_APP_USER_CHROME_DIR = "UChrm"; //$NON-NLS-1$
+ public static final String NS_APP_USER_MIMETYPES_50_FILE = "UMimTyp"; //$NON-NLS-1$
+ public static final String NS_APP_USER_PROFILE_50_DIR = "ProfD"; //$NON-NLS-1$
+ public static final String NS_GRE_COMPONENT_DIR = "GreComsD"; //$NON-NLS-1$
+ public static final String NS_GRE_DIR = "GreD"; //$NON-NLS-1$
+ public static final String NS_OS_CURRENT_PROCESS_DIR = "CurProcD"; //$NON-NLS-1$
+ public static final String NS_OS_HOME_DIR = "Home"; //$NON-NLS-1$
+ public static final String NS_OS_TEMP_DIR = "TmpD"; //$NON-NLS-1$
+ public static final String NS_XPCOM_COMPONENT_DIR = "ComsD"; //$NON-NLS-1$
+ public static final String NS_XPCOM_CURRENT_PROCESS_DIR = "XCurProcD"; //$NON-NLS-1$
+ public static final String NS_XPCOM_INIT_CURRENT_PROCESS_DIR = "MozBinD"; //$NON-NLS-1$
+
+ /* XPCOM constants */
+ public static final int NS_OK = 0;
+ public static final int NS_COMFALSE = 1;
+ public static final int NS_BINDING_ABORTED = 0x804B0002;
+ public static final int NS_ERROR_BASE = 0xc1f30000;
+ public static final int NS_ERROR_NOT_INITIALIZED = NS_ERROR_BASE + 1;
+ public static final int NS_ERROR_ALREADY_INITIALIZED = NS_ERROR_BASE + 2;
+ public static final int NS_ERROR_NOT_IMPLEMENTED = 0x80004001;
+ public static final int NS_NOINTERFACE = 0x80004002;
+ public static final int NS_ERROR_NO_INTERFACE = NS_NOINTERFACE;
+ public static final int NS_ERROR_INVALID_POINTER = 0x80004003;
+ public static final int NS_ERROR_NULL_POINTER = NS_ERROR_INVALID_POINTER;
+ public static final int NS_ERROR_ABORT = 0x80004004;
+ public static final int NS_ERROR_FAILURE = 0x80004005;
+ public static final int NS_ERROR_UNEXPECTED = 0x8000ffff;
+ public static final int NS_ERROR_OUT_OF_MEMORY = 0x8007000e;
+ public static final int NS_ERROR_ILLEGAL_VALUE = 0x80070057;
+ public static final int NS_ERROR_INVALID_ARG = NS_ERROR_ILLEGAL_VALUE;
+ public static final int NS_ERROR_NO_AGGREGATION = 0x80040110;
+ public static final int NS_ERROR_NOT_AVAILABLE = 0x80040111;
+ public static final int NS_ERROR_FACTORY_NOT_REGISTERED = 0x80040154;
+ public static final int NS_ERROR_FACTORY_REGISTER_AGAIN = 0x80040155;
+ public static final int NS_ERROR_FACTORY_NOT_LOADED = 0x800401f8;
+ public static final int NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT = NS_ERROR_BASE + 0x101;
+ public static final int NS_ERROR_FACTORY_EXISTS = NS_ERROR_BASE + 0x100;
+ public static final int NS_ERROR_HTMLPARSER_UNRESOLVEDDTD = 0x804e03f3;
+ public static final int NS_ERROR_FILE_NOT_FOUND = 0x80520012;
+ public static final int NS_ERROR_FILE_UNRECOGNIZED_PATH = 0x80520001;
+
+public static final native int nsDynamicFunctionLoad_sizeof ();
+
+/**
+ * @param dest cast=(void *)
+ * @param src cast=(const void *),flags=no_out critical
+ * @param size cast=(size_t)
+ */
+public static final native void memmove (int /*long*/ dest, nsDynamicFunctionLoad src, int /*long*/ size);
+/**
+ * @param dest cast=(void *)
+ * @param src cast=(const void *)
+ * @param nbytes cast=(size_t)
+ */
+public static final native void memmove(nsID dest, int /*long*/ src, int nbytes);
+/**
+ * @param dest cast=(void *)
+ * @param src cast=(const void *)
+ * @param nbytes cast=(size_t)
+ */
+public static final native void memmove(int /*long*/ dest, nsID src, int nbytes);
+/** @method flags=no_gen */
+public static final native int strlen_PRUnichar(int /*long*/ s);
+
+/** @method flags=no_gen */
+public static final native int _JS_EvaluateUCScriptForPrincipals(byte[] mozillaPath, int /*long*/ cx, int /*long*/ obj, int /*long*/ principals, char[] chars, int length, byte[] filename, int lineno, int /*long*/[] retVal);
+public static final int JS_EvaluateUCScriptForPrincipals(byte[] mozillaPath, int /*long*/ cx, int /*long*/ obj, int /*long*/ principals, char[] chars, int length, byte[] filename, int lineno, int /*long*/[] retVal) {
+ lock.lock();
+ try {
+ return _JS_EvaluateUCScriptForPrincipals(mozillaPath, cx, obj, principals, chars, length, filename, lineno, retVal);
+ } finally {
+ lock.unlock();
+ }
+}
+
+/** @param result cast=(nsIComponentManager**) */
+public static final native int _NS_GetComponentManager(int /*long*/[] result);
+public static final int NS_GetComponentManager(int /*long*/[] result) {
+ lock.lock();
+ try {
+ return _NS_GetComponentManager(result);
+ } finally {
+ lock.unlock();
+ }
+}
+/** @param result cast=(nsIServiceManager**) */
+public static final native int _NS_GetServiceManager(int /*long*/[] result);
+public static final int NS_GetServiceManager(int /*long*/[] result) {
+ lock.lock();
+ try {
+ return _NS_GetServiceManager(result);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @param result cast=(nsIServiceManager **)
+ * @param binDirectory cast=(nsIFile *)
+ * @param appFileLocationProvider cast=(nsIDirectoryServiceProvider *)
+ */
+public static final native int _NS_InitXPCOM2(int /*long*/ result, int /*long*/ binDirectory, int /*long*/ appFileLocationProvider);
+public static final int NS_InitXPCOM2(int /*long*/ result, int /*long*/ binDirectory, int /*long*/ appFileLocationProvider) {
+ lock.lock();
+ try {
+ return _NS_InitXPCOM2(result, binDirectory, appFileLocationProvider);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @param path cast=(nsAString *),flags=struct
+ * @param result cast=(nsILocalFile**)
+ */
+public static final native int _NS_NewLocalFile(int /*long*/ path, int followLinks, int /*long*/[] result);
+public static final int NS_NewLocalFile(int /*long*/ path, int followLinks, int /*long*/[] result) {
+ lock.lock();
+ try {
+ return _NS_NewLocalFile(path, followLinks, result);
+ } finally {
+ lock.unlock();
+ }
+}
+/** @method flags=new */
+public static final native int /*long*/ _nsEmbedCString_new();
+public static final int /*long*/ nsEmbedCString_new() {
+ lock.lock();
+ try {
+ return _nsEmbedCString_new();
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=new
+ * @param aString cast=(const char *)
+ */
+public static final native int /*long*/ _nsEmbedCString_new(byte[] aString, int length);
+public static final int /*long*/ nsEmbedCString_new(byte[] aString, int length) {
+ lock.lock();
+ try {
+ return _nsEmbedCString_new(aString, length);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=new
+ * @param aString cast=(const char *)
+ */
+public static final native int /*long*/ _nsEmbedCString_new(int /*long*/ aString, int length);
+public static final int /*long*/ nsEmbedCString_new(int /*long*/ aString, int length) {
+ lock.lock();
+ try {
+ return _nsEmbedCString_new(aString, length);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=delete
+ * @param ptr cast=(nsEmbedCString *)
+ */
+public static final native void _nsEmbedCString_delete(int /*long*/ ptr);
+public static final void nsEmbedCString_delete(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ _nsEmbedCString_delete(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsEmbedCString *)
+ */
+public static final native int _nsEmbedCString_Length(int /*long*/ ptr);
+public static final int nsEmbedCString_Length(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ return _nsEmbedCString_Length(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsIScriptGlobalObject *)
+ */
+public static final native int _nsIScriptGlobalObject_EnsureScriptEnvironment(int /*long*/ ptr, int lang);
+public static final int nsIScriptGlobalObject_EnsureScriptEnvironment(int /*long*/ ptr, int lang) {
+ lock.lock();
+ try {
+ return _nsIScriptGlobalObject_EnsureScriptEnvironment(ptr, lang);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsIScriptGlobalObject *)
+ */
+public static final native int /*long*/ _nsIScriptGlobalObject_GetScriptGlobal(int /*long*/ ptr, int lang);
+public static final int /*long*/ nsIScriptGlobalObject_GetScriptGlobal(int /*long*/ ptr, int lang) {
+ lock.lock();
+ try {
+ return _nsIScriptGlobalObject_GetScriptGlobal(ptr, lang);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsIScriptGlobalObject *)
+ */
+public static final native int /*long*/ _nsIScriptGlobalObject_GetScriptContext(int /*long*/ ptr, int lang);
+public static final int /*long*/ nsIScriptGlobalObject_GetScriptContext(int /*long*/ ptr, int lang) {
+ lock.lock();
+ try {
+ return _nsIScriptGlobalObject_GetScriptContext(ptr, lang);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsIScriptContext *)
+ */
+public static final native int /*long*/ _nsIScriptContext_GetNativeContext(int /*long*/ ptr);
+public static final int /*long*/ nsIScriptContext_GetNativeContext(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ return _nsIScriptContext_GetNativeContext(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsEmbedCString *)
+ */
+public static final native int /*long*/ _nsEmbedCString_get(int /*long*/ ptr);
+public static final int /*long*/ nsEmbedCString_get(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ return _nsEmbedCString_get(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=delete
+ * @param ptr cast=(nsID *)
+ */
+public static final native void _nsID_delete(int /*long*/ ptr);
+public static final void nsID_delete(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ _nsID_delete(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+/** @method flags=new */
+public static final native int /*long*/ _nsID_new();
+public static final int /*long*/ nsID_new() {
+ lock.lock();
+ try {
+ return _nsID_new();
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsID *)
+ * @param other cast=(nsID *),flags=struct
+ */
+public static final native int _nsID_Equals(int /*long*/ ptr, int /*long*/ other);
+public static final int nsID_Equals(int /*long*/ ptr, int /*long*/ other) {
+ lock.lock();
+ try {
+ return _nsID_Equals(ptr, other);
+ } finally {
+ lock.unlock();
+ }
+}
+/** @method flags=new */
+public static final native int /*long*/ _nsEmbedString_new();
+public static final int /*long*/ nsEmbedString_new() {
+ lock.lock();
+ try {
+ return _nsEmbedString_new();
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=new
+ * @param aString cast=(PRUnichar *)
+ */
+public static final native int /*long*/ _nsEmbedString_new(char[] aString);
+public static final int /*long*/ nsEmbedString_new(char[] aString) {
+ lock.lock();
+ try {
+ return _nsEmbedString_new(aString);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=delete
+ * @param ptr cast=(nsEmbedString *)
+ */
+public static final native void _nsEmbedString_delete(int /*long*/ ptr);
+public static final void nsEmbedString_delete(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ _nsEmbedString_delete(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsEmbedString *)
+ */
+public static final native int _nsEmbedString_Length(int /*long*/ ptr);
+public static final int nsEmbedString_Length(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ return _nsEmbedString_Length(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsEmbedString *)
+ */
+public static final native int /*long*/ _nsEmbedString_get(int /*long*/ ptr);
+public static final int /*long*/ nsEmbedString_get(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ return _nsEmbedString_get(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr cast=(nsIMemory *)
+ * @param size cast=(size_t)
+ */
+public static final native int /*long*/ _nsIMemory_Alloc(int /*long*/ ptr, int size);
+public static final int /*long*/ nsIMemory_Alloc(int /*long*/ ptr, int size) {
+ lock.lock();
+ try {
+ return _nsIMemory_Alloc(ptr, size);
+ } finally {
+ lock.unlock();
+ }
+}
+/**
+ * @method flags=cpp
+ * @param ptr1 cast=(nsIMemory *)
+ * @param ptr2 cast=(void *)
+ * @param size cast=(size_t)
+ */
+public static final native int /*long*/ _nsIMemory_Realloc(int /*long*/ ptr1, int /*long*/ ptr2, int size);
+public static final int /*long*/ nsIMemory_Realloc(int /*long*/ ptr1, int /*long*/ ptr2, int size) {
+ lock.lock();
+ try {
+ return _nsIMemory_Realloc(ptr1, ptr2, size);
+ } finally {
+ lock.unlock();
+ }
+}
+/** @param functionLoad cast=(const nsDynamicFunctionLoad *) */
+public static final native int _XPCOMGlueLoadXULFunctions (int /*long*/ functionLoad);
+public static final int XPCOMGlueLoadXULFunctions (int /*long*/ functionLoad) {
+ lock.lock();
+ try {
+ return _XPCOMGlueLoadXULFunctions(functionLoad);
+ } finally {
+ lock.unlock();
+ }
+}
+/** @param place cast=(const char *) */
+public static final native int _XPCOMGlueStartup(byte[] place);
+public static final int XPCOMGlueStartup(byte[] place) {
+ lock.lock();
+ try {
+ return _XPCOMGlueStartup(place);
+ } finally {
+ lock.unlock();
+ }
+}
+public static final native int _XPCOMGlueShutdown();
+public static final int XPCOMGlueShutdown() {
+ lock.lock();
+ try {
+ return _XPCOMGlueShutdown();
+ } finally {
+ lock.unlock();
+ }
+}
+
+public static final native int _Call(int /*long*/ ptr);
+public static final int Call(int /*long*/ ptr) {
+ lock.lock();
+ try {
+ return _Call(ptr);
+ } finally {
+ lock.unlock();
+ }
+}
+
+/**
+ * @param ptr cast=(nsWriteSegmentFun)
+ * @param aInStream cast=(nsIInputStream *)
+ * @param aClosure cast=(void *)
+ * @param aFromSegment cast=(const char *)
+ * @param aWriteCount cast=(PRUint32 *)
+ */
+public static final native int /*long*/ _Call(int /*long*/ ptr, int /*long*/ aInStream, int /*long*/ aClosure, byte[] aFromSegment, int aToOffset, int aCount, int[] aWriteCount);
+public static final int /*long*/ Call(int /*long*/ ptr, int /*long*/ aInStream, int /*long*/ aClosure, byte[] aFromSegment, int aToOffset, int aCount, int[] aWriteCount) {
+ lock.lock();
+ try {
+ return _Call(ptr, aInStream, aClosure, aFromSegment, aToOffset, aCount, aWriteCount);
+ } finally {
+ lock.unlock();
+ }
+}
+
+/**
+ * @param ptr cast=(SWT_XREInitEmbedding)
+ * @param aLibXULDirectory cast=(nsILocalFile *)
+ * @param aAppDirectory cast=(nsILocalFile *)
+ * @param aAppDirProvider cast=(nsIDirectoryServiceProvider *)
+ * @param aStaticComponents cast=(nsStaticModuleInfo const *)
+ */
+public static final native int _Call(int /*long*/ ptr, int /*long*/ aLibXULDirectory, int /*long*/ aAppDirectory, int /*long*/ aAppDirProvider, int /*long*/ aStaticComponents, int aStaticComponentsCount);
+public static final int Call(int /*long*/ ptr, int /*long*/ aLibXULDirectory, int /*long*/ aAppDirectory, int /*long*/ aAppDirProvider, int /*long*/ aStaticComponents, int aStaticComponentsCount) {
+ lock.lock();
+ try {
+ return _Call(ptr, aLibXULDirectory, aAppDirectory, aAppDirProvider, aStaticComponents, aStaticComponentsCount);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, double arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, double arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, float arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, float arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, float[] arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, float[] arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long[] arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long[] arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] arg0);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] arg0) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long [] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long [] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, nsID arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, nsID arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, nsID arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, nsID arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, int[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, int[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, long[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, long[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, int arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, int arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, long arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, long arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, int[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, int[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, long[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, long[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, char[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, char[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, int arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, int arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, long[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, long[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, int arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, int arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, int[] arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, int[] arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long [] arg0, long [] arg1);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long [] arg0, long [] arg1) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long [] arg0, long [] arg1, long [] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long [] arg0, long [] arg1, long [] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, short arg0, int arg1, int arg2, int arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, short arg0, int arg1, int arg2, int arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, short arg0, long arg1, int arg2, long arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, short arg0, long arg1, int arg2, long arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, long[] arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, long[] arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, long[] arg1, long [] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, long[] arg1, long [] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, nsID arg1, long [] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, nsID arg1, long [] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, nsID arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, nsID arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, long arg1, long [] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, long arg1, long [] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long arg1, long arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long arg1, long arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, long[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, long[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, long [] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, long [] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, nsID arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, nsID arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, nsID arg1, long [] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, nsID arg1, long [] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, char[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, char[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, nsID arg1, long[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, nsID arg1, long[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, nsID arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, nsID arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, long[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, long[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int[] arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int[] arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int[] arg1, long[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int[] arg1, long[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long[] arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long[] arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, nsID arg1, int arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, nsID arg1, int arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, nsID arg1, long arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, nsID arg1, long arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, char[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, char[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, char[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, char[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, byte[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, byte[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, byte[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, byte[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, int arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, int arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, int[] arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, int[] arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, long arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, long arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, int arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, int arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, int arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, int arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, short arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, short arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, short arg2);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, short arg2) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, nsID arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, nsID arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long arg1, nsID arg2, long[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, long arg1, nsID arg2, long[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, int arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, int arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, long arg2, long[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, long arg2, long[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, long [] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, long [] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, char[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, char[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, char[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, char[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, int arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, int arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, int arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, int arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, int[] arg1, int[] arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, int[] arg1, int[] arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, byte[] arg1, byte[] arg2, int arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, byte[] arg1, byte[] arg2, int arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, byte[] arg1, byte[] arg2, long arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, byte[] arg1, byte[] arg2, long arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, int arg1, nsID arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, int arg1, nsID arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, long arg1, nsID arg2, long [] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, long arg1, nsID arg2, long [] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, int[] arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, int[] arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, long [] arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, long [] arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, byte[] arg2, byte[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, byte[] arg2, byte[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, byte[] arg2, byte[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, byte[] arg2, byte[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, byte[] arg2, int arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, byte[] arg2, int arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, byte[] arg2, long arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, byte[] arg2, long arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] arg0, int arg1, int[] arg2, int[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] arg0, int arg1, int[] arg2, int[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] arg0, long arg1, int[] arg2, long[] arg3);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] arg0, long arg1, int[] arg2, long[] arg3) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, int arg2, int arg3, int arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, int arg2, int arg3, int arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, long arg2, long arg3, long arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, long arg2, long arg3, long arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, long arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, long arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int[] arg1, int[] arg2, int[] arg3, int[] arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int[] arg1, int[] arg2, int[] arg3, int[] arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, char[] arg3, int[] arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, char[] arg3, int[] arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, char[] arg3, int[] arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, char[] arg3, int[] arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, int arg2, int[] arg3, int[] arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, int arg2, int[] arg3, int[] arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, long arg2, long [] arg3, int[] arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, int arg1, long arg2, long [] arg3, int[] arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, byte[] arg2, int arg3, int arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, byte[] arg2, int arg3, int arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, byte[] arg2, long arg3, int arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, byte[] arg2, long arg3, int arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, nsID arg1, int arg2, int arg3, int[] arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, nsID arg1, int arg2, int arg3, int[] arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, nsID arg1, long arg2, long arg3, long[] arg4);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, nsID arg1, long arg2, long arg3, long[] arg4) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, byte[] arg2, byte[] arg3, int arg4, int[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, byte[] arg1, byte[] arg2, byte[] arg3, int arg4, int[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, byte[] arg2, byte[] arg3, long arg4, long[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, byte[] arg1, byte[] arg2, byte[] arg3, long arg4, long[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, char[] arg2, int arg3, long arg4, int arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, char[] arg2, int arg3, long arg4, int arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, char[] arg2, int arg3, long arg4, int arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, char[] arg2, int arg3, long arg4, int arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, char[] arg2, long arg3, long arg4, long arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, char[] arg2, long arg3, long arg4, long arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, char[] arg2, long arg3, long arg4, long arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, char[] arg2, long arg3, long arg4, long arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, int[] arg1, int[] arg2, int[] arg3, int[] arg4, int[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int[] arg0, int[] arg1, int[] arg2, int[] arg3, int[] arg4, int[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long[] arg0, long[] arg1, long[] arg2, long[] arg3, long[] arg4, int[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long[] arg0, long[] arg1, long[] arg2, long[] arg3, long[] arg4, int[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, int arg3, int arg4, int arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, int arg3, int arg4, int arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int [] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, long arg4, long[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, long arg4, long[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, byte[] arg1, byte[] arg2, int arg3, byte[] arg4, byte[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, byte[] arg1, byte[] arg2, int arg3, byte[] arg4, byte[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, byte[] arg1, byte[] arg2, long arg3, byte[] arg4, byte[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, nsID arg0, byte[] arg1, byte[] arg2, long arg3, byte[] arg4, byte[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, long arg2, long arg3, long arg4, long arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, long arg2, long arg3, long arg4, long arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, char[] arg3, int[] arg4, int[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, char[] arg3, int[] arg4, int[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, char[] arg3, int[] arg4, int[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, char[] arg3, int[] arg4, int[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, byte[] arg2, int arg3, int arg4, int[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, byte[] arg2, int arg3, int arg4, int[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, byte[] arg2, int arg3, int arg4, long[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, byte[] arg0, byte[] arg1, byte[] arg2, int arg3, int arg4, long[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int[] arg4, int[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int[] arg4, int[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, int arg2, long arg3, int[] arg4, long [] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, int arg2, long arg3, int[] arg4, long [] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, char[] arg2, char[] arg3, int arg4, int [] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, char[] arg2, char[] arg3, int arg4, int [] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, char[] arg2, char[] arg3, int arg4, long[] arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, char[] arg2, char[] arg3, int arg4, long[] arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, byte[] arg3, byte[] arg4, int arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, byte[] arg3, byte[] arg4, int arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, byte[] arg3, byte[] arg4, long arg5);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, byte[] arg3, byte[] arg4, long arg5) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int arg3, int[] arg4, int[] arg5, int[] arg6);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int arg3, int[] arg4, int[] arg5, int[] arg6) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, int arg3, long[] arg4, int[] arg5, int[] arg6);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, int arg3, long[] arg4, int[] arg5, int[] arg6) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int[] arg3, char[] arg4, int[] arg5, int[] arg6);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int[] arg3, char[] arg4, int[] arg5, int[] arg6) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, long[] arg3, char[] arg4, int[] arg5, int[] arg6);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, long[] arg3, char[] arg4, int[] arg5, int[] arg6) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, char[] arg4, int[] arg5, int[] arg6);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, char[] arg4, int[] arg5, int[] arg6) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, long arg3, char[] arg4, int[] arg5, int[] arg6);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, int arg2, long arg3, char[] arg4, int[] arg5, int[] arg6) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, long arg4, int arg5, int arg6);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, long arg4, int arg5, int arg6) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int[] arg3, int[] arg4, char[] arg5, int[] arg6, int[] arg7);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int[] arg3, int[] arg4, char[] arg5, int[] arg6, int[] arg7) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, long[] arg3, long [] arg4, char[] arg5, int[] arg6, int[] arg7);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, long[] arg3, long [] arg4, char[] arg5, int[] arg6, int[] arg7) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int[] arg7);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int[] arg7) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6, long[] arg7);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6, long[] arg7) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+ } finally {
+ lock.unlock();
+ }
+}
+
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, char[] arg6, int[] arg7, int[] arg8);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, char[] arg6, int[] arg7, int[] arg8) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, int arg4, long arg5, char[] arg6, int[] arg7, long [] arg8);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, long arg3, int arg4, long arg5, char[] arg6, int[] arg7, long [] arg8) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, int arg2, long arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, int arg2, long arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int arg3, char[] arg4, char[] arg5, char[] arg6, char[] arg7, int[] arg8, int[] arg9);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, char[] arg2, int arg3, char[] arg4, char[] arg5, char[] arg6, char[] arg7, int[] arg8, int[] arg9) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, int arg3, char[] arg4, char[] arg5, char[] arg6, char[] arg7, int[] arg8, int[] arg9);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, char[] arg2, int arg3, char[] arg4, char[] arg5, char[] arg6, char[] arg7, int[] arg8, int[] arg9) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, char[] arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int[] arg10, int[] arg11);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, char[] arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int[] arg10, int[] arg11) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, int arg3, char[] arg4, long arg5, long arg6, int arg7, long arg8, int arg9, long [] arg10, long [] arg11);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, int arg3, char[] arg4, long arg5, long arg6, int arg7, long arg8, int arg9, long [] arg10, long [] arg11) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, char[] arg4, byte[] arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int[] arg11, int[] arg12);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, char[] arg4, byte[] arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int[] arg11, int[] arg12) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, int arg3, char[] arg4, byte[] arg5, long arg6, long arg7, int arg8, long arg9, int arg10, long [] arg11, long [] arg12);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, long arg2, int arg3, char[] arg4, byte[] arg5, long arg6, long arg7, int arg8, long arg9, int arg10, long [] arg11, long [] arg12) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11, int arg12, short arg13, int arg14);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11, int arg12, short arg13, int arg14) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
+ } finally {
+ lock.unlock();
+ }
+}
+static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, int arg2, long arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11, int arg12, short arg13, long arg14);
+static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, int arg2, long arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11, int arg12, short arg13, long arg14) {
+ lock.lock();
+ try {
+ return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
+ } finally {
+ lock.unlock();
+ }
+}
+
+/**
+ * @method flags=no_gen
+ */
+public static final native int GetAddress(int ptr, int index);
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOMObject.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOMObject.java
new file mode 100644
index 0000000000..bc22e54b87
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOMObject.java
@@ -0,0 +1,1031 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.internal.mozilla;
+
+import java.util.*;
+import org.eclipse.swt.*;
+import org.eclipse.swt.internal.*;
+
+public class XPCOMObject {
+ static boolean IsSolaris;
+ static {
+ String osName = System.getProperty ("os.name").toLowerCase (); //$NON-NLS-1$
+ IsSolaris = osName.startsWith ("sunos") || osName.startsWith("solaris"); //$NON-NLS-1$
+ }
+
+ private int /*long*/ ppVtable;
+
+ static private final int MAX_ARG_COUNT = 12;
+ static private final int MAX_VTABLE_LENGTH = 80;
+ static final int OS_OFFSET = IsSolaris ? 2 : 0;
+ static private Callback[][] Callbacks = new Callback[MAX_VTABLE_LENGTH + OS_OFFSET][MAX_ARG_COUNT];
+ static private Hashtable ObjectMap = new Hashtable ();
+
+
+public XPCOMObject (int[] argCounts) {
+ int /*long*/[] callbackAddresses = new int /*long*/[argCounts.length + OS_OFFSET];
+ synchronized (Callbacks) {
+ for (int i = 0, length = argCounts.length; i < length; i++) {
+ if ((Callbacks[i + OS_OFFSET][argCounts[i]]) == null) {
+ Callbacks[i + OS_OFFSET][argCounts[i]] = new Callback (getClass (), "callback"+i, argCounts[i] + 1, true, XPCOM.NS_ERROR_FAILURE); //$NON-NLS-1$
+ }
+ callbackAddresses[i + OS_OFFSET] = Callbacks[i + OS_OFFSET][argCounts[i]].getAddress ();
+ if (callbackAddresses[i + OS_OFFSET] == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+ }
+ }
+
+ int /*long*/ pVtable = C.malloc (C.PTR_SIZEOF * (argCounts.length + OS_OFFSET));
+ XPCOM.memmove (pVtable, callbackAddresses, C.PTR_SIZEOF * (argCounts.length + OS_OFFSET));
+ ppVtable = C.malloc (C.PTR_SIZEOF);
+ XPCOM.memmove (ppVtable, new int /*long*/[] {pVtable}, C.PTR_SIZEOF);
+ ObjectMap.put (new LONG (ppVtable), this);
+}
+
+static int /*long*/ callback0 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method0 (args);
+}
+static int /*long*/ callback1 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method1 (args);
+}
+static int /*long*/ callback10 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method10 (args);
+}
+static int /*long*/ callback11 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method11 (args);
+}
+static int /*long*/ callback12 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method12 (args);
+}
+static int /*long*/ callback13 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method13 (args);
+}
+static int /*long*/ callback14 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method14 (args);
+}
+static int /*long*/ callback15 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method15 (args);
+}
+static int /*long*/ callback16 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method16 (args);
+}
+static int /*long*/ callback17 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method17 (args);
+}
+static int /*long*/ callback18 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method18 (args);
+}
+static int /*long*/ callback19 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method19 (args);
+}
+static int /*long*/ callback2 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method2 (args);
+}
+static int /*long*/ callback20 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method20 (args);
+}
+static int /*long*/ callback21 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method21 (args);
+}
+static int /*long*/ callback22 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method22 (args);
+}
+static int /*long*/ callback23 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method23 (args);
+}
+static int /*long*/ callback24 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method24 (args);
+}
+static int /*long*/ callback25 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method25 (args);
+}
+static int /*long*/ callback26 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method26 (args);
+}
+static int /*long*/ callback27 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method27 (args);
+}
+static int /*long*/ callback28 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method28 (args);
+}
+static int /*long*/ callback29 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method29 (args);
+}
+static int /*long*/ callback3 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method3 (args);
+}
+static int /*long*/ callback30 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method30 (args);
+}
+static int /*long*/ callback31 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method31 (args);
+}
+static int /*long*/ callback32 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method32 (args);
+}
+static int /*long*/ callback33 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method33 (args);
+}
+static int /*long*/ callback34 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method34 (args);
+}
+static int /*long*/ callback35 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method35 (args);
+}
+static int /*long*/ callback36 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method36 (args);
+}
+static int /*long*/ callback37 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method37 (args);
+}
+static int /*long*/ callback38 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method38 (args);
+}
+static int /*long*/ callback39 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method39 (args);
+}
+static int /*long*/ callback4 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method4 (args);
+}
+static int /*long*/ callback40 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method40 (args);
+}
+static int /*long*/ callback41 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method41 (args);
+}
+static int /*long*/ callback42 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method42 (args);
+}
+static int /*long*/ callback43 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method43 (args);
+}
+static int /*long*/ callback44 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method44 (args);
+}
+static int /*long*/ callback45 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method45 (args);
+}
+static int /*long*/ callback46 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method46 (args);
+}
+static int /*long*/ callback47 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method47 (args);
+}
+static int /*long*/ callback48 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method48 (args);
+}
+static int /*long*/ callback49 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method49 (args);
+}
+static int /*long*/ callback5 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method5 (args);
+}
+static int /*long*/ callback50 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method50 (args);
+}
+static int /*long*/ callback51 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method51 (args);
+}
+static int /*long*/ callback52 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method52 (args);
+}
+static int /*long*/ callback53 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method53 (args);
+}
+static int /*long*/ callback54 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method54 (args);
+}
+static int /*long*/ callback55 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method55 (args);
+}
+static int /*long*/ callback56 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method56 (args);
+}
+static int /*long*/ callback57 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method57 (args);
+}
+static int /*long*/ callback58 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method58 (args);
+}
+static int /*long*/ callback59 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method59 (args);
+}
+static int /*long*/ callback6 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method6 (args);
+}
+static int /*long*/ callback60 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method60 (args);
+}
+static int /*long*/ callback61 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method61 (args);
+}
+static int /*long*/ callback62 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method62 (args);
+}
+static int /*long*/ callback63 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method63 (args);
+}
+static int /*long*/ callback64 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method64 (args);
+}
+static int /*long*/ callback65 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method65 (args);
+}
+static int /*long*/ callback66 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method66 (args);
+}
+static int /*long*/ callback67 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method67 (args);
+}
+static int /*long*/ callback68 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method68 (args);
+}
+static int /*long*/ callback69 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method69 (args);
+}
+static int /*long*/ callback7 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method7 (args);
+}
+static int /*long*/ callback70 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method70 (args);
+}
+static int /*long*/ callback71 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method71 (args);
+}
+static int /*long*/ callback72 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method72 (args);
+}
+static int /*long*/ callback73 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method73 (args);
+}
+static int /*long*/ callback74 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method74 (args);
+}
+static int /*long*/ callback75 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method75 (args);
+}
+static int /*long*/ callback76 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method76 (args);
+}
+static int /*long*/ callback77 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method77 (args);
+}
+static int /*long*/ callback78 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method78 (args);
+}
+static int /*long*/ callback79 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method79 (args);
+}
+static int /*long*/ callback8 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method8 (args);
+}
+static int /*long*/ callback9 (int /*long*/[] callbackArgs) {
+ // find the object on which this call was invoked
+ int /*long*/ address = callbackArgs[0];
+ Object object = ObjectMap.get (new LONG (address));
+ if (object == null) return XPCOM.NS_ERROR_FAILURE;
+ int /*long*/[] args = new int /*long*/[callbackArgs.length - 1];
+ System.arraycopy (callbackArgs, 1, args, 0, args.length);
+ return ((XPCOMObject) object).method9 (args);
+}
+
+public void dispose() {
+ // free the memory for this reference
+ int /*long*/[] pVtable = new int /*long*/[1];
+ XPCOM.memmove (pVtable, ppVtable, C.PTR_SIZEOF);
+ C.free (pVtable[0]);
+ C.free (ppVtable);
+
+ // remove this ppVtable from the list
+ ObjectMap.remove (new LONG (ppVtable));
+
+ ppVtable = 0;
+}
+
+public int /*long*/ getAddress () {
+ return ppVtable;
+}
+
+public int /*long*/ method0 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method1 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method10 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method11 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method12 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method13 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method14 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method15 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method16 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method17 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method18 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method19 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method2 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method20 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method21 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method22 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method23 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method24 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method25 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method26 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method27 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method28 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method29 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method3 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method30 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method31 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method32 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method33 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method34 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method35 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method36 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method37 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method38 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method39 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method4 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method40 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method41 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method42 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method43 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method44 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method45 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method46 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method47 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method48 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method49 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method5 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method50 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method51 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method52 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method53 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method54 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method55 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method56 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method57 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method58 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method59 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method6 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method60 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method61 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method62 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method63 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method64 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method65 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method66 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method67 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method68 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method69 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method7 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method70 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method71 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method72 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method73 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method74 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method75 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method76 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method77 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method78 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method79 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method8 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+public int /*long*/ method9 (int /*long*/[] args) {
+ return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
+}
+}
+
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java
new file mode 100644
index 0000000000..da361dd066
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.internal.mozilla.init;
+
+/** @jniclass flags=cpp */
+public class GREVersionRange {
+ /** @field cast=(const char *) */
+ public int /*long*/ lower;
+ public boolean lowerInclusive;
+ /** @field cast=(const char *) */
+ public int /*long*/ upper;
+ public boolean upperInclusive;
+ public static final int sizeof = XPCOMInit.GREVersionRange_sizeof();
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java
new file mode 100644
index 0000000000..a746934aa5
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java
@@ -0,0 +1,71 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2006 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla.init;
+
+import org.eclipse.swt.internal.Platform;
+
+/** @jniclass flags=cpp */
+public class XPCOMInit extends Platform {
+ public static final int PATH_MAX = 4096;
+
+public static final native int GREVersionRange_sizeof ();
+
+/**
+ * @param versions cast=(const GREVersionRange *)
+ * @param properties cast=(const GREProperty *)
+ * @param buffer cast=(char *)
+ */
+public static final native int _GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, int /*long*/ properties, int propertiesLength, int /*long*/ buffer, int buflen);
+public static final int GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, int /*long*/ properties, int propertiesLength, int /*long*/ buffer, int buflen) {
+ lock.lock();
+ try {
+ return _GRE_GetGREPathWithProperties(versions, versionsLength, properties, propertiesLength, buffer, buflen);
+ } finally {
+ lock.unlock();
+ }
+}
+/** @param place cast=(const char *) */
+public static final native int _XPCOMGlueStartup (byte[] place);
+public static final int XPCOMGlueStartup (byte[] place) {
+ lock.lock();
+ try {
+ return _XPCOMGlueStartup(place);
+ } finally {
+ lock.unlock();
+ }
+}
+public static final native int _XPCOMGlueShutdown ();
+public static final int XPCOMGlueShutdown () {
+ lock.lock();
+ try {
+ return _XPCOMGlueShutdown();
+ } finally {
+ lock.unlock();
+ }
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java
new file mode 100644
index 0000000000..7857539770
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.internal.mozilla;
+
+public class nsDynamicFunctionLoad {
+ /** @field cast=(const char *) */
+ public int /*long*/ functionName;
+ /** @field cast=(NSFuncPtr *) */
+ public int /*long*/ function;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsEmbedString.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsEmbedString.java
new file mode 100644
index 0000000000..162a0ad89c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsEmbedString.java
@@ -0,0 +1,63 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2004 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsEmbedString {
+ int /*long*/ handle;
+
+public nsEmbedString() {
+ handle = XPCOM.nsEmbedString_new();
+}
+
+public nsEmbedString(String string) {
+ if (string != null) {
+ char[] aString = new char[string.length() + 1];
+ string.getChars(0, string.length(), aString, 0);
+ handle = XPCOM.nsEmbedString_new(aString);
+ }
+}
+
+public int /*long*/ getAddress() {
+ return handle;
+}
+
+public String toString() {
+ if (handle == 0) return null;
+ int length = XPCOM.nsEmbedString_Length(handle);
+ int /*long*/ buffer = XPCOM.nsEmbedString_get(handle);
+ char[] dest = new char[length];
+ XPCOM.memmove(dest, buffer, length * 2);
+ return new String(dest);
+}
+
+public void dispose() {
+ if (handle == 0) return;
+ XPCOM.nsEmbedString_delete(handle);
+ handle = 0;
+}
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIAppShell.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIAppShell.java
new file mode 100644
index 0000000000..9ce7481d72
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIAppShell.java
@@ -0,0 +1,75 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIAppShell extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 8;
+
+ public static final String NS_IAPPSHELL_IID_STR =
+ "a0757c31-eeac-11d1-9ec1-00aa002fb821";
+
+ public static final nsID NS_IAPPSHELL_IID =
+ new nsID(NS_IAPPSHELL_IID_STR);
+
+ public nsIAppShell(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Create(int /*long*/ argc, int /*long*/[] argv) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), argc, argv);
+ }
+
+ public int Run() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress());
+ }
+
+ public int Spinup() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
+ }
+
+ public int Spindown() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress());
+ }
+
+ public int ListenToEventQueue(int /*long*/ aQueue, int aListen) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aQueue, aListen);
+ }
+
+ public int GetNativeEvent(int /*long*/ aRealEvent, int /*long*/[] aEvent) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aRealEvent, aEvent);
+ }
+
+ public int DispatchNativeEvent(int aRealEvent, int /*long*/ aEvent) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aRealEvent, aEvent);
+ }
+
+ public int Exit() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress());
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIAuthInformation.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIAuthInformation.java
new file mode 100644
index 0000000000..204179092c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIAuthInformation.java
@@ -0,0 +1,87 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIAuthInformation extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 9;
+
+ public static final String NS_IAUTHINFORMATION_IID_STR =
+ "0d73639c-2a92-4518-9f92-28f71fea5f20";
+
+ public static final nsID NS_IAUTHINFORMATION_IID =
+ new nsID(NS_IAUTHINFORMATION_IID_STR);
+
+ public nsIAuthInformation(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int AUTH_HOST = 1;
+
+ public static final int AUTH_PROXY = 2;
+
+ public static final int NEED_DOMAIN = 4;
+
+ public static final int ONLY_PASSWORD = 8;
+
+ public int GetFlags(int[] aFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aFlags);
+ }
+
+ public int GetRealm(int /*long*/ aRealm) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aRealm);
+ }
+
+ public int GetAuthenticationScheme(int /*long*/ aAuthenticationScheme) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aAuthenticationScheme);
+ }
+
+ public int GetUsername(int /*long*/ aUsername) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aUsername);
+ }
+
+ public int SetUsername(int /*long*/ aUsername) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aUsername);
+ }
+
+ public int GetPassword(int /*long*/ aPassword) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aPassword);
+ }
+
+ public int SetPassword(int /*long*/ aPassword) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aPassword);
+ }
+
+ public int GetDomain(int /*long*/ aDomain) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aDomain);
+ }
+
+ public int SetDomain(int /*long*/ aDomain) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aDomain);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIBaseWindow.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIBaseWindow.java
new file mode 100644
index 0000000000..23c915b66d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIBaseWindow.java
@@ -0,0 +1,139 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIBaseWindow extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 24;
+
+ public static final String NS_IBASEWINDOW_IID_STR =
+ "046bc8a0-8015-11d3-af70-00a024ffc08c";
+
+ public static final nsID NS_IBASEWINDOW_IID =
+ new nsID(NS_IBASEWINDOW_IID_STR);
+
+ public nsIBaseWindow(int /*long*/ address) {
+ super(address);
+ }
+
+ public int InitWindow(int /*long*/ parentNativeWindow, int /*long*/ parentWidget, int x, int y, int cx, int cy) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), parentNativeWindow, parentWidget, x, y, cx, cy);
+ }
+
+ public int Create() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress());
+ }
+
+ public int Destroy() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
+ }
+
+ public int SetPosition(int x, int y) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), x, y);
+ }
+
+ public int GetPosition(int[] x, int[] y) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), x, y);
+ }
+
+ public int SetSize(int cx, int cy, int fRepaint) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), cx, cy, fRepaint);
+ }
+
+ public int GetSize(int[] cx, int[] cy) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), cx, cy);
+ }
+
+ public int SetPositionAndSize(int x, int y, int cx, int cy, int fRepaint) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), x, y, cx, cy, fRepaint);
+ }
+
+ public int GetPositionAndSize(int[] x, int[] y, int[] cx, int[] cy) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), x, y, cx, cy);
+ }
+
+ public int Repaint(int force) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), force);
+ }
+
+ public int GetParentWidget(int /*long*/[] aParentWidget) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aParentWidget);
+ }
+
+ public int SetParentWidget(int /*long*/ aParentWidget) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aParentWidget);
+ }
+
+ public int GetParentNativeWindow(int /*long*/[] aParentNativeWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aParentNativeWindow);
+ }
+
+ public int SetParentNativeWindow(int /*long*/ aParentNativeWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), aParentNativeWindow);
+ }
+
+ public int GetVisibility(int[] aVisibility) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), aVisibility);
+ }
+
+ public int SetVisibility(int aVisibility) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), aVisibility);
+ }
+
+ public int GetEnabled(int[] aEnabled) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aEnabled);
+ }
+
+ public int SetEnabled(int aEnabled) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 18, getAddress(), aEnabled);
+ }
+
+ public int GetBlurSuppression(int[] aBlurSuppression) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 19, getAddress(), aBlurSuppression);
+ }
+
+ public int SetBlurSuppression(int aBlurSuppression) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), aBlurSuppression);
+ }
+
+ public int GetMainWidget(int /*long*/[] aMainWidget) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), aMainWidget);
+ }
+
+ public int SetFocus() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 22, getAddress());
+ }
+
+ public int GetTitle(int /*long*/[] aTitle) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), aTitle);
+ }
+
+ public int SetTitle(char[] aTitle) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 24, getAddress(), aTitle);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICancelable.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICancelable.java
new file mode 100644
index 0000000000..e20f203922
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICancelable.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsICancelable extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_ICANCELABLE_IID_STR =
+ "d94ac0a0-bb18-46b8-844e-84159064b0bd";
+
+ public static final nsID NS_ICANCELABLE_IID =
+ new nsID(NS_ICANCELABLE_IID_STR);
+
+ public nsICancelable(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Cancel(int aReason) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aReason);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICategoryManager.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICategoryManager.java
new file mode 100644
index 0000000000..8417352efa
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICategoryManager.java
@@ -0,0 +1,67 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsICategoryManager extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 6;
+
+ public static final String NS_ICATEGORYMANAGER_IID_STR =
+ "3275b2cd-af6d-429a-80d7-f0c5120342ac";
+
+ public static final nsID NS_ICATEGORYMANAGER_IID =
+ new nsID(NS_ICATEGORYMANAGER_IID_STR);
+
+ public nsICategoryManager(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetCategoryEntry(byte[] aCategory, byte[] aEntry, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aCategory, aEntry, _retval);
+ }
+
+ public int AddCategoryEntry(byte[] aCategory, byte[] aEntry, byte[] aValue, int aPersist, int aReplace, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aCategory, aEntry, aValue, aPersist, aReplace, _retval);
+ }
+
+ public int DeleteCategoryEntry(byte[] aCategory, byte[] aEntry, int aPersist) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aCategory, aEntry, aPersist);
+ }
+
+ public int DeleteCategory(byte[] aCategory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aCategory);
+ }
+
+ public int EnumerateCategory(byte[] aCategory, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aCategory, _retval);
+ }
+
+ public int EnumerateCategories(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIChannel.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIChannel.java
new file mode 100644
index 0000000000..5868a23a25
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIChannel.java
@@ -0,0 +1,119 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIChannel extends nsIRequest {
+
+ static final int LAST_METHOD_ID = nsIRequest.LAST_METHOD_ID + 16;
+
+ public static final String NS_ICHANNEL_IID_STR =
+ "c63a055a-a676-4e71-bf3c-6cfa11082018";
+
+ public static final nsID NS_ICHANNEL_IID =
+ new nsID(NS_ICHANNEL_IID_STR);
+
+ public nsIChannel(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetOriginalURI(int /*long*/[] aOriginalURI) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 1, getAddress(), aOriginalURI);
+ }
+
+ public int SetOriginalURI(int /*long*/ aOriginalURI) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 2, getAddress(), aOriginalURI);
+ }
+
+ public int GetURI(int /*long*/[] aURI) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 3, getAddress(), aURI);
+ }
+
+ public int GetOwner(int /*long*/[] aOwner) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 4, getAddress(), aOwner);
+ }
+
+ public int SetOwner(int /*long*/ aOwner) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 5, getAddress(), aOwner);
+ }
+
+ public int GetNotificationCallbacks(int /*long*/[] aNotificationCallbacks) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 6, getAddress(), aNotificationCallbacks);
+ }
+
+ public int SetNotificationCallbacks(int /*long*/ aNotificationCallbacks) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 7, getAddress(), aNotificationCallbacks);
+ }
+
+ public int GetSecurityInfo(int /*long*/[] aSecurityInfo) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 8, getAddress(), aSecurityInfo);
+ }
+
+ public int GetContentType(int /*long*/ aContentType) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 9, getAddress(), aContentType);
+ }
+
+ public int SetContentType(int /*long*/ aContentType) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 10, getAddress(), aContentType);
+ }
+
+ public int GetContentCharset(int /*long*/ aContentCharset) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 11, getAddress(), aContentCharset);
+ }
+
+ public int SetContentCharset(int /*long*/ aContentCharset) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 12, getAddress(), aContentCharset);
+ }
+
+ public int GetContentLength(int[] aContentLength) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 13, getAddress(), aContentLength);
+ }
+
+ public int SetContentLength(int aContentLength) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 14, getAddress(), aContentLength);
+ }
+
+ public int Open(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 15, getAddress(), _retval);
+ }
+
+ public int AsyncOpen(int /*long*/ aListener, int /*long*/ aContext) {
+ return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 16, getAddress(), aListener, aContext);
+ }
+
+ public static final int LOAD_DOCUMENT_URI = 65536;
+
+ public static final int LOAD_RETARGETED_DOCUMENT_URI = 131072;
+
+ public static final int LOAD_REPLACE = 262144;
+
+ public static final int LOAD_INITIAL_DOCUMENT_URI = 524288;
+
+ public static final int LOAD_TARGETED = 1048576;
+
+ public static final int LOAD_CALL_CONTENT_SNIFFERS = 2097152;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIClassInfo.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIClassInfo.java
new file mode 100644
index 0000000000..180f72101d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIClassInfo.java
@@ -0,0 +1,91 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIClassInfo extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 8;
+
+ public static final String NS_ICLASSINFO_IID_STR =
+ "986c11d0-f340-11d4-9075-0010a4e73d9a";
+
+ public static final nsID NS_ICLASSINFO_IID =
+ new nsID(NS_ICLASSINFO_IID_STR);
+
+ public nsIClassInfo(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetInterfaces(int[] count, int /*long*/[] array) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), count, array);
+ }
+
+ public int GetHelperForLanguage(int language, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), language, _retval);
+ }
+
+ public int GetContractID(int /*long*/[] aContractID) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aContractID);
+ }
+
+ public int GetClassDescription(int /*long*/[] aClassDescription) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aClassDescription);
+ }
+
+ public int GetClassID(int /*long*/ aClassID) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aClassID);
+ }
+
+ public int GetImplementationLanguage(int[] aImplementationLanguage) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aImplementationLanguage);
+ }
+
+ public static final int SINGLETON = 1;
+
+ public static final int THREADSAFE = 2;
+
+ public static final int MAIN_THREAD_ONLY = 4;
+
+ public static final int DOM_OBJECT = 8;
+
+ public static final int PLUGIN_OBJECT = 16;
+
+ public static final int EAGER_CLASSINFO = 32;
+
+ public static final int CONTENT_NODE = 64;
+
+// public static final int RESERVED = 2147483648;
+
+ public int GetFlags(int[] aFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aFlags);
+ }
+
+ public int GetClassIDNoAlloc(int /*long*/ aClassIDNoAlloc) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aClassIDNoAlloc);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIComponentManager.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIComponentManager.java
new file mode 100644
index 0000000000..0dd1e04636
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIComponentManager.java
@@ -0,0 +1,59 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIComponentManager extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_ICOMPONENTMANAGER_IID_STR =
+ "a88e5a60-205a-4bb1-94e1-2628daf51eae";
+
+ public static final nsID NS_ICOMPONENTMANAGER_IID =
+ new nsID(NS_ICOMPONENTMANAGER_IID_STR);
+
+ public nsIComponentManager(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetClassObject(nsID aClass, nsID aIID, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aClass, aIID, result);
+ }
+
+ public int GetClassObjectByContractID(byte[] aContractID, nsID aIID, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aContractID, aIID, result);
+ }
+
+ public int CreateInstance(nsID aClass, int /*long*/ aDelegate, nsID aIID, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aClass, aDelegate, aIID, result);
+ }
+
+ public int CreateInstanceByContractID(byte[] aContractID, int /*long*/ aDelegate, nsID aIID, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aContractID, aDelegate, aIID, result);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java
new file mode 100644
index 0000000000..6ff0cfff91
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java
@@ -0,0 +1,91 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIComponentRegistrar extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 12;
+
+ public static final String NS_ICOMPONENTREGISTRAR_IID_STR =
+ "2417cbfe-65ad-48a6-b4b6-eb84db174392";
+
+ public static final nsID NS_ICOMPONENTREGISTRAR_IID =
+ new nsID(NS_ICOMPONENTREGISTRAR_IID_STR);
+
+ public nsIComponentRegistrar(int /*long*/ address) {
+ super(address);
+ }
+
+ public int AutoRegister(int /*long*/ aSpec) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aSpec);
+ }
+
+ public int AutoUnregister(int /*long*/ aSpec) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aSpec);
+ }
+
+ public int RegisterFactory(nsID aClass, byte[] aClassName, byte[] aContractID, int /*long*/ aFactory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aClass, aClassName, aContractID, aFactory);
+ }
+
+ public int UnregisterFactory(nsID aClass, int /*long*/ aFactory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aClass, aFactory);
+ }
+
+ public int RegisterFactoryLocation(nsID aClass, byte[] aClassName, byte[] aContractID, int /*long*/ aFile, byte[] aLoaderStr, byte[] aType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aClass, aClassName, aContractID, aFile, aLoaderStr, aType);
+ }
+
+ public int UnregisterFactoryLocation(nsID aClass, int /*long*/ aFile) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aClass, aFile);
+ }
+
+ public int IsCIDRegistered(nsID aClass, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aClass, _retval);
+ }
+
+ public int IsContractIDRegistered(byte[] aContractID, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aContractID, _retval);
+ }
+
+ public int EnumerateCIDs(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), _retval);
+ }
+
+ public int EnumerateContractIDs(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), _retval);
+ }
+
+ public int CIDToContractID(nsID aClass, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aClass, _retval);
+ }
+
+ public int ContractIDToCID(byte[] aContractID, int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aContractID, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java
new file mode 100644
index 0000000000..b29155e9a4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java
@@ -0,0 +1,59 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIContextMenuListener extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_ICONTEXTMENULISTENER_IID_STR =
+ "3478b6b0-3875-11d4-94ef-0020183bf181";
+
+ public static final nsID NS_ICONTEXTMENULISTENER_IID =
+ new nsID(NS_ICONTEXTMENULISTENER_IID_STR);
+
+ public nsIContextMenuListener(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int CONTEXT_NONE = 0;
+
+ public static final int CONTEXT_LINK = 1;
+
+ public static final int CONTEXT_IMAGE = 2;
+
+ public static final int CONTEXT_DOCUMENT = 4;
+
+ public static final int CONTEXT_TEXT = 8;
+
+ public static final int CONTEXT_INPUT = 16;
+
+ public int OnShowContextMenu(int aContextFlags, int /*long*/ aEvent, int /*long*/ aNode) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aContextFlags, aEvent, aNode);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookie.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookie.java
new file mode 100644
index 0000000000..77eb6d2b10
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookie.java
@@ -0,0 +1,101 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsICookie extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 9;
+
+ public static final String NS_ICOOKIE_IID_STR =
+ "e9fcb9a4-d376-458f-b720-e65e7df593bc";
+
+ public static final nsID NS_ICOOKIE_IID =
+ new nsID(NS_ICOOKIE_IID_STR);
+
+ public nsICookie(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetName(int /*long*/ aName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aName);
+ }
+
+ public int GetValue(int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aValue);
+ }
+
+ public int GetIsDomain(int[] aIsDomain) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aIsDomain);
+ }
+
+ public int GetHost(int /*long*/ aHost) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aHost);
+ }
+
+ public int GetPath(int /*long*/ aPath) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aPath);
+ }
+
+ public int GetIsSecure(int[] aIsSecure) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aIsSecure);
+ }
+
+ public int GetExpires(long[] aExpires) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aExpires);
+ }
+
+ public static final int STATUS_UNKNOWN = 0;
+
+ public static final int STATUS_ACCEPTED = 1;
+
+ public static final int STATUS_DOWNGRADED = 2;
+
+ public static final int STATUS_FLAGGED = 3;
+
+ public static final int STATUS_REJECTED = 4;
+
+ public int GetStatus(int /*long*/ aStatus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aStatus);
+ }
+
+ public static final int POLICY_UNKNOWN = 0;
+
+ public static final int POLICY_NONE = 1;
+
+ public static final int POLICY_NO_CONSENT = 2;
+
+ public static final int POLICY_IMPLICIT_CONSENT = 3;
+
+ public static final int POLICY_EXPLICIT_CONSENT = 4;
+
+ public static final int POLICY_NO_II = 5;
+
+ public int GetPolicy(int /*long*/ aPolicy) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aPolicy);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieManager.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieManager.java
new file mode 100644
index 0000000000..a925dd8cc2
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieManager.java
@@ -0,0 +1,55 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsICookieManager extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 3;
+
+ public static final String NS_ICOOKIEMANAGER_IID_STR =
+ "aaab6710-0f2c-11d5-a53b-0010a401eb10";
+
+ public static final nsID NS_ICOOKIEMANAGER_IID =
+ new nsID(NS_ICOOKIEMANAGER_IID_STR);
+
+ public nsICookieManager(int /*long*/ address) {
+ super(address);
+ }
+
+ public int RemoveAll() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress());
+ }
+
+ public int GetEnumerator(int /*long*/[] aEnumerator) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aEnumerator);
+ }
+
+ public int Remove(int /*long*/ aDomain, int /*long*/ aName, int /*long*/ aPath, int aBlocked) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aDomain, aName, aPath, aBlocked);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieService.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieService.java
new file mode 100644
index 0000000000..7c9e80d383
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieService.java
@@ -0,0 +1,64 @@
+package org.eclipse.swt.internal.mozilla;
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+
+public class nsICookieService extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 5;
+
+ public static final String NS_ICOOKIESERVICE_IID_STR =
+ "011c3190-1434-11d6-a618-0010a401eb10";
+
+ public static final nsID NS_ICOOKIESERVICE_IID =
+ new nsID(NS_ICOOKIESERVICE_IID_STR);
+
+ public nsICookieService(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetCookieString(int /*long*/ aURI, int /*long*/ aChannel, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aURI, aChannel, _retval);
+ }
+
+ public int GetCookieStringFromHttp(int /*long*/ aURI, int /*long*/ aFirstURI, int /*long*/ aChannel, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aURI, aFirstURI, aChannel, _retval);
+ }
+
+ public int SetCookieString(int /*long*/ aURI, int /*long*/ aPrompt, byte[] aCookie, int /*long*/ aChannel) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aURI, aPrompt, aCookie, aChannel);
+ }
+
+ public int SetCookieStringFromHttp(int /*long*/ aURI, int /*long*/ aFirstURI, int /*long*/ aPrompt, byte[] aCookie, byte[] aServerTime, int /*long*/ aChannel) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aURI, aFirstURI, aPrompt, aCookie, aServerTime, aChannel);
+ }
+
+ public int GetCookieIconIsVisible(int[] aCookieIconIsVisible) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aCookieIconIsVisible);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java
new file mode 100644
index 0000000000..429bba25f8
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java
@@ -0,0 +1,59 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsICookieService_1_9 extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_ICOOKIESERVICE_IID_STR =
+ "2aaa897a-293c-4d2b-a657-8c9b7136996d";
+
+ public static final nsID NS_ICOOKIESERVICE_IID =
+ new nsID(NS_ICOOKIESERVICE_IID_STR);
+
+ public nsICookieService_1_9(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetCookieString(int /*long*/ aURI, int /*long*/ aChannel, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aURI, aChannel, _retval);
+ }
+
+ public int GetCookieStringFromHttp(int /*long*/ aURI, int /*long*/ aFirstURI, int /*long*/ aChannel, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aURI, aFirstURI, aChannel, _retval);
+ }
+
+ public int SetCookieString(int /*long*/ aURI, int /*long*/ aPrompt, byte[] aCookie, int /*long*/ aChannel) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aURI, aPrompt, aCookie, aChannel);
+ }
+
+ public int SetCookieStringFromHttp(int /*long*/ aURI, int /*long*/ aFirstURI, int /*long*/ aPrompt, byte[] aCookie, byte[] aServerTime, int /*long*/ aChannel) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aURI, aFirstURI, aPrompt, aCookie, aServerTime, aChannel);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java
new file mode 100644
index 0000000000..a5fd6d8c63
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsID.java
@@ -0,0 +1,77 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2004 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+/** @jniclass flags=cpp */
+public class nsID {
+
+ public int m0;
+ public short m1;
+ public short m2;
+ public byte[] m3 = new byte[8];
+ public static final int sizeof = 16;
+
+public nsID() {
+}
+
+public nsID(String id) {
+ Parse(id);
+}
+
+public boolean Equals(nsID other) {
+ int /*long*/ ptr = XPCOM.nsID_new ();
+ XPCOM.memmove (ptr, this, nsID.sizeof);
+ int /*long*/ otherPtr = XPCOM.nsID_new ();
+ XPCOM.memmove (otherPtr, other, nsID.sizeof);
+ boolean result = XPCOM.nsID_Equals (ptr, otherPtr) != 0;
+ XPCOM.nsID_delete (ptr);
+ XPCOM.nsID_delete (otherPtr);
+ return result;
+}
+
+public void Parse (String aIDStr) {
+ if (aIDStr == null) throw new Error ();
+ int i = 0;
+ for (; i < 8; i++) m0 = (m0 << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16);
+ if (aIDStr.charAt (i++) != '-') throw new Error ();
+ for (; i < 13; i++) m1 = (short)((m1 << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ if (aIDStr.charAt (i++) != '-') throw new Error ();
+ for (; i < 18; i++) m2 = (short)((m2 << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ if (aIDStr.charAt (i++) != '-') throw new Error ();
+ for (; i < 21; i++) m3[0] = (byte)((m3[0] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 23; i++) m3[1] = (byte)((m3[1] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ if (aIDStr.charAt (i++) != '-') throw new Error ();
+ for (; i < 26; i++) m3[2] = (byte)((m3[2] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 28; i++) m3[3] = (byte)((m3[3] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 30; i++) m3[4] = (byte)((m3[4] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 32; i++) m3[5] = (byte)((m3[5] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 34; i++) m3[6] = (byte)((m3[6] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+ for (; i < 36; i++) m3[7] = (byte)((m3[7] << 4) + Integer.parseInt (aIDStr.substring (i, i + 1), 16));
+}
+
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMEvent.java
new file mode 100644
index 0000000000..b07be67dc4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMEvent.java
@@ -0,0 +1,89 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMEvent extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 10;
+
+ public static final String NS_IDOMEVENT_IID_STR =
+ "a66b7b80-ff46-bd97-0080-5f8ae38add32";
+
+ public static final nsID NS_IDOMEVENT_IID =
+ new nsID(NS_IDOMEVENT_IID_STR);
+
+ public nsIDOMEvent(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int CAPTURING_PHASE = 1;
+
+ public static final int AT_TARGET = 2;
+
+ public static final int BUBBLING_PHASE = 3;
+
+ public int GetType(int /*long*/ aType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aType);
+ }
+
+ public int GetTarget(int /*long*/[] aTarget) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aTarget);
+ }
+
+ public int GetCurrentTarget(int /*long*/[] aCurrentTarget) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aCurrentTarget);
+ }
+
+ public int GetEventPhase(short[] aEventPhase) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aEventPhase);
+ }
+
+ public int GetBubbles(int[] aBubbles) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aBubbles);
+ }
+
+ public int GetCancelable(int[] aCancelable) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aCancelable);
+ }
+
+ public int GetTimeStamp(int /*long*/[] aTimeStamp) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aTimeStamp);
+ }
+
+ public int StopPropagation() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress());
+ }
+
+ public int PreventDefault() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress());
+ }
+
+ public int InitEvent(int /*long*/ eventTypeArg, int canBubbleArg, int cancelableArg) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), eventTypeArg, canBubbleArg, cancelableArg);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java
new file mode 100644
index 0000000000..fd08c33bf4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java
@@ -0,0 +1,55 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMEventTarget extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 3;
+
+ public static final String NS_IDOMEVENTTARGET_IID_STR =
+ "1c773b30-d1cf-11d2-bd95-00805f8ae3f4";
+
+ public static final nsID NS_IDOMEVENTTARGET_IID =
+ new nsID(NS_IDOMEVENTTARGET_IID_STR);
+
+ public nsIDOMEventTarget(int /*long*/ address) {
+ super(address);
+ }
+
+ public int AddEventListener(int /*long*/ type, int /*long*/ listener, int useCapture) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), type, listener, useCapture);
+ }
+
+ public int RemoveEventListener(int /*long*/ type, int /*long*/ listener, int useCapture) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), type, listener, useCapture);
+ }
+
+ public int DispatchEvent(int /*long*/ evt, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), evt, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java
new file mode 100644
index 0000000000..906c132f87
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java
@@ -0,0 +1,299 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMKeyEvent extends nsIDOMUIEvent {
+
+ static final int LAST_METHOD_ID = nsIDOMUIEvent.LAST_METHOD_ID + 7;
+
+ public static final String NS_IDOMKEYEVENT_IID_STR =
+ "028e0e6e-8b01-11d3-aae7-0010838a3123";
+
+ public static final nsID NS_IDOMKEYEVENT_IID =
+ new nsID(NS_IDOMKEYEVENT_IID_STR);
+
+ public nsIDOMKeyEvent(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int DOM_VK_CANCEL = 3;
+
+ public static final int DOM_VK_HELP = 6;
+
+ public static final int DOM_VK_BACK_SPACE = 8;
+
+ public static final int DOM_VK_TAB = 9;
+
+ public static final int DOM_VK_CLEAR = 12;
+
+ public static final int DOM_VK_RETURN = 13;
+
+ public static final int DOM_VK_ENTER = 14;
+
+ public static final int DOM_VK_SHIFT = 16;
+
+ public static final int DOM_VK_CONTROL = 17;
+
+ public static final int DOM_VK_ALT = 18;
+
+ public static final int DOM_VK_PAUSE = 19;
+
+ public static final int DOM_VK_CAPS_LOCK = 20;
+
+ public static final int DOM_VK_ESCAPE = 27;
+
+ public static final int DOM_VK_SPACE = 32;
+
+ public static final int DOM_VK_PAGE_UP = 33;
+
+ public static final int DOM_VK_PAGE_DOWN = 34;
+
+ public static final int DOM_VK_END = 35;
+
+ public static final int DOM_VK_HOME = 36;
+
+ public static final int DOM_VK_LEFT = 37;
+
+ public static final int DOM_VK_UP = 38;
+
+ public static final int DOM_VK_RIGHT = 39;
+
+ public static final int DOM_VK_DOWN = 40;
+
+ public static final int DOM_VK_PRINTSCREEN = 44;
+
+ public static final int DOM_VK_INSERT = 45;
+
+ public static final int DOM_VK_DELETE = 46;
+
+ public static final int DOM_VK_0 = 48;
+
+ public static final int DOM_VK_1 = 49;
+
+ public static final int DOM_VK_2 = 50;
+
+ public static final int DOM_VK_3 = 51;
+
+ public static final int DOM_VK_4 = 52;
+
+ public static final int DOM_VK_5 = 53;
+
+ public static final int DOM_VK_6 = 54;
+
+ public static final int DOM_VK_7 = 55;
+
+ public static final int DOM_VK_8 = 56;
+
+ public static final int DOM_VK_9 = 57;
+
+ public static final int DOM_VK_SEMICOLON = 59;
+
+ public static final int DOM_VK_EQUALS = 61;
+
+ public static final int DOM_VK_A = 65;
+
+ public static final int DOM_VK_B = 66;
+
+ public static final int DOM_VK_C = 67;
+
+ public static final int DOM_VK_D = 68;
+
+ public static final int DOM_VK_E = 69;
+
+ public static final int DOM_VK_F = 70;
+
+ public static final int DOM_VK_G = 71;
+
+ public static final int DOM_VK_H = 72;
+
+ public static final int DOM_VK_I = 73;
+
+ public static final int DOM_VK_J = 74;
+
+ public static final int DOM_VK_K = 75;
+
+ public static final int DOM_VK_L = 76;
+
+ public static final int DOM_VK_M = 77;
+
+ public static final int DOM_VK_N = 78;
+
+ public static final int DOM_VK_O = 79;
+
+ public static final int DOM_VK_P = 80;
+
+ public static final int DOM_VK_Q = 81;
+
+ public static final int DOM_VK_R = 82;
+
+ public static final int DOM_VK_S = 83;
+
+ public static final int DOM_VK_T = 84;
+
+ public static final int DOM_VK_U = 85;
+
+ public static final int DOM_VK_V = 86;
+
+ public static final int DOM_VK_W = 87;
+
+ public static final int DOM_VK_X = 88;
+
+ public static final int DOM_VK_Y = 89;
+
+ public static final int DOM_VK_Z = 90;
+
+ public static final int DOM_VK_NUMPAD0 = 96;
+
+ public static final int DOM_VK_NUMPAD1 = 97;
+
+ public static final int DOM_VK_NUMPAD2 = 98;
+
+ public static final int DOM_VK_NUMPAD3 = 99;
+
+ public static final int DOM_VK_NUMPAD4 = 100;
+
+ public static final int DOM_VK_NUMPAD5 = 101;
+
+ public static final int DOM_VK_NUMPAD6 = 102;
+
+ public static final int DOM_VK_NUMPAD7 = 103;
+
+ public static final int DOM_VK_NUMPAD8 = 104;
+
+ public static final int DOM_VK_NUMPAD9 = 105;
+
+ public static final int DOM_VK_MULTIPLY = 106;
+
+ public static final int DOM_VK_ADD = 107;
+
+ public static final int DOM_VK_SEPARATOR = 108;
+
+ public static final int DOM_VK_SUBTRACT = 109;
+
+ public static final int DOM_VK_DECIMAL = 110;
+
+ public static final int DOM_VK_DIVIDE = 111;
+
+ public static final int DOM_VK_F1 = 112;
+
+ public static final int DOM_VK_F2 = 113;
+
+ public static final int DOM_VK_F3 = 114;
+
+ public static final int DOM_VK_F4 = 115;
+
+ public static final int DOM_VK_F5 = 116;
+
+ public static final int DOM_VK_F6 = 117;
+
+ public static final int DOM_VK_F7 = 118;
+
+ public static final int DOM_VK_F8 = 119;
+
+ public static final int DOM_VK_F9 = 120;
+
+ public static final int DOM_VK_F10 = 121;
+
+ public static final int DOM_VK_F11 = 122;
+
+ public static final int DOM_VK_F12 = 123;
+
+ public static final int DOM_VK_F13 = 124;
+
+ public static final int DOM_VK_F14 = 125;
+
+ public static final int DOM_VK_F15 = 126;
+
+ public static final int DOM_VK_F16 = 127;
+
+ public static final int DOM_VK_F17 = 128;
+
+ public static final int DOM_VK_F18 = 129;
+
+ public static final int DOM_VK_F19 = 130;
+
+ public static final int DOM_VK_F20 = 131;
+
+ public static final int DOM_VK_F21 = 132;
+
+ public static final int DOM_VK_F22 = 133;
+
+ public static final int DOM_VK_F23 = 134;
+
+ public static final int DOM_VK_F24 = 135;
+
+ public static final int DOM_VK_NUM_LOCK = 144;
+
+ public static final int DOM_VK_SCROLL_LOCK = 145;
+
+ public static final int DOM_VK_COMMA = 188;
+
+ public static final int DOM_VK_PERIOD = 190;
+
+ public static final int DOM_VK_SLASH = 191;
+
+ public static final int DOM_VK_BACK_QUOTE = 192;
+
+ public static final int DOM_VK_OPEN_BRACKET = 219;
+
+ public static final int DOM_VK_BACK_SLASH = 220;
+
+ public static final int DOM_VK_CLOSE_BRACKET = 221;
+
+ public static final int DOM_VK_QUOTE = 222;
+
+ public static final int DOM_VK_META = 224;
+
+ public int GetCharCode(int[] aCharCode) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 1, getAddress(), aCharCode);
+ }
+
+ public int GetKeyCode(int[] aKeyCode) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 2, getAddress(), aKeyCode);
+ }
+
+ public int GetAltKey(int[] aAltKey) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 3, getAddress(), aAltKey);
+ }
+
+ public int GetCtrlKey(int[] aCtrlKey) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 4, getAddress(), aCtrlKey);
+ }
+
+ public int GetShiftKey(int[] aShiftKey) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 5, getAddress(), aShiftKey);
+ }
+
+ public int GetMetaKey(int[] aMetaKey) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 6, getAddress(), aMetaKey);
+ }
+
+ public int InitKeyEvent(int /*long*/ typeArg, int canBubbleArg, int cancelableArg, int /*long*/ viewArg, int ctrlKeyArg, int altKeyArg, int shiftKeyArg, int metaKeyArg, int keyCodeArg, int charCodeArg) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 7, getAddress(), typeArg, canBubbleArg, cancelableArg, viewArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, keyCodeArg, charCodeArg);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java
new file mode 100644
index 0000000000..71b7a7347e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java
@@ -0,0 +1,87 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMMouseEvent extends nsIDOMUIEvent {
+
+ static final int LAST_METHOD_ID = nsIDOMUIEvent.LAST_METHOD_ID + 11;
+
+ public static final String NS_IDOMMOUSEEVENT_IID_STR =
+ "ff751edc-8b02-aae7-0010-8301838a3123";
+
+ public static final nsID NS_IDOMMOUSEEVENT_IID =
+ new nsID(NS_IDOMMOUSEEVENT_IID_STR);
+
+ public nsIDOMMouseEvent(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetScreenX(int[] aScreenX) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 1, getAddress(), aScreenX);
+ }
+
+ public int GetScreenY(int[] aScreenY) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 2, getAddress(), aScreenY);
+ }
+
+ public int GetClientX(int[] aClientX) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 3, getAddress(), aClientX);
+ }
+
+ public int GetClientY(int[] aClientY) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 4, getAddress(), aClientY);
+ }
+
+ public int GetCtrlKey(int[] aCtrlKey) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 5, getAddress(), aCtrlKey);
+ }
+
+ public int GetShiftKey(int[] aShiftKey) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 6, getAddress(), aShiftKey);
+ }
+
+ public int GetAltKey(int[] aAltKey) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 7, getAddress(), aAltKey);
+ }
+
+ public int GetMetaKey(int[] aMetaKey) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 8, getAddress(), aMetaKey);
+ }
+
+ public int GetButton(short[] aButton) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 9, getAddress(), aButton);
+ }
+
+ public int GetRelatedTarget(int /*long*/[] aRelatedTarget) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 10, getAddress(), aRelatedTarget);
+ }
+
+ public int InitMouseEvent(int /*long*/ typeArg, int canBubbleArg, int cancelableArg, int /*long*/ viewArg, int detailArg, int screenXArg, int screenYArg, int clientXArg, int clientYArg, int ctrlKeyArg, int altKeyArg, int shiftKeyArg, int metaKeyArg, short buttonArg, int /*long*/ relatedTargetArg) {
+ return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 11, getAddress(), typeArg, canBubbleArg, cancelableArg, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, buttonArg, relatedTargetArg);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java
new file mode 100644
index 0000000000..a44ec1ff2b
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java
@@ -0,0 +1,51 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMSerializer extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 2;
+
+ public static final String NS_IDOMSERIALIZER_IID_STR =
+ "a6cf9123-15b3-11d2-932e-00805f8add32";
+
+ public static final nsID NS_IDOMSERIALIZER_IID =
+ new nsID(NS_IDOMSERIALIZER_IID_STR);
+
+ public nsIDOMSerializer(int /*long*/ address) {
+ super(address);
+ }
+
+ public int SerializeToString(int /*long*/ root, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), root, _retval);
+ }
+
+ public int SerializeToStream(int /*long*/ root, int /*long*/ stream, byte[] charset) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), root, stream, charset);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java
new file mode 100644
index 0000000000..3a8ec8bb6c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java
@@ -0,0 +1,51 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMSerializer_1_7 extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 2;
+
+ public static final String NS_IDOMSERIALIZER_IID_STR =
+ "9fd4ba15-e67c-4c98-b52c-7715f62c9196";
+
+ public static final nsID NS_IDOMSERIALIZER_IID =
+ new nsID(NS_IDOMSERIALIZER_IID_STR);
+
+ public nsIDOMSerializer_1_7(int /*long*/ address) {
+ super(address);
+ }
+
+ public int SerializeToString(int /*long*/ root, int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), root, _retval);
+ }
+
+ public int SerializeToStream(int /*long*/ root, int /*long*/ stream, int /*long*/ charset) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), root, stream, charset);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java
new file mode 100644
index 0000000000..3a35f4b4da
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java
@@ -0,0 +1,55 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMUIEvent extends nsIDOMEvent {
+
+ static final int LAST_METHOD_ID = nsIDOMEvent.LAST_METHOD_ID + 3;
+
+ public static final String NS_IDOMUIEVENT_IID_STR =
+ "a6cf90c3-15b3-11d2-932e-00805f8add32";
+
+ public static final nsID NS_IDOMUIEVENT_IID =
+ new nsID(NS_IDOMUIEVENT_IID_STR);
+
+ public nsIDOMUIEvent(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetView(int /*long*/[] aView) {
+ return XPCOM.VtblCall(nsIDOMEvent.LAST_METHOD_ID + 1, getAddress(), aView);
+ }
+
+ public int GetDetail(int[] aDetail) {
+ return XPCOM.VtblCall(nsIDOMEvent.LAST_METHOD_ID + 2, getAddress(), aDetail);
+ }
+
+ public int InitUIEvent(int /*long*/ typeArg, int canBubbleArg, int cancelableArg, int /*long*/ viewArg, int detailArg) {
+ return XPCOM.VtblCall(nsIDOMEvent.LAST_METHOD_ID + 3, getAddress(), typeArg, canBubbleArg, cancelableArg, viewArg, detailArg);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMWindow.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMWindow.java
new file mode 100644
index 0000000000..514843aaae
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMWindow.java
@@ -0,0 +1,111 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMWindow extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 17;
+
+ public static final String NS_IDOMWINDOW_IID_STR =
+ "a6cf906b-15b3-11d2-932e-00805f8add32";
+
+ public static final nsID NS_IDOMWINDOW_IID =
+ new nsID(NS_IDOMWINDOW_IID_STR);
+
+ public nsIDOMWindow(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetDocument(int /*long*/[] aDocument) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aDocument);
+ }
+
+ public int GetParent(int /*long*/[] aParent) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aParent);
+ }
+
+ public int GetTop(int /*long*/[] aTop) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aTop);
+ }
+
+ public int GetScrollbars(int /*long*/[] aScrollbars) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aScrollbars);
+ }
+
+ public int GetFrames(int /*long*/[] aFrames) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aFrames);
+ }
+
+ public int GetName(int /*long*/ aName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aName);
+ }
+
+ public int SetName(int /*long*/ aName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aName);
+ }
+
+ public int GetTextZoom(float[] aTextZoom) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aTextZoom);
+ }
+
+ public int SetTextZoom(float aTextZoom) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aTextZoom);
+ }
+
+ public int GetScrollX(int[] aScrollX) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aScrollX);
+ }
+
+ public int GetScrollY(int[] aScrollY) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aScrollY);
+ }
+
+ public int ScrollTo(int xScroll, int yScroll) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), xScroll, yScroll);
+ }
+
+ public int ScrollBy(int xScrollDif, int yScrollDif) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), xScrollDif, yScrollDif);
+ }
+
+ public int GetSelection(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), _retval);
+ }
+
+ public int ScrollByLines(int numLines) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), numLines);
+ }
+
+ public int ScrollByPages(int numPages) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), numPages);
+ }
+
+ public int SizeToContent() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress());
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java
new file mode 100644
index 0000000000..663688ad78
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java
@@ -0,0 +1,55 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDOMWindowCollection extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 3;
+
+ public static final String NS_IDOMWINDOWCOLLECTION_IID_STR =
+ "a6cf906f-15b3-11d2-932e-00805f8add32";
+
+ public static final nsID NS_IDOMWINDOWCOLLECTION_IID =
+ new nsID(NS_IDOMWINDOWCOLLECTION_IID_STR);
+
+ public nsIDOMWindowCollection(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetLength(int[] aLength) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aLength);
+ }
+
+ public int Item(int index, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), index, _retval);
+ }
+
+ public int NamedItem(int /*long*/ name, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), name, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDataType.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDataType.java
new file mode 100644
index 0000000000..88e6093ef5
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDataType.java
@@ -0,0 +1,73 @@
+package org.eclipse.swt.internal.mozilla;
+
+
+public class nsIDataType extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 0;
+
+ public static final String NS_IDATATYPE_IID_STR =
+ "4d12e540-83d7-11d5-90ed-0010a4e73d9a";
+
+ public static final nsID NS_IDATATYPE_IID =
+ new nsID(NS_IDATATYPE_IID_STR);
+
+ public nsIDataType(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final short VTYPE_INT8 = 0;
+
+ public static final short VTYPE_INT16 = 1;
+
+ public static final short VTYPE_INT32 = 2;
+
+ public static final short VTYPE_INT64 = 3;
+
+ public static final short VTYPE_UINT8 = 4;
+
+ public static final short VTYPE_UINT16 = 5;
+
+ public static final short VTYPE_UINT32 = 6;
+
+ public static final short VTYPE_UINT64 = 7;
+
+ public static final short VTYPE_FLOAT = 8;
+
+ public static final short VTYPE_DOUBLE = 9;
+
+ public static final short VTYPE_BOOL = 10;
+
+ public static final short VTYPE_CHAR = 11;
+
+ public static final short VTYPE_WCHAR = 12;
+
+ public static final short VTYPE_VOID = 13;
+
+ public static final short VTYPE_ID = 14;
+
+ public static final short VTYPE_DOMSTRING = 15;
+
+ public static final short VTYPE_CHAR_STR = 16;
+
+ public static final short VTYPE_WCHAR_STR = 17;
+
+ public static final short VTYPE_INTERFACE = 18;
+
+ public static final short VTYPE_INTERFACE_IS = 19;
+
+ public static final short VTYPE_ARRAY = 20;
+
+ public static final short VTYPE_STRING_SIZE_IS = 21;
+
+ public static final short VTYPE_WSTRING_SIZE_IS = 22;
+
+ public static final short VTYPE_UTF8STRING = 23;
+
+ public static final short VTYPE_CSTRING = 24;
+
+ public static final short VTYPE_ASTRING = 25;
+
+ public static final short VTYPE_EMPTY_ARRAY = 254;
+
+ public static final short VTYPE_EMPTY = 255;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryService.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryService.java
new file mode 100644
index 0000000000..58aef5f984
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryService.java
@@ -0,0 +1,55 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDirectoryService extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 3;
+
+ public static final String NS_IDIRECTORYSERVICE_IID_STR =
+ "57a66a60-d43a-11d3-8cc2-00609792278c";
+
+ public static final nsID NS_IDIRECTORYSERVICE_IID =
+ new nsID(NS_IDIRECTORYSERVICE_IID_STR);
+
+ public nsIDirectoryService(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Init() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress());
+ }
+
+ public int RegisterProvider(int /*long*/ prov) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), prov);
+ }
+
+ public int UnregisterProvider(int /*long*/ prov) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), prov);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java
new file mode 100644
index 0000000000..8998396675
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDirectoryServiceProvider extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_IDIRECTORYSERVICEPROVIDER_IID_STR =
+ "bbf8cab0-d43a-11d3-8cc2-00609792278c";
+
+ public static final nsID NS_IDIRECTORYSERVICEPROVIDER_IID =
+ new nsID(NS_IDIRECTORYSERVICEPROVIDER_IID_STR);
+
+ public nsIDirectoryServiceProvider(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetFile(byte[] prop, int[] persistent, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), prop, persistent, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java
new file mode 100644
index 0000000000..a277b15875
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDirectoryServiceProvider2 extends nsIDirectoryServiceProvider {
+
+ static final int LAST_METHOD_ID = nsIDirectoryServiceProvider.LAST_METHOD_ID + 1;
+
+ public static final String NS_IDIRECTORYSERVICEPROVIDER2_IID_STRING =
+ "2f977d4b-5485-11d4-87e2-0010a4e75ef2";
+
+ public static final nsID NS_IDIRECTORYSERVICEPROVIDER2_IID =
+ new nsID(NS_IDIRECTORYSERVICEPROVIDER2_IID_STRING);
+
+ public nsIDirectoryServiceProvider2(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetFiles(byte[] prop, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIDirectoryServiceProvider.LAST_METHOD_ID + 1, getAddress(), prop, _retval);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDocShell.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDocShell.java
new file mode 100644
index 0000000000..bed487cdc4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDocShell.java
@@ -0,0 +1,269 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDocShell extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 51;
+
+ public static final String NS_IDOCSHELL_IID_STR =
+ "69e5de00-7b8b-11d3-af61-00a024ffc08c";
+
+ public static final nsID NS_IDOCSHELL_IID =
+ new nsID(NS_IDOCSHELL_IID_STR);
+
+ public nsIDocShell(int /*long*/ address) {
+ super(address);
+ }
+
+ public int LoadURI(int /*long*/ uri, int /*long*/ loadInfo, int aLoadFlags, int firstParty) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), uri, loadInfo, aLoadFlags, firstParty);
+ }
+
+ public int LoadStream(int /*long*/ aStream, int /*long*/ aURI, int /*long*/ aContentType, int /*long*/ aContentCharset, int /*long*/ aLoadInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aStream, aURI, aContentType, aContentCharset, aLoadInfo);
+ }
+
+ public int InternalLoad(int /*long*/ aURI, int /*long*/ aReferrer, int /*long*/ aOwner, int aInheritOwner, char[] aWindowTarget, int /*long*/ aPostDataStream, int /*long*/ aHeadersStream, int aLoadFlags, int /*long*/ aSHEntry, int firstParty, int /*long*/[] aDocShell, int /*long*/[] aRequest) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aURI, aReferrer, aOwner, aInheritOwner, aWindowTarget, aPostDataStream, aHeadersStream, aLoadFlags, aSHEntry, firstParty, aDocShell, aRequest);
+ }
+
+ public int CreateLoadInfo(int /*long*/[] loadInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), loadInfo);
+ }
+
+ public int PrepareForNewContentModel() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress());
+ }
+
+ public int SetCurrentURI(int /*long*/ aURI) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aURI);
+ }
+
+ public int FireUnloadNotification() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress());
+ }
+
+ public int GetPresContext(int /*long*/[] aPresContext) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aPresContext);
+ }
+
+ public int GetPresShell(int /*long*/[] aPresShell) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aPresShell);
+ }
+
+ public int GetEldestPresShell(int /*long*/[] aEldestPresShell) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aEldestPresShell);
+ }
+
+ public int GetContentViewer(int /*long*/[] aContentViewer) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aContentViewer);
+ }
+
+ public int GetChromeEventHandler(int /*long*/[] aChromeEventHandler) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aChromeEventHandler);
+ }
+
+ public int SetChromeEventHandler(int /*long*/ aChromeEventHandler) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aChromeEventHandler);
+ }
+
+ public int GetParentURIContentListener(int /*long*/[] aParentURIContentListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), aParentURIContentListener);
+ }
+
+ public int SetParentURIContentListener(int /*long*/ aParentURIContentListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), aParentURIContentListener);
+ }
+
+ public int GetDocumentCharsetInfo(int /*long*/[] aDocumentCharsetInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), aDocumentCharsetInfo);
+ }
+
+ public int SetDocumentCharsetInfo(int /*long*/ aDocumentCharsetInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aDocumentCharsetInfo);
+ }
+
+ public int GetAllowPlugins(int[] aAllowPlugins) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 18, getAddress(), aAllowPlugins);
+ }
+
+ public int SetAllowPlugins(int aAllowPlugins) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 19, getAddress(), aAllowPlugins);
+ }
+
+ public int GetAllowJavascript(int[] aAllowJavascript) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), aAllowJavascript);
+ }
+
+ public int SetAllowJavascript(int aAllowJavascript) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), aAllowJavascript);
+ }
+
+ public int GetAllowMetaRedirects(int[] aAllowMetaRedirects) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 22, getAddress(), aAllowMetaRedirects);
+ }
+
+ public int SetAllowMetaRedirects(int aAllowMetaRedirects) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), aAllowMetaRedirects);
+ }
+
+ public int GetAllowSubframes(int[] aAllowSubframes) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 24, getAddress(), aAllowSubframes);
+ }
+
+ public int SetAllowSubframes(int aAllowSubframes) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 25, getAddress(), aAllowSubframes);
+ }
+
+ public int GetAllowImages(int[] aAllowImages) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), aAllowImages);
+ }
+
+ public int SetAllowImages(int aAllowImages) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 27, getAddress(), aAllowImages);
+ }
+
+ public static final int ENUMERATE_FORWARDS = 0;
+
+ public static final int ENUMERATE_BACKWARDS = 1;
+
+ public int GetDocShellEnumerator(int aItemType, int aDirection, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 28, getAddress(), aItemType, aDirection, _retval);
+ }
+
+ public static final int APP_TYPE_UNKNOWN = 0;
+
+ public static final int APP_TYPE_MAIL = 1;
+
+ public int GetAppType(int[] aAppType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 29, getAddress(), aAppType);
+ }
+
+ public int SetAppType(int aAppType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 30, getAddress(), aAppType);
+ }
+
+ public int GetAllowAuth(int[] aAllowAuth) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 31, getAddress(), aAllowAuth);
+ }
+
+ public int SetAllowAuth(int aAllowAuth) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 32, getAddress(), aAllowAuth);
+ }
+
+ public int GetZoom(float[] aZoom) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 33, getAddress(), aZoom);
+ }
+
+ public int SetZoom(float aZoom) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 34, getAddress(), aZoom);
+ }
+
+ public int GetMarginWidth(int[] aMarginWidth) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 35, getAddress(), aMarginWidth);
+ }
+
+ public int SetMarginWidth(int aMarginWidth) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 36, getAddress(), aMarginWidth);
+ }
+
+ public int GetMarginHeight(int[] aMarginHeight) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 37, getAddress(), aMarginHeight);
+ }
+
+ public int SetMarginHeight(int aMarginHeight) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 38, getAddress(), aMarginHeight);
+ }
+
+ public int GetHasFocus(int[] aHasFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 39, getAddress(), aHasFocus);
+ }
+
+ public int SetHasFocus(int aHasFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 40, getAddress(), aHasFocus);
+ }
+
+ public int GetCanvasHasFocus(int[] aCanvasHasFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 41, getAddress(), aCanvasHasFocus);
+ }
+
+ public int SetCanvasHasFocus(int aCanvasHasFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 42, getAddress(), aCanvasHasFocus);
+ }
+
+ public int TabToTreeOwner(int forward, int[] tookFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 43, getAddress(), forward, tookFocus);
+ }
+
+ public static final int BUSY_FLAGS_NONE = 0;
+
+ public static final int BUSY_FLAGS_BUSY = 1;
+
+ public static final int BUSY_FLAGS_BEFORE_PAGE_LOAD = 2;
+
+ public static final int BUSY_FLAGS_PAGE_LOADING = 4;
+
+ public static final int LOAD_CMD_NORMAL = 1;
+
+ public static final int LOAD_CMD_RELOAD = 2;
+
+ public static final int LOAD_CMD_HISTORY = 4;
+
+ public int GetBusyFlags(int[] aBusyFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 44, getAddress(), aBusyFlags);
+ }
+
+ public int GetLoadType(int[] aLoadType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 45, getAddress(), aLoadType);
+ }
+
+ public int SetLoadType(int aLoadType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 46, getAddress(), aLoadType);
+ }
+
+ public int IsBeingDestroyed(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 47, getAddress(), _retval);
+ }
+
+ public int GetIsExecutingOnLoadHandler(int[] aIsExecutingOnLoadHandler) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 48, getAddress(), aIsExecutingOnLoadHandler);
+ }
+
+ public int GetLayoutHistoryState(int /*long*/[] aLayoutHistoryState) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 49, getAddress(), aLayoutHistoryState);
+ }
+
+ public int SetLayoutHistoryState(int /*long*/ aLayoutHistoryState) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 50, getAddress(), aLayoutHistoryState);
+ }
+
+ public int GetShouldSaveLayoutState(int[] aShouldSaveLayoutState) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 51, getAddress(), aShouldSaveLayoutState);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java
new file mode 100644
index 0000000000..526c7595e1
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java
@@ -0,0 +1,317 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDocShell_1_8 extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 61;
+
+ public static final String NS_IDOCSHELL_IID_STR =
+ "9f0c7461-b9a4-47f6-b88c-421dce1bce66";
+
+ public static final nsID NS_IDOCSHELL_IID =
+ new nsID(NS_IDOCSHELL_IID_STR);
+
+ public nsIDocShell_1_8(int /*long*/ address) {
+ super(address);
+ }
+
+ public int LoadURI(int /*long*/ uri, int /*long*/ loadInfo, int aLoadFlags, int firstParty) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), uri, loadInfo, aLoadFlags, firstParty);
+ }
+
+ public int LoadStream(int /*long*/ aStream, int /*long*/ aURI, int /*long*/ aContentType, int /*long*/ aContentCharset, int /*long*/ aLoadInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aStream, aURI, aContentType, aContentCharset, aLoadInfo);
+ }
+
+ public static final int INTERNAL_LOAD_FLAGS_NONE = 0;
+
+ public static final int INTERNAL_LOAD_FLAGS_INHERIT_OWNER = 1;
+
+ public static final int INTERNAL_LOAD_FLAGS_DONT_SEND_REFERRER = 2;
+
+ public int InternalLoad(int /*long*/ aURI, int /*long*/ aReferrer, int /*long*/ aOwner, int aFlags, char[] aWindowTarget, byte[] aTypeHint, int /*long*/ aPostDataStream, int /*long*/ aHeadersStream, int aLoadFlags, int /*long*/ aSHEntry, int firstParty, int /*long*/[] aDocShell, int /*long*/[] aRequest) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aURI, aReferrer, aOwner, aFlags, aWindowTarget, aTypeHint, aPostDataStream, aHeadersStream, aLoadFlags, aSHEntry, firstParty, aDocShell, aRequest);
+ }
+
+ public int CreateLoadInfo(int /*long*/[] loadInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), loadInfo);
+ }
+
+ public int PrepareForNewContentModel() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress());
+ }
+
+ public int SetCurrentURI(int /*long*/ aURI) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aURI);
+ }
+
+ public int FirePageHideNotification(int isUnload) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), isUnload);
+ }
+
+ public int GetPresContext(int /*long*/[] aPresContext) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aPresContext);
+ }
+
+ public int GetPresShell(int /*long*/[] aPresShell) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aPresShell);
+ }
+
+ public int GetEldestPresShell(int /*long*/[] aEldestPresShell) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aEldestPresShell);
+ }
+
+ public int GetContentViewer(int /*long*/[] aContentViewer) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aContentViewer);
+ }
+
+ public int GetChromeEventHandler(int /*long*/[] aChromeEventHandler) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aChromeEventHandler);
+ }
+
+ public int SetChromeEventHandler(int /*long*/ aChromeEventHandler) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aChromeEventHandler);
+ }
+
+ public int GetDocumentCharsetInfo(int /*long*/[] aDocumentCharsetInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), aDocumentCharsetInfo);
+ }
+
+ public int SetDocumentCharsetInfo(int /*long*/ aDocumentCharsetInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), aDocumentCharsetInfo);
+ }
+
+ public int GetAllowPlugins(int[] aAllowPlugins) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), aAllowPlugins);
+ }
+
+ public int SetAllowPlugins(int aAllowPlugins) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aAllowPlugins);
+ }
+
+ public int GetAllowJavascript(int[] aAllowJavascript) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 18, getAddress(), aAllowJavascript);
+ }
+
+ public int SetAllowJavascript(int aAllowJavascript) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 19, getAddress(), aAllowJavascript);
+ }
+
+ public int GetAllowMetaRedirects(int[] aAllowMetaRedirects) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), aAllowMetaRedirects);
+ }
+
+ public int SetAllowMetaRedirects(int aAllowMetaRedirects) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), aAllowMetaRedirects);
+ }
+
+ public int GetAllowSubframes(int[] aAllowSubframes) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 22, getAddress(), aAllowSubframes);
+ }
+
+ public int SetAllowSubframes(int aAllowSubframes) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), aAllowSubframes);
+ }
+
+ public int GetAllowImages(int[] aAllowImages) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 24, getAddress(), aAllowImages);
+ }
+
+ public int SetAllowImages(int aAllowImages) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 25, getAddress(), aAllowImages);
+ }
+
+ public static final int ENUMERATE_FORWARDS = 0;
+
+ public static final int ENUMERATE_BACKWARDS = 1;
+
+ public int GetDocShellEnumerator(int aItemType, int aDirection, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), aItemType, aDirection, _retval);
+ }
+
+ public static final int APP_TYPE_UNKNOWN = 0;
+
+ public static final int APP_TYPE_MAIL = 1;
+
+ public static final int APP_TYPE_EDITOR = 2;
+
+ public int GetAppType(int[] aAppType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 27, getAddress(), aAppType);
+ }
+
+ public int SetAppType(int aAppType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 28, getAddress(), aAppType);
+ }
+
+ public int GetAllowAuth(int[] aAllowAuth) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 29, getAddress(), aAllowAuth);
+ }
+
+ public int SetAllowAuth(int aAllowAuth) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 30, getAddress(), aAllowAuth);
+ }
+
+ public int GetZoom(float[] aZoom) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 31, getAddress(), aZoom);
+ }
+
+ public int SetZoom(float aZoom) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 32, getAddress(), aZoom);
+ }
+
+ public int GetMarginWidth(int[] aMarginWidth) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 33, getAddress(), aMarginWidth);
+ }
+
+ public int SetMarginWidth(int aMarginWidth) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 34, getAddress(), aMarginWidth);
+ }
+
+ public int GetMarginHeight(int[] aMarginHeight) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 35, getAddress(), aMarginHeight);
+ }
+
+ public int SetMarginHeight(int aMarginHeight) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 36, getAddress(), aMarginHeight);
+ }
+
+ public int GetHasFocus(int[] aHasFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 37, getAddress(), aHasFocus);
+ }
+
+ public int SetHasFocus(int aHasFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 38, getAddress(), aHasFocus);
+ }
+
+ public int GetCanvasHasFocus(int[] aCanvasHasFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 39, getAddress(), aCanvasHasFocus);
+ }
+
+ public int SetCanvasHasFocus(int aCanvasHasFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 40, getAddress(), aCanvasHasFocus);
+ }
+
+ public int TabToTreeOwner(int forward, int[] tookFocus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 41, getAddress(), forward, tookFocus);
+ }
+
+ public static final int BUSY_FLAGS_NONE = 0;
+
+ public static final int BUSY_FLAGS_BUSY = 1;
+
+ public static final int BUSY_FLAGS_BEFORE_PAGE_LOAD = 2;
+
+ public static final int BUSY_FLAGS_PAGE_LOADING = 4;
+
+ public static final int LOAD_CMD_NORMAL = 1;
+
+ public static final int LOAD_CMD_RELOAD = 2;
+
+ public static final int LOAD_CMD_HISTORY = 4;
+
+ public int GetBusyFlags(int[] aBusyFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 42, getAddress(), aBusyFlags);
+ }
+
+ public int GetLoadType(int[] aLoadType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 43, getAddress(), aLoadType);
+ }
+
+ public int SetLoadType(int aLoadType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 44, getAddress(), aLoadType);
+ }
+
+ public int IsBeingDestroyed(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 45, getAddress(), _retval);
+ }
+
+ public int GetIsExecutingOnLoadHandler(int[] aIsExecutingOnLoadHandler) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 46, getAddress(), aIsExecutingOnLoadHandler);
+ }
+
+ public int GetLayoutHistoryState(int /*long*/[] aLayoutHistoryState) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 47, getAddress(), aLayoutHistoryState);
+ }
+
+ public int SetLayoutHistoryState(int /*long*/ aLayoutHistoryState) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 48, getAddress(), aLayoutHistoryState);
+ }
+
+ public int GetShouldSaveLayoutState(int[] aShouldSaveLayoutState) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 49, getAddress(), aShouldSaveLayoutState);
+ }
+
+ public int GetSecurityUI(int /*long*/[] aSecurityUI) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 50, getAddress(), aSecurityUI);
+ }
+
+ public int SetSecurityUI(int /*long*/ aSecurityUI) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 51, getAddress(), aSecurityUI);
+ }
+
+ public int SuspendRefreshURIs() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 52, getAddress());
+ }
+
+ public int ResumeRefreshURIs() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 53, getAddress());
+ }
+
+ public int BeginRestore(int /*long*/ viewer, int top) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 54, getAddress(), viewer, top);
+ }
+
+ public int FinishRestore() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 55, getAddress());
+ }
+
+ public int GetRestoringDocument(int[] aRestoringDocument) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 56, getAddress(), aRestoringDocument);
+ }
+
+ public int GetUseErrorPages(int[] aUseErrorPages) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 57, getAddress(), aUseErrorPages);
+ }
+
+ public int SetUseErrorPages(int aUseErrorPages) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 58, getAddress(), aUseErrorPages);
+ }
+
+ public int GetPreviousTransIndex(int[] aPreviousTransIndex) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 59, getAddress(), aPreviousTransIndex);
+ }
+
+ public int GetLoadedTransIndex(int[] aLoadedTransIndex) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 60, getAddress(), aLoadedTransIndex);
+ }
+
+ public int HistoryPurged(int numEntries) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 61, getAddress(), numEntries);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDownload.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDownload.java
new file mode 100644
index 0000000000..365f51f0ee
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDownload.java
@@ -0,0 +1,95 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2004, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDownload extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 13;
+
+ public static final String NS_IDOWNLOAD_IID_STR =
+ "06cb92f2-1dd2-11b2-95f2-96dfdfb804a1";
+
+ public static final nsID NS_IDOWNLOAD_IID =
+ new nsID(NS_IDOWNLOAD_IID_STR);
+
+ public nsIDownload(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Init(int /*long*/ aSource, int /*long*/ aTarget, char[] aDisplayName, int /*long*/ aMIMEInfo, long startTime, int /*long*/ aPersist) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aSource, aTarget, aDisplayName, aMIMEInfo, startTime, aPersist);
+ }
+
+ public int GetSource(int /*long*/[] aSource) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aSource);
+ }
+
+ public int GetTarget(int /*long*/[] aTarget) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aTarget);
+ }
+
+ public int GetPersist(int /*long*/[] aPersist) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aPersist);
+ }
+
+ public int GetPercentComplete(int[] aPercentComplete) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aPercentComplete);
+ }
+
+ public int GetDisplayName(int /*long*/[] aDisplayName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aDisplayName);
+ }
+
+ public int SetDisplayName(char[] aDisplayName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aDisplayName);
+ }
+
+ public int GetStartTime(long[] aStartTime) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aStartTime);
+ }
+
+ public int GetMIMEInfo(int /*long*/[] aMIMEInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aMIMEInfo);
+ }
+
+ public int GetListener(int /*long*/[] aListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aListener);
+ }
+
+ public int SetListener(int /*long*/ aListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aListener);
+ }
+
+ public int GetObserver(int /*long*/[] aObserver) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aObserver);
+ }
+
+ public int SetObserver(int /*long*/ aObserver) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aObserver);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java
new file mode 100644
index 0000000000..aeeb02446e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java
@@ -0,0 +1,83 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIDownload_1_8 extends nsITransfer {
+
+ static final int LAST_METHOD_ID = nsITransfer.LAST_METHOD_ID + 10;
+
+ public static final String NS_IDOWNLOAD_IID_STR =
+ "9e1fd9f2-9727-4926-85cd-f16c375bba6d";
+
+ public static final nsID NS_IDOWNLOAD_IID =
+ new nsID(NS_IDOWNLOAD_IID_STR);
+
+ public nsIDownload_1_8(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetTargetFile(int /*long*/[] aTargetFile) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 1, getAddress(), aTargetFile);
+ }
+
+ public int GetPercentComplete(int[] aPercentComplete) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 2, getAddress(), aPercentComplete);
+ }
+
+ public int GetAmountTransferred(int /*long*/ aAmountTransferred) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 3, getAddress(), aAmountTransferred);
+ }
+
+ public int GetSize(int /*long*/ aSize) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 4, getAddress(), aSize);
+ }
+
+ public int GetSource(int /*long*/[] aSource) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 5, getAddress(), aSource);
+ }
+
+ public int GetTarget(int /*long*/[] aTarget) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 6, getAddress(), aTarget);
+ }
+
+ public int GetCancelable(int /*long*/[] aCancelable) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 7, getAddress(), aCancelable);
+ }
+
+ public int GetDisplayName(int /*long*/[] aDisplayName) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 8, getAddress(), aDisplayName);
+ }
+
+ public int GetStartTime(long[] aStartTime) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 9, getAddress(), aStartTime);
+ }
+
+ public int GetMIMEInfo(int /*long*/[] aMIMEInfo) {
+ return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 10, getAddress(), aMIMEInfo);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java
new file mode 100644
index 0000000000..3bb3009d49
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java
@@ -0,0 +1,81 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIEmbeddingSiteWindow extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 8;
+
+ public static final String NS_IEMBEDDINGSITEWINDOW_IID_STR =
+ "3e5432cd-9568-4bd1-8cbe-d50aba110743";
+
+ public static final nsID NS_IEMBEDDINGSITEWINDOW_IID =
+ new nsID(NS_IEMBEDDINGSITEWINDOW_IID_STR);
+
+ public nsIEmbeddingSiteWindow(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int DIM_FLAGS_POSITION = 1;
+
+ public static final int DIM_FLAGS_SIZE_INNER = 2;
+
+ public static final int DIM_FLAGS_SIZE_OUTER = 4;
+
+ public int SetDimensions(int flags, int x, int y, int cx, int cy) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), flags, x, y, cx, cy);
+ }
+
+ public int GetDimensions(int flags, int[] x, int[] y, int[] cx, int[] cy) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), flags, x, y, cx, cy);
+ }
+
+ public int SetFocus() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
+ }
+
+ public int GetVisibility(int[] aVisibility) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aVisibility);
+ }
+
+ public int SetVisibility(int aVisibility) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aVisibility);
+ }
+
+ public int GetTitle(int /*long*/[] aTitle) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aTitle);
+ }
+
+ public int SetTitle(char[] aTitle) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aTitle);
+ }
+
+ public int GetSiteWindow(int /*long*/[] aSiteWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aSiteWindow);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFactory.java
new file mode 100644
index 0000000000..cd83018e5d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFactory.java
@@ -0,0 +1,51 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIFactory extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 2;
+
+ public static final String NS_IFACTORY_IID_STR =
+ "00000001-0000-0000-c000-000000000046";
+
+ public static final nsID NS_IFACTORY_IID =
+ new nsID(NS_IFACTORY_IID_STR);
+
+ public nsIFactory(int /*long*/ address) {
+ super(address);
+ }
+
+ public int CreateInstance(int /*long*/ aOuter, nsID iid, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aOuter, iid, result);
+ }
+
+ public int LockFactory(int lock) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), lock);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFile.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFile.java
new file mode 100644
index 0000000000..e5d51b0923
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFile.java
@@ -0,0 +1,227 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIFile extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 45;
+
+ public static final String NS_IFILE_IID_STR =
+ "c8c0a080-0868-11d3-915f-d9d889d48e3c";
+
+ public static final nsID NS_IFILE_IID =
+ new nsID(NS_IFILE_IID_STR);
+
+ public nsIFile(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int NORMAL_FILE_TYPE = 0;
+
+ public static final int DIRECTORY_TYPE = 1;
+
+ public int Append(int /*long*/ node) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), node);
+ }
+
+ public int AppendNative(int /*long*/ node) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), node);
+ }
+
+ public int Normalize() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
+ }
+
+ public int Create(int type, int permissions) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), type, permissions);
+ }
+
+ public int GetLeafName(int /*long*/ aLeafName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aLeafName);
+ }
+
+ public int SetLeafName(int /*long*/ aLeafName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aLeafName);
+ }
+
+ public int GetNativeLeafName(int /*long*/ aNativeLeafName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aNativeLeafName);
+ }
+
+ public int SetNativeLeafName(int /*long*/ aNativeLeafName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aNativeLeafName);
+ }
+
+ public int CopyTo(int /*long*/ newParentDir, int /*long*/ newName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), newParentDir, newName);
+ }
+
+ public int CopyToNative(int /*long*/ newParentDir, int /*long*/ newName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), newParentDir, newName);
+ }
+
+ public int CopyToFollowingLinks(int /*long*/ newParentDir, int /*long*/ newName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), newParentDir, newName);
+ }
+
+ public int CopyToFollowingLinksNative(int /*long*/ newParentDir, int /*long*/ newName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), newParentDir, newName);
+ }
+
+ public int MoveTo(int /*long*/ newParentDir, int /*long*/ newName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), newParentDir, newName);
+ }
+
+ public int MoveToNative(int /*long*/ newParentDir, int /*long*/ newName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), newParentDir, newName);
+ }
+
+ public int Remove(int recursive) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), recursive);
+ }
+
+ public int GetPermissions(int[] aPermissions) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), aPermissions);
+ }
+
+ public int SetPermissions(int aPermissions) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aPermissions);
+ }
+
+ public int GetPermissionsOfLink(int[] aPermissionsOfLink) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 18, getAddress(), aPermissionsOfLink);
+ }
+
+ public int SetPermissionsOfLink(int aPermissionsOfLink) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 19, getAddress(), aPermissionsOfLink);
+ }
+
+ public int GetLastModifiedTime(long[] aLastModifiedTime) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), aLastModifiedTime);
+ }
+
+ public int SetLastModifiedTime(long aLastModifiedTime) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), aLastModifiedTime);
+ }
+
+ public int GetLastModifiedTimeOfLink(long[] aLastModifiedTimeOfLink) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 22, getAddress(), aLastModifiedTimeOfLink);
+ }
+
+ public int SetLastModifiedTimeOfLink(long aLastModifiedTimeOfLink) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), aLastModifiedTimeOfLink);
+ }
+
+ public int GetFileSize(long[] aFileSize) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 24, getAddress(), aFileSize);
+ }
+
+ public int SetFileSize(long aFileSize) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 25, getAddress(), aFileSize);
+ }
+
+ public int GetFileSizeOfLink(long[] aFileSizeOfLink) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), aFileSizeOfLink);
+ }
+
+ public int GetTarget(int /*long*/ aTarget) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 27, getAddress(), aTarget);
+ }
+
+ public int GetNativeTarget(int /*long*/ aNativeTarget) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 28, getAddress(), aNativeTarget);
+ }
+
+ public int GetPath(int /*long*/ aPath) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 29, getAddress(), aPath);
+ }
+
+ public int GetNativePath(int /*long*/ aNativePath) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 30, getAddress(), aNativePath);
+ }
+
+ public int Exists(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 31, getAddress(), _retval);
+ }
+
+ public int IsWritable(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 32, getAddress(), _retval);
+ }
+
+ public int IsReadable(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 33, getAddress(), _retval);
+ }
+
+ public int IsExecutable(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 34, getAddress(), _retval);
+ }
+
+ public int IsHidden(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 35, getAddress(), _retval);
+ }
+
+ public int IsDirectory(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 36, getAddress(), _retval);
+ }
+
+ public int IsFile(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 37, getAddress(), _retval);
+ }
+
+ public int IsSymlink(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 38, getAddress(), _retval);
+ }
+
+ public int IsSpecial(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 39, getAddress(), _retval);
+ }
+
+ public int CreateUnique(int type, int permissions) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 40, getAddress(), type, permissions);
+ }
+
+ public int Clone(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 41, getAddress(), _retval);
+ }
+
+ public int Equals(int /*long*/ inFile, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 42, getAddress(), inFile, _retval);
+ }
+
+ public int Contains(int /*long*/ inFile, int recur, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 43, getAddress(), inFile, recur, _retval);
+ }
+
+ public int GetParent(int /*long*/[] aParent) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 44, getAddress(), aParent);
+ }
+
+ public int GetDirectoryEntries(int /*long*/[] aDirectoryEntries) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 45, getAddress(), aDirectoryEntries);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFilePicker.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFilePicker.java
new file mode 100644
index 0000000000..916f834f99
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFilePicker.java
@@ -0,0 +1,118 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIFilePicker extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 15;
+
+ public static final String NS_IFILEPICKER_IID_STR =
+ "c47de916-1dd1-11b2-8141-82507fa02b21";
+
+ public static final nsID NS_IFILEPICKER_IID =
+ new nsID(NS_IFILEPICKER_IID_STR);
+
+ public nsIFilePicker(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int modeOpen = 0;
+ public static final int modeSave = 1;
+ public static final int modeGetFolder = 2;
+ public static final int modeOpenMultiple = 3;
+ public static final int returnOK = 0;
+ public static final int returnCancel = 1;
+ public static final int returnReplace = 2;
+ public static final int filterAll = 1;
+ public static final int filterHTML = 2;
+ public static final int filterText = 4;
+ public static final int filterImages = 8;
+ public static final int filterXML = 16;
+ public static final int filterXUL = 32;
+ public static final int filterApps = 64;
+
+ public int Init(int /*long*/ parent, char[] title, int mode) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), parent, title, mode);
+ }
+
+ public int AppendFilters(int filterMask) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), filterMask);
+ }
+
+ public int AppendFilter(char[] title, char[] filter) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), title, filter);
+ }
+
+ public int GetDefaultString(int /*long*/[] aDefaultString) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aDefaultString);
+ }
+
+ public int SetDefaultString(char[] aDefaultString) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aDefaultString);
+ }
+
+ public int GetDefaultExtension(int /*long*/[] aDefaultExtension) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aDefaultExtension);
+ }
+
+ public int SetDefaultExtension(char[] aDefaultExtension) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aDefaultExtension);
+ }
+
+ public int GetFilterIndex(int[] aFilterIndex) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aFilterIndex);
+ }
+
+ public int SetFilterIndex(int aFilterIndex) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aFilterIndex);
+ }
+
+ public int GetDisplayDirectory(int /*long*/[] aDisplayDirectory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aDisplayDirectory);
+ }
+
+ public int SetDisplayDirectory(int /*long*/ aDisplayDirectory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aDisplayDirectory);
+ }
+
+ public int GetFile(int /*long*/[] aFile) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aFile);
+ }
+
+ public int GetFileURL(int /*long*/[] aFileURL) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aFileURL);
+ }
+
+ public int GetFiles(int /*long*/[] aFiles) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), aFiles);
+ }
+
+ public int Show(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java
new file mode 100644
index 0000000000..22b0ed3d9a
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java
@@ -0,0 +1,118 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIFilePicker_1_8 extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 15;
+
+ public static final String NS_IFILEPICKER_IID_STR =
+ "80faf095-c807-4558-a2cc-185ed70754ea";
+
+ public static final nsID NS_IFILEPICKER_IID =
+ new nsID(NS_IFILEPICKER_IID_STR);
+
+ public nsIFilePicker_1_8(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int modeOpen = 0;
+ public static final int modeSave = 1;
+ public static final int modeGetFolder = 2;
+ public static final int modeOpenMultiple = 3;
+ public static final int returnOK = 0;
+ public static final int returnCancel = 1;
+ public static final int returnReplace = 2;
+ public static final int filterAll = 1;
+ public static final int filterHTML = 2;
+ public static final int filterText = 4;
+ public static final int filterImages = 8;
+ public static final int filterXML = 16;
+ public static final int filterXUL = 32;
+ public static final int filterApps = 64;
+
+ public int Init(int /*long*/ parent, int /*long*/ title, int mode) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), parent, title, mode);
+ }
+
+ public int AppendFilters(int filterMask) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), filterMask);
+ }
+
+ public int AppendFilter(int /*long*/ title, int /*long*/ filter) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), title, filter);
+ }
+
+ public int GetDefaultString(int /*long*/ aDefaultString) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aDefaultString);
+ }
+
+ public int SetDefaultString(int /*long*/ aDefaultString) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aDefaultString);
+ }
+
+ public int GetDefaultExtension(int /*long*/ aDefaultExtension) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aDefaultExtension);
+ }
+
+ public int SetDefaultExtension(int /*long*/ aDefaultExtension) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aDefaultExtension);
+ }
+
+ public int GetFilterIndex(int[] aFilterIndex) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aFilterIndex);
+ }
+
+ public int SetFilterIndex(int aFilterIndex) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aFilterIndex);
+ }
+
+ public int GetDisplayDirectory(int /*long*/[] aDisplayDirectory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aDisplayDirectory);
+ }
+
+ public int SetDisplayDirectory(int /*long*/ aDisplayDirectory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aDisplayDirectory);
+ }
+
+ public int GetFile(int /*long*/[] aFile) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aFile);
+ }
+
+ public int GetFileURL(int /*long*/[] aFileURL) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aFileURL);
+ }
+
+ public int GetFiles(int /*long*/[] aFiles) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), aFiles);
+ }
+
+ public int Show(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java
new file mode 100644
index 0000000000..c003eb68b8
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java
@@ -0,0 +1,79 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIHelperAppLauncher extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 9;
+
+ public static final String NS_IHELPERAPPLAUNCHER_IID_STR =
+ "9503d0fe-4c9d-11d4-98d0-001083010e9b";
+
+ public static final nsID NS_IHELPERAPPLAUNCHER_IID =
+ new nsID(NS_IHELPERAPPLAUNCHER_IID_STR);
+
+ public nsIHelperAppLauncher(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetMIMEInfo(int /*long*/[] aMIMEInfo) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aMIMEInfo);
+ }
+
+ public int GetSource(int /*long*/[] aSource) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aSource);
+ }
+
+ public int GetSuggestedFileName(int /*long*/[] aSuggestedFileName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aSuggestedFileName);
+ }
+
+ public int SaveToDisk(int /*long*/ aNewFileLocation, int aRememberThisPreference) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aNewFileLocation, aRememberThisPreference);
+ }
+
+ public int LaunchWithApplication(int /*long*/ aApplication, int aRememberThisPreference) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aApplication, aRememberThisPreference);
+ }
+
+ public int Cancel() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress());
+ }
+
+ public int SetWebProgressListener(int /*long*/ aWebProgressListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aWebProgressListener);
+ }
+
+ public int CloseProgressWindow() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress());
+ }
+
+ public int GetDownloadInfo(int /*long*/[] aSourceUrl, long[] aTimeDownloadStarted, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aSourceUrl, aTimeDownloadStarted, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java
new file mode 100644
index 0000000000..10ca834a67
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java
@@ -0,0 +1,55 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2004, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIHelperAppLauncherDialog extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 3;
+
+ public static final String NS_IHELPERAPPLAUNCHERDIALOG_IID_STR =
+ "d7ebddf0-4c84-11d4-807a-00600811a9c3";
+
+ public static final nsID NS_IHELPERAPPLAUNCHERDIALOG_IID =
+ new nsID(NS_IHELPERAPPLAUNCHERDIALOG_IID_STR);
+
+ public nsIHelperAppLauncherDialog(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Show(int /*long*/ aLauncher, int /*long*/ aContext) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aLauncher, aContext);
+ }
+
+ public int PromptForSaveToFile(int /*long*/ aWindowContext, char[] aDefaultFile, char[] aSuggestedFileExtension, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aWindowContext, aDefaultFile, aSuggestedFileExtension, _retval);
+ }
+
+ public int ShowProgressDialog(int /*long*/ aLauncher, int /*long*/ aContext) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aLauncher, aContext);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java
new file mode 100644
index 0000000000..c97f263869
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java
@@ -0,0 +1,57 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIHelperAppLauncherDialog_1_9 extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 2;
+
+ public static final String NS_IHELPERAPPLAUNCHERDIALOG_IID_STR =
+ "f3704fdc-8ae6-4eba-a3c3-f02958ac0649";
+
+ public static final nsID NS_IHELPERAPPLAUNCHERDIALOG_IID =
+ new nsID(NS_IHELPERAPPLAUNCHERDIALOG_IID_STR);
+
+ public nsIHelperAppLauncherDialog_1_9(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int REASON_CANTHANDLE = 0;
+
+ public static final int REASON_SERVERREQUEST = 1;
+
+ public static final int REASON_TYPESNIFFED = 2;
+
+ public int Show(int /*long*/ aLauncher, int /*long*/ aWindowContext, int aReason) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aLauncher, aWindowContext, aReason);
+ }
+
+ public int PromptForSaveToFile(int /*long*/ aLauncher, int /*long*/ aWindowContext, char[] aDefaultFileName, char[] aSuggestedFileExtension, int aForcePrompt, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aLauncher, aWindowContext, aDefaultFileName, aSuggestedFileExtension, aForcePrompt, _retval);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java
new file mode 100644
index 0000000000..1aca93b2f5
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java
@@ -0,0 +1,79 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIHelperAppLauncher_1_8 extends nsICancelable {
+
+ static final int LAST_METHOD_ID = nsICancelable.LAST_METHOD_ID + 9;
+
+ public static final String NS_IHELPERAPPLAUNCHER_IID_STR =
+ "99a0882d-2ff9-4659-9952-9ac531ba5592";
+
+ public static final nsID NS_IHELPERAPPLAUNCHER_IID =
+ new nsID(NS_IHELPERAPPLAUNCHER_IID_STR);
+
+ public nsIHelperAppLauncher_1_8(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetMIMEInfo(int /*long*/[] aMIMEInfo) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 1, getAddress(), aMIMEInfo);
+ }
+
+ public int GetSource(int /*long*/[] aSource) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 2, getAddress(), aSource);
+ }
+
+ public int GetSuggestedFileName(int /*long*/ aSuggestedFileName) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 3, getAddress(), aSuggestedFileName);
+ }
+
+ public int SaveToDisk(int /*long*/ aNewFileLocation, int aRememberThisPreference) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 4, getAddress(), aNewFileLocation, aRememberThisPreference);
+ }
+
+ public int LaunchWithApplication(int /*long*/ aApplication, int aRememberThisPreference) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 5, getAddress(), aApplication, aRememberThisPreference);
+ }
+
+ public int SetWebProgressListener(int /*long*/ aWebProgressListener) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 6, getAddress(), aWebProgressListener);
+ }
+
+ public int CloseProgressWindow() {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 7, getAddress());
+ }
+
+ public int GetTargetFile(int /*long*/[] aTargetFile) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 8, getAddress(), aTargetFile);
+ }
+
+ public int GetTimeDownloadStarted(int /*long*/ aTimeDownloadStarted) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 9, getAddress(), aTimeDownloadStarted);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java
new file mode 100644
index 0000000000..d277e754a0
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java
@@ -0,0 +1,83 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIHelperAppLauncher_1_9 extends nsICancelable {
+
+ static final int LAST_METHOD_ID = nsICancelable.LAST_METHOD_ID + 10;
+
+ public static final String NS_IHELPERAPPLAUNCHER_IID_STR =
+ "cc75c21a-0a79-4f68-90e1-563253d0c555";
+
+ public static final nsID NS_IHELPERAPPLAUNCHER_IID =
+ new nsID(NS_IHELPERAPPLAUNCHER_IID_STR);
+
+ public nsIHelperAppLauncher_1_9(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetMIMEInfo(int /*long*/[] aMIMEInfo) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 1, getAddress(), aMIMEInfo);
+ }
+
+ public int GetSource(int /*long*/[] aSource) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 2, getAddress(), aSource);
+ }
+
+ public int GetSuggestedFileName(int /*long*/ aSuggestedFileName) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 3, getAddress(), aSuggestedFileName);
+ }
+
+ public int SaveToDisk(int /*long*/ aNewFileLocation, int aRememberThisPreference) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 4, getAddress(), aNewFileLocation, aRememberThisPreference);
+ }
+
+ public int LaunchWithApplication(int /*long*/ aApplication, int aRememberThisPreference) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 5, getAddress(), aApplication, aRememberThisPreference);
+ }
+
+ public int SetWebProgressListener(int /*long*/ aWebProgressListener) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 6, getAddress(), aWebProgressListener);
+ }
+
+ public int CloseProgressWindow() {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 7, getAddress());
+ }
+
+ public int GetTargetFile(int /*long*/[] aTargetFile) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 8, getAddress(), aTargetFile);
+ }
+
+ public int GetTargetFileIsExecutable(int[] aTargetFileIsExecutable) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 9, getAddress(), aTargetFileIsExecutable);
+ }
+
+ public int GetTimeDownloadStarted(int /*long*/ aTimeDownloadStarted) {
+ return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 10, getAddress(), aTimeDownloadStarted);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIIOService.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIIOService.java
new file mode 100644
index 0000000000..a4b52e16f7
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIIOService.java
@@ -0,0 +1,83 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIIOService extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 10;
+
+ public static final String NS_IIOSERVICE_IID_STR =
+ "bddeda3f-9020-4d12-8c70-984ee9f7935e";
+
+ public static final nsID NS_IIOSERVICE_IID =
+ new nsID(NS_IIOSERVICE_IID_STR);
+
+ public nsIIOService(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetProtocolHandler(byte[] aScheme, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aScheme, _retval);
+ }
+
+ public int GetProtocolFlags(byte[] aScheme, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aScheme, _retval);
+ }
+
+ public int NewURI(int /*long*/ aSpec, byte[] aOriginCharset, int /*long*/ aBaseURI, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aSpec, aOriginCharset, aBaseURI, _retval);
+ }
+
+ public int NewFileURI(int /*long*/ aFile, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aFile, _retval);
+ }
+
+ public int NewChannelFromURI(int /*long*/ aURI, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aURI, _retval);
+ }
+
+ public int NewChannel(int /*long*/ aSpec, byte[] aOriginCharset, int /*long*/ aBaseURI, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aSpec, aOriginCharset, aBaseURI, _retval);
+ }
+
+ public int GetOffline(int[] aOffline) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aOffline);
+ }
+
+ public int SetOffline(int aOffline) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aOffline);
+ }
+
+ public int AllowPort(int aPort, byte[] aScheme, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aPort, aScheme, _retval);
+ }
+
+ public int ExtractScheme(int /*long*/ urlString, int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), urlString, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIInputStream.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIInputStream.java
new file mode 100644
index 0000000000..62959ad4cc
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIInputStream.java
@@ -0,0 +1,63 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIInputStream extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 5;
+
+ public static final String NS_IINPUTSTREAM_IID_STR =
+ "fa9c7f6c-61b3-11d4-9877-00c04fa0cf4a";
+
+ public static final nsID NS_IINPUTSTREAM_IID =
+ new nsID(NS_IINPUTSTREAM_IID_STR);
+
+ public nsIInputStream(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Close() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress());
+ }
+
+ public int Available(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), _retval);
+ }
+
+ public int Read(byte[] aBuf, int aCount, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aBuf, aCount, _retval);
+ }
+
+ public int ReadSegments(int /*long*/ aWriter, int /*long*/ aClosure, int aCount, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aWriter, aClosure, aCount, _retval);
+ }
+
+ public int IsNonBlocking(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java
new file mode 100644
index 0000000000..16af6e29dc
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIInterfaceRequestor extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_IINTERFACEREQUESTOR_IID_STR =
+ "033a1470-8b2a-11d3-af88-00a024ffc08c";
+
+ public static final nsID NS_IINTERFACEREQUESTOR_IID =
+ new nsID(NS_IINTERFACEREQUESTOR_IID_STR);
+
+ public nsIInterfaceRequestor(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetInterface(nsID uuid, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), uuid, result);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIJSContextStack.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIJSContextStack.java
new file mode 100644
index 0000000000..5dbedbe533
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIJSContextStack.java
@@ -0,0 +1,59 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIJSContextStack extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_IJSCONTEXTSTACK_IID_STR =
+ "c67d8270-3189-11d3-9885-006008962422";
+
+ public static final nsID NS_IJSCONTEXTSTACK_IID =
+ new nsID(NS_IJSCONTEXTSTACK_IID_STR);
+
+ public nsIJSContextStack(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetCount(int[] aCount) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aCount);
+ }
+
+ public int Peek(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), _retval);
+ }
+
+ public int Pop(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), _retval);
+ }
+
+ public int Push(int /*long*/ cx) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), cx);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsILocalFile.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsILocalFile.java
new file mode 100644
index 0000000000..772bec8096
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsILocalFile.java
@@ -0,0 +1,111 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsILocalFile extends nsIFile {
+
+ static final int LAST_METHOD_ID = nsIFile.LAST_METHOD_ID + 17;
+
+ public static final String NS_ILOCALFILE_IID_STR =
+ "aa610f20-a889-11d3-8c81-000064657374";
+
+ public static final nsID NS_ILOCALFILE_IID =
+ new nsID(NS_ILOCALFILE_IID_STR);
+
+ public nsILocalFile(int /*long*/ address) {
+ super(address);
+ }
+
+ public int InitWithPath(int /*long*/ filePath) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 1, getAddress(), filePath);
+ }
+
+ public int InitWithNativePath(int /*long*/ filePath) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 2, getAddress(), filePath);
+ }
+
+ public int InitWithFile(int /*long*/ aFile) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 3, getAddress(), aFile);
+ }
+
+ public int GetFollowLinks(int[] aFollowLinks) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 4, getAddress(), aFollowLinks);
+ }
+
+ public int SetFollowLinks(int aFollowLinks) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 5, getAddress(), aFollowLinks);
+ }
+
+ public int OpenNSPRFileDesc(int flags, int mode, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 6, getAddress(), flags, mode, _retval);
+ }
+
+ public int OpenANSIFileDesc(byte[] mode, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 7, getAddress(), mode, _retval);
+ }
+
+ public int Load(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 8, getAddress(), _retval);
+ }
+
+ public int GetDiskSpaceAvailable(long[] aDiskSpaceAvailable) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 9, getAddress(), aDiskSpaceAvailable);
+ }
+
+ public int AppendRelativePath(int /*long*/ relativeFilePath) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 10, getAddress(), relativeFilePath);
+ }
+
+ public int AppendRelativeNativePath(int /*long*/ relativeFilePath) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 11, getAddress(), relativeFilePath);
+ }
+
+ public int GetPersistentDescriptor(int /*long*/ aPersistentDescriptor) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 12, getAddress(), aPersistentDescriptor);
+ }
+
+ public int SetPersistentDescriptor(int /*long*/ aPersistentDescriptor) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 13, getAddress(), aPersistentDescriptor);
+ }
+
+ public int Reveal() {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 14, getAddress());
+ }
+
+ public int Launch() {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 15, getAddress());
+ }
+
+ public int GetRelativeDescriptor(int /*long*/ fromFile, int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 16, getAddress(), fromFile, _retval);
+ }
+
+ public int SetRelativeDescriptor(int /*long*/ fromFile, int /*long*/ relativeDesc) {
+ return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 17, getAddress(), fromFile, relativeDesc);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIMemory.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIMemory.java
new file mode 100644
index 0000000000..641777edbd
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIMemory.java
@@ -0,0 +1,63 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIMemory extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 5;
+
+ public static final String NS_IMEMORY_IID_STR =
+ "59e7e77a-38e4-11d4-8cf5-0060b0fc14a3";
+
+ public static final nsID NS_IMEMORY_IID =
+ new nsID(NS_IMEMORY_IID_STR);
+
+ public nsIMemory(int /*long*/ address) {
+ super(address);
+ }
+
+ public int /*long*/ Alloc(int size) {
+ return XPCOM.nsIMemory_Alloc(getAddress(), size);
+ }
+
+ public int /*long*/ Realloc(int /*long*/ ptr, int newSize) {
+ return XPCOM.nsIMemory_Realloc(getAddress(), ptr, newSize);
+ }
+
+ public int Free(int /*long*/ ptr) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), ptr);
+ }
+
+ public int HeapMinimize(int immediate) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), immediate);
+ }
+
+ public int IsLowMemory(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIObserverService.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIObserverService.java
new file mode 100644
index 0000000000..5b3775d472
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIObserverService.java
@@ -0,0 +1,59 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIObserverService extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_IOBSERVERSERVICE_IID_STR =
+ "d07f5192-e3d1-11d2-8acd-00105a1b8860";
+
+ public static final nsID NS_IOBSERVERSERVICE_IID =
+ new nsID(NS_IOBSERVERSERVICE_IID_STR);
+
+ public nsIObserverService(int /*long*/ address) {
+ super(address);
+ }
+
+ public int AddObserver(int /*long*/ anObserver, byte[] aTopic, int ownsWeak) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), anObserver, aTopic, ownsWeak);
+ }
+
+ public int RemoveObserver(int /*long*/ anObserver, byte[] aTopic) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), anObserver, aTopic);
+ }
+
+ public int NotifyObservers(int /*long*/ aSubject, byte[] aTopic, char[] someData) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aSubject, aTopic, someData);
+ }
+
+ public int EnumerateObservers(byte[] aTopic, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aTopic, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefBranch.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefBranch.java
new file mode 100755
index 0000000000..63ed2a3d1d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefBranch.java
@@ -0,0 +1,123 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIPrefBranch extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 18;
+
+ public static final String NS_IPREFBRANCH_IID_STR =
+ "56c35506-f14b-11d3-99d3-ddbfac2ccf65";
+
+ public static final nsID NS_IPREFBRANCH_IID =
+ new nsID(NS_IPREFBRANCH_IID_STR);
+
+ public nsIPrefBranch(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int PREF_INVALID = 0;
+
+ public static final int PREF_STRING = 32;
+
+ public static final int PREF_INT = 64;
+
+ public static final int PREF_BOOL = 128;
+
+ public int GetRoot(int /*long*/[] aRoot) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aRoot);
+ }
+
+ public int GetPrefType(byte[] aPrefName, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aPrefName, _retval);
+ }
+
+ public int GetBoolPref(byte[] aPrefName, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aPrefName, _retval);
+ }
+
+ public int SetBoolPref(byte[] aPrefName, int aValue) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aPrefName, aValue);
+ }
+
+ public int GetCharPref(byte[] aPrefName, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aPrefName, _retval);
+ }
+
+ public int SetCharPref(byte[] aPrefName, byte[] aValue) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aPrefName, aValue);
+ }
+
+ public int GetIntPref(byte[] aPrefName, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aPrefName, _retval);
+ }
+
+ public int SetIntPref(byte[] aPrefName, int aValue) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aPrefName, aValue);
+ }
+
+ public int GetComplexValue(byte[] aPrefName, nsID aType, int /*long*/[] aValue) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aPrefName, aType, aValue);
+ }
+
+ public int SetComplexValue(byte[] aPrefName, nsID aType, int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aPrefName, aType, aValue);
+ }
+
+ public int ClearUserPref(byte[] aPrefName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aPrefName);
+ }
+
+ public int LockPref(byte[] aPrefName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aPrefName);
+ }
+
+ public int PrefHasUserValue(byte[] aPrefName, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aPrefName, _retval);
+ }
+
+ public int PrefIsLocked(byte[] aPrefName, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), aPrefName, _retval);
+ }
+
+ public int UnlockPref(byte[] aPrefName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), aPrefName);
+ }
+
+ public int DeleteBranch(byte[] aStartingAt) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), aStartingAt);
+ }
+
+ public int GetChildList(byte[] aStartingAt, int[] aCount, int /*long*/[] aChildArray) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aStartingAt, aCount, aChildArray);
+ }
+
+ public int ResetBranch(byte[] aStartingAt) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 18, getAddress(), aStartingAt);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java
new file mode 100755
index 0000000000..ba0c32ac15
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java
@@ -0,0 +1,59 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2006 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIPrefLocalizedString extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_IPREFLOCALIZEDSTRING_IID_STR =
+ "ae419e24-1dd1-11b2-b39a-d3e5e7073802";
+
+ public static final nsID NS_IPREFLOCALIZEDSTRING_IID =
+ new nsID(NS_IPREFLOCALIZEDSTRING_IID_STR);
+
+ public nsIPrefLocalizedString(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetData(int /*long*/[] aData) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aData);
+ }
+
+ public int SetData(char[] aData) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aData);
+ }
+
+ public int ToString(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), _retval);
+ }
+
+ public int SetDataWithLength(int length, char[] data) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), length, data);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefService.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefService.java
new file mode 100755
index 0000000000..b3fc9fbc75
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrefService.java
@@ -0,0 +1,67 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2006 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIPrefService extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 6;
+
+ public static final String NS_IPREFSERVICE_IID_STR =
+ "decb9cc7-c08f-4ea5-be91-a8fc637ce2d2";
+
+ public static final nsID NS_IPREFSERVICE_IID =
+ new nsID(NS_IPREFSERVICE_IID_STR);
+
+ public nsIPrefService(int /*long*/ address) {
+ super(address);
+ }
+
+ public int ReadUserPrefs(int /*long*/ aFile) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aFile);
+ }
+
+ public int ResetPrefs() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress());
+ }
+
+ public int ResetUserPrefs() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
+ }
+
+ public int SavePrefFile(int /*long*/ aFile) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aFile);
+ }
+
+ public int GetBranch(byte[] aPrefRoot, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aPrefRoot, _retval);
+ }
+
+ public int GetDefaultBranch(byte[] aPrefRoot, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aPrefRoot, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrincipal.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrincipal.java
new file mode 100644
index 0000000000..d8c34191a1
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPrincipal.java
@@ -0,0 +1,143 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2009 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIPrincipal extends nsISerializable {
+
+ static final int LAST_METHOD_ID = nsISerializable.LAST_METHOD_ID + 23;
+
+ public static final String NS_IPRINCIPAL_IID_STR =
+ "b8268b9a-2403-44ed-81e3-614075c92034";
+
+ public static final nsID NS_IPRINCIPAL_IID =
+ new nsID(NS_IPRINCIPAL_IID_STR);
+
+ public nsIPrincipal(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int ENABLE_DENIED = 1;
+
+ public static final int ENABLE_UNKNOWN = 2;
+
+ public static final int ENABLE_WITH_USER_PERMISSION = 3;
+
+ public static final int ENABLE_GRANTED = 4;
+
+ public int GetPreferences(int /*long*/[] prefBranch, int /*long*/[] id, int /*long*/[] subjectName, int /*long*/[] grantedList, int /*long*/[] deniedList, int[] isTrusted) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 1, getAddress(), prefBranch, id, subjectName, grantedList, deniedList, isTrusted);
+ }
+
+ public int Equals(int /*long*/ other, int[] _retval) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 2, getAddress(), other, _retval);
+ }
+
+ public int GetHashValue(int[] aHashValue) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 3, getAddress(), aHashValue);
+ }
+
+ public int GetJSPrincipals(int /*long*/ cx, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 4, getAddress(), cx, _retval);
+ }
+
+ public int GetSecurityPolicy(int /*long*/[] aSecurityPolicy) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 5, getAddress(), aSecurityPolicy);
+ }
+
+ public int SetSecurityPolicy(int /*long*/ aSecurityPolicy) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 6, getAddress(), aSecurityPolicy);
+ }
+
+ public int CanEnableCapability(byte[] capability, int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 7, getAddress(), capability, _retval);
+ }
+
+ public int SetCanEnableCapability(byte[] capability, short canEnable) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 8, getAddress(), capability, canEnable);
+ }
+
+ public int IsCapabilityEnabled(byte[] capability, int /*long*/ annotation, int[] _retval) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 9, getAddress(), capability, annotation, _retval);
+ }
+
+ public int EnableCapability(byte[] capability, int /*long*/[] annotation) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 10, getAddress(), capability, annotation);
+ }
+
+ public int RevertCapability(byte[] capability, int /*long*/[] annotation) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 11, getAddress(), capability, annotation);
+ }
+
+ public int DisableCapability(byte[] capability, int /*long*/[] annotation) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 12, getAddress(), capability, annotation);
+ }
+
+ public int GetURI(int /*long*/[] aURI) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 13, getAddress(), aURI);
+ }
+
+ public int GetDomain(int /*long*/[] aDomain) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 14, getAddress(), aDomain);
+ }
+
+ public int SetDomain(int /*long*/ aDomain) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 15, getAddress(), aDomain);
+ }
+
+ public int GetOrigin(int /*long*/[] aOrigin) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 16, getAddress(), aOrigin);
+ }
+
+ public int GetHasCertificate(int[] aHasCertificate) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 17, getAddress(), aHasCertificate);
+ }
+
+ public int GetFingerprint(int /*long*/ aFingerprint) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 18, getAddress(), aFingerprint);
+ }
+
+ public int GetPrettyName(int /*long*/ aPrettyName) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 19, getAddress(), aPrettyName);
+ }
+
+ public int Subsumes(int /*long*/ other, int[] _retval) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 20, getAddress(), other, _retval);
+ }
+
+ public int CheckMayLoad(int /*long*/ uri, int report) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 21, getAddress(), uri, report);
+ }
+
+ public int GetSubjectName(int /*long*/ aSubjectName) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 22, getAddress(), aSubjectName);
+ }
+
+ public int GetCertificate(int /*long*/[] aCertificate) {
+ return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 23, getAddress(), aCertificate);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProgressDialog.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProgressDialog.java
new file mode 100644
index 0000000000..2cc99e4f7b
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProgressDialog.java
@@ -0,0 +1,63 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIProgressDialog extends nsIDownload {
+
+ static final int LAST_METHOD_ID = nsIDownload.LAST_METHOD_ID + 5;
+
+ public static final String NS_IPROGRESSDIALOG_IID_STR =
+ "88a478b3-af65-440a-94dc-ed9b154d2990";
+
+ public static final nsID NS_IPROGRESSDIALOG_IID =
+ new nsID(NS_IPROGRESSDIALOG_IID_STR);
+
+ public nsIProgressDialog(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Open(int /*long*/ aParent) {
+ return XPCOM.VtblCall(nsIDownload.LAST_METHOD_ID + 1, getAddress(), aParent);
+ }
+
+ public int GetCancelDownloadOnClose(int[] aCancelDownloadOnClose) {
+ return XPCOM.VtblCall(nsIDownload.LAST_METHOD_ID + 2, getAddress(), aCancelDownloadOnClose);
+ }
+
+ public int SetCancelDownloadOnClose(int aCancelDownloadOnClose) {
+ return XPCOM.VtblCall(nsIDownload.LAST_METHOD_ID + 3, getAddress(), aCancelDownloadOnClose);
+ }
+
+ public int GetDialog(int /*long*/[] aDialog) {
+ return XPCOM.VtblCall(nsIDownload.LAST_METHOD_ID + 4, getAddress(), aDialog);
+ }
+
+ public int SetDialog(int /*long*/ aDialog) {
+ return XPCOM.VtblCall(nsIDownload.LAST_METHOD_ID + 5, getAddress(), aDialog);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java
new file mode 100644
index 0000000000..13c38f71e1
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java
@@ -0,0 +1,71 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIProgressDialog_1_8 extends nsIDownload_1_8 {
+
+ static final int LAST_METHOD_ID = nsIDownload_1_8.LAST_METHOD_ID + 7;
+
+ public static final String NS_IPROGRESSDIALOG_IID_STR =
+ "20e790a2-76c6-462d-851a-22ab6cbbe48b";
+
+ public static final nsID NS_IPROGRESSDIALOG_IID =
+ new nsID(NS_IPROGRESSDIALOG_IID_STR);
+
+ public nsIProgressDialog_1_8(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Open(int /*long*/ aParent) {
+ return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 1, getAddress(), aParent);
+ }
+
+ public int GetCancelDownloadOnClose(int[] aCancelDownloadOnClose) {
+ return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 2, getAddress(), aCancelDownloadOnClose);
+ }
+
+ public int SetCancelDownloadOnClose(int aCancelDownloadOnClose) {
+ return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 3, getAddress(), aCancelDownloadOnClose);
+ }
+
+ public int GetObserver(int /*long*/[] aObserver) {
+ return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 4, getAddress(), aObserver);
+ }
+
+ public int SetObserver(int /*long*/ aObserver) {
+ return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 5, getAddress(), aObserver);
+ }
+
+ public int GetDialog(int /*long*/[] aDialog) {
+ return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 6, getAddress(), aDialog);
+ }
+
+ public int SetDialog(int /*long*/ aDialog) {
+ return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 7, getAddress(), aDialog);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPromptService.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPromptService.java
new file mode 100644
index 0000000000..92577e4f08
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPromptService.java
@@ -0,0 +1,113 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIPromptService extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 9;
+
+ public static final String NS_IPROMPTSERVICE_IID_STR =
+ "1630c61a-325e-49ca-8759-a31b16c47aa5";
+
+ public static final nsID NS_IPROMPTSERVICE_IID =
+ new nsID(NS_IPROMPTSERVICE_IID_STR);
+
+ public nsIPromptService(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Alert(int /*long*/ aParent, char[] aDialogTitle, char[] aText) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aParent, aDialogTitle, aText);
+ }
+
+ public int AlertCheck(int /*long*/ aParent, char[] aDialogTitle, char[] aText, char[] aCheckMsg, int[] aCheckState) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aParent, aDialogTitle, aText, aCheckMsg, aCheckState);
+ }
+
+ public int Confirm(int /*long*/ aParent, char[] aDialogTitle, char[] aText, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aParent, aDialogTitle, aText, _retval);
+ }
+
+ public int ConfirmCheck(int /*long*/ aParent, char[] aDialogTitle, char[] aText, char[] aCheckMsg, int[] aCheckState, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aParent, aDialogTitle, aText, aCheckMsg, aCheckState, _retval);
+ }
+
+ public static final int BUTTON_POS_0 = 1;
+
+ public static final int BUTTON_POS_1 = 256;
+
+ public static final int BUTTON_POS_2 = 65536;
+
+ public static final int BUTTON_TITLE_OK = 1;
+
+ public static final int BUTTON_TITLE_CANCEL = 2;
+
+ public static final int BUTTON_TITLE_YES = 3;
+
+ public static final int BUTTON_TITLE_NO = 4;
+
+ public static final int BUTTON_TITLE_SAVE = 5;
+
+ public static final int BUTTON_TITLE_DONT_SAVE = 6;
+
+ public static final int BUTTON_TITLE_REVERT = 7;
+
+ public static final int BUTTON_TITLE_IS_STRING = 127;
+
+ public static final int BUTTON_POS_0_DEFAULT = 0;
+
+ public static final int BUTTON_POS_1_DEFAULT = 16777216;
+
+ public static final int BUTTON_POS_2_DEFAULT = 33554432;
+
+ public static final int BUTTON_DELAY_ENABLE = 67108864;
+
+ public static final int STD_OK_CANCEL_BUTTONS = 513;
+
+ public static final int STD_YES_NO_BUTTONS = 1027;
+
+ public int ConfirmEx(int /*long*/ aParent, char[] aDialogTitle, char[] aText, int aButtonFlags, char[] aButton0Title, char[] aButton1Title, char[] aButton2Title, char[] aCheckMsg, int[] aCheckState, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aParent, aDialogTitle, aText, aButtonFlags, aButton0Title, aButton1Title, aButton2Title, aCheckMsg, aCheckState, _retval);
+ }
+
+ public int Prompt(int /*long*/ aParent, char[] aDialogTitle, char[] aText, int /*long*/[] aValue, char[] aCheckMsg, int[] aCheckState, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aParent, aDialogTitle, aText, aValue, aCheckMsg, aCheckState, _retval);
+ }
+
+ public int PromptUsernameAndPassword(int /*long*/ aParent, char[] aDialogTitle, char[] aText, int /*long*/[] aUsername, int /*long*/[] aPassword, char[] aCheckMsg, int[] aCheckState, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aParent, aDialogTitle, aText, aUsername, aPassword, aCheckMsg, aCheckState, _retval);
+ }
+
+ public int PromptPassword(int /*long*/ aParent, char[] aDialogTitle, char[] aText, int /*long*/[] aPassword, char[] aCheckMsg, int[] aCheckState, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aParent, aDialogTitle, aText, aPassword, aCheckMsg, aCheckState, _retval);
+ }
+
+ public int Select(int /*long*/ aParent, char[] aDialogTitle, char[] aText, int aCount, int /*long*/[] aSelectList, int[] aOutSelection, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aParent, aDialogTitle, aText, aCount, aSelectList, aOutSelection, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPromptService2.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPromptService2.java
new file mode 100644
index 0000000000..fec6bc5897
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIPromptService2.java
@@ -0,0 +1,51 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIPromptService2 extends nsIPromptService {
+
+ static final int LAST_METHOD_ID = nsIPromptService.LAST_METHOD_ID + 2;
+
+ public static final String NS_IPROMPTSERVICE2_IID_STR =
+ "cf86d196-dbee-4482-9dfa-3477aa128319";
+
+ public static final nsID NS_IPROMPTSERVICE2_IID =
+ new nsID(NS_IPROMPTSERVICE2_IID_STR);
+
+ public nsIPromptService2(int /*long*/ address) {
+ super(address);
+ }
+
+ public int PromptAuth(int /*long*/ aParent, int /*long*/ aChannel, int level, int /*long*/ authInfo, char[] checkboxLabel, int[] checkValue, int[] _retval) {
+ return XPCOM.VtblCall(nsIPromptService.LAST_METHOD_ID + 1, getAddress(), aParent, aChannel, level, authInfo, checkboxLabel, checkValue, _retval);
+ }
+
+ public int AsyncPromptAuth(int /*long*/ aParent, int /*long*/ aChannel, int /*long*/ aCallback, int /*long*/ aContext, int level, int /*long*/ authInfo, char[] checkboxLabel, int[] checkValue, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIPromptService.LAST_METHOD_ID + 2, getAddress(), aParent, aChannel, aCallback, aContext, level, authInfo, checkboxLabel, checkValue, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProperties.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProperties.java
new file mode 100644
index 0000000000..6311098ca2
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIProperties.java
@@ -0,0 +1,63 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIProperties extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 5;
+
+ public static final String NS_IPROPERTIES_IID_STR =
+ "78650582-4e93-4b60-8e85-26ebd3eb14ca";
+
+ public static final nsID NS_IPROPERTIES_IID =
+ new nsID(NS_IPROPERTIES_IID_STR);
+
+ public nsIProperties(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Get(byte[] prop, nsID iid, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), prop, iid, result);
+ }
+
+ public int Set(byte[] prop, int /*long*/ value) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), prop, value);
+ }
+
+ public int Has(byte[] prop, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), prop, _retval);
+ }
+
+ public int Undefine(byte[] prop) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), prop);
+ }
+
+ public int GetKeys(int[] count, int /*long*/[] keys) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), count, keys);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIRequest.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIRequest.java
new file mode 100644
index 0000000000..909ad0de0c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIRequest.java
@@ -0,0 +1,101 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIRequest extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 10;
+
+ public static final String NS_IREQUEST_IID_STR =
+ "ef6bfbd2-fd46-48d8-96b7-9f8f0fd387fe";
+
+ public static final nsID NS_IREQUEST_IID =
+ new nsID(NS_IREQUEST_IID_STR);
+
+ public nsIRequest(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetName(int /*long*/ aName) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aName);
+ }
+
+ public int IsPending(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), _retval);
+ }
+
+ public int GetStatus(int /*long*/[] aStatus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aStatus);
+ }
+
+ public int Cancel(int aStatus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aStatus);
+ }
+
+ public int Suspend() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress());
+ }
+
+ public int Resume() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress());
+ }
+
+ public int GetLoadGroup(int /*long*/[] aLoadGroup) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aLoadGroup);
+ }
+
+ public int SetLoadGroup(int /*long*/ aLoadGroup) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aLoadGroup);
+ }
+
+ public int GetLoadFlags(int /*long*/[] aLoadFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aLoadFlags);
+ }
+
+ public int SetLoadFlags(int aLoadFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aLoadFlags);
+ }
+
+ public static final int LOAD_NORMAL = 0;
+
+ public static final int LOAD_BACKGROUND = 1;
+
+ public static final int INHIBIT_CACHING = 128;
+
+ public static final int INHIBIT_PERSISTENT_CACHING = 256;
+
+ public static final int LOAD_BYPASS_CACHE = 512;
+
+ public static final int LOAD_FROM_CACHE = 1024;
+
+ public static final int VALIDATE_ALWAYS = 2048;
+
+ public static final int VALIDATE_NEVER = 4096;
+
+ public static final int VALIDATE_ONCE_PER_SESSION = 8192;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java
new file mode 100644
index 0000000000..b2b7de895f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java
@@ -0,0 +1,159 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2009 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIScriptSecurityManager_1_9 extends nsIXPCSecurityManager {
+
+ static final int LAST_METHOD_ID = nsIXPCSecurityManager.LAST_METHOD_ID + 26;
+
+ public static final String NS_ISCRIPTSECURITYMANAGER_IID_STR =
+ "3fffd8e8-3fea-442e-a0ed-2ba81ae197d5";
+
+ public static final nsID NS_ISCRIPTSECURITYMANAGER_IID =
+ new nsID(NS_ISCRIPTSECURITYMANAGER_IID_STR);
+
+ public nsIScriptSecurityManager_1_9(int /*long*/ address) {
+ super(address);
+ }
+
+// public int CheckPropertyAccess(int /*long*/ aJSContext, int /*long*/ aJSObject, byte[] aClassName, !ERROR UNKNOWN C TYPE <jsval >! aProperty, int aAction) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 1, getAddress(), aJSContext, aJSObject, aClassName, aProperty, aAction);
+// }
+
+// public int CheckConnect(int /*long*/ aJSContext, int /*long*/ aTargetURI, byte[] aClassName, byte[] aProperty) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 2, getAddress(), aJSContext, aTargetURI, aClassName, aProperty);
+// }
+
+ public int CheckLoadURIFromScript(int /*long*/ cx, int /*long*/ uri) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 3, getAddress(), cx, uri);
+ }
+
+ public static final int STANDARD = 0;
+
+ public static final int LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT = 1;
+
+ public static final int ALLOW_CHROME = 2;
+
+ public static final int DISALLOW_INHERIT_PRINCIPAL = 4;
+
+ public static final int DISALLOW_SCRIPT_OR_DATA = 4;
+
+ public static final int DISALLOW_SCRIPT = 8;
+
+ public int CheckLoadURIWithPrincipal(int /*long*/ aPrincipal, int /*long*/ uri, int flags) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 4, getAddress(), aPrincipal, uri, flags);
+ }
+
+ public int CheckLoadURI(int /*long*/ from, int /*long*/ uri, int flags) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 5, getAddress(), from, uri, flags);
+ }
+
+ public int CheckLoadURIStrWithPrincipal(int /*long*/ aPrincipal, int /*long*/ uri, int flags) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 6, getAddress(), aPrincipal, uri, flags);
+ }
+
+ public int CheckLoadURIStr(int /*long*/ from, int /*long*/ uri, int flags) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 7, getAddress(), from, uri, flags);
+ }
+
+ public int CheckFunctionAccess(int /*long*/ cx, int /*long*/ funObj, int /*long*/ targetObj) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 8, getAddress(), cx, funObj, targetObj);
+ }
+
+ public int CanExecuteScripts(int /*long*/ cx, int /*long*/ principal, int[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 9, getAddress(), cx, principal, _retval);
+ }
+
+ public int GetSubjectPrincipal(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 10, getAddress(), _retval);
+ }
+
+ public int GetSystemPrincipal(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 11, getAddress(), _retval);
+ }
+
+// public int GetCertificatePrincipal(int /*long*/ aCertFingerprint, int /*long*/ aSubjectName, int /*long*/ aPrettyName, int /*long*/ aCert, int /*long*/ aURI, int /*long*/[] _retval) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 12, getAddress(), aCertFingerprint, aSubjectName, aPrettyName, aCert, aURI, _retval);
+// }
+
+ public int GetCodebasePrincipal(int /*long*/ aURI, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 13, getAddress(), aURI, _retval);
+ }
+
+// public int RequestCapability(int /*long*/ principal, byte[] capability, int /*long*/ _retval) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 14, getAddress(), principal, capability, _retval);
+// }
+
+ public int IsCapabilityEnabled(byte[] capability, int[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 15, getAddress(), capability, _retval);
+ }
+
+ public int EnableCapability(byte[] capability) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 16, getAddress(), capability);
+ }
+
+ public int RevertCapability(byte[] capability) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 17, getAddress(), capability);
+ }
+
+ public int DisableCapability(byte[] capability) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 18, getAddress(), capability);
+ }
+
+// public int SetCanEnableCapability(int /*long*/ certificateFingerprint, byte[] capability, !ERROR UNKNOWN C TYPE <PRInt16 >! canEnable) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 19, getAddress(), certificateFingerprint, capability, canEnable);
+// }
+
+ public int GetObjectPrincipal(int /*long*/ cx, int /*long*/ obj, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 20, getAddress(), cx, obj, _retval);
+ }
+
+ public int SubjectPrincipalIsSystem(int[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 21, getAddress(), _retval);
+ }
+
+ public int CheckSameOrigin(int /*long*/ aJSContext, int /*long*/ aTargetURI) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 22, getAddress(), aJSContext, aTargetURI);
+ }
+
+ public int CheckSameOriginURI(int /*long*/ aSourceURI, int /*long*/ aTargetURI, int reportError) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 23, getAddress(), aSourceURI, aTargetURI, reportError);
+ }
+
+ public int GetPrincipalFromContext(int /*long*/ cx, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 24, getAddress(), cx, _retval);
+ }
+
+ public int GetChannelPrincipal(int /*long*/ aChannel, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 25, getAddress(), aChannel, _retval);
+ }
+
+ public int IsSystemPrincipal(int /*long*/ aPrincipal, int[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 26, getAddress(), aPrincipal, _retval);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java
new file mode 100644
index 0000000000..25ae4813d6
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java
@@ -0,0 +1,159 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIScriptSecurityManager_1_9_1 extends nsIXPCSecurityManager {
+
+ static final int LAST_METHOD_ID = nsIXPCSecurityManager.LAST_METHOD_ID + 26;
+
+ public static final String NS_ISCRIPTSECURITYMANAGER_IID_STR =
+ "f8e350b9-9f31-451a-8c8f-d10fea26b780";
+
+ public static final nsID NS_ISCRIPTSECURITYMANAGER_IID =
+ new nsID(NS_ISCRIPTSECURITYMANAGER_IID_STR);
+
+ public nsIScriptSecurityManager_1_9_1(int /*long*/ address) {
+ super(address);
+ }
+
+// public int CheckPropertyAccess(int /*long*/ aJSContext, int /*long*/ aJSObject, byte[] aClassName, !ERROR UNKNOWN C TYPE <jsval >! aProperty, int aAction) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 1, getAddress(), aJSContext, aJSObject, aClassName, aProperty, aAction);
+// }
+
+ public int CheckConnect(int /*long*/ aJSContext, int /*long*/ aTargetURI, byte[] aClassName, byte[] aProperty) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 2, getAddress(), aJSContext, aTargetURI, aClassName, aProperty);
+ }
+
+ public int CheckLoadURIFromScript(int /*long*/ cx, int /*long*/ uri) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 3, getAddress(), cx, uri);
+ }
+
+ public static final int STANDARD = 0;
+
+ public static final int LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT = 1;
+
+ public static final int ALLOW_CHROME = 2;
+
+ public static final int DISALLOW_INHERIT_PRINCIPAL = 4;
+
+ public static final int DISALLOW_SCRIPT_OR_DATA = 4;
+
+ public static final int DISALLOW_SCRIPT = 8;
+
+ public int CheckLoadURIWithPrincipal(int /*long*/ aPrincipal, int /*long*/ uri, int flags) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 4, getAddress(), aPrincipal, uri, flags);
+ }
+
+ public int CheckLoadURI(int /*long*/ from, int /*long*/ uri, int flags) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 5, getAddress(), from, uri, flags);
+ }
+
+ public int CheckLoadURIStrWithPrincipal(int /*long*/ aPrincipal, int /*long*/ uri, int flags) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 6, getAddress(), aPrincipal, uri, flags);
+ }
+
+ public int CheckLoadURIStr(int /*long*/ from, int /*long*/ uri, int flags) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 7, getAddress(), from, uri, flags);
+ }
+
+ public int CheckFunctionAccess(int /*long*/ cx, int /*long*/ funObj, int /*long*/ targetObj) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 8, getAddress(), cx, funObj, targetObj);
+ }
+
+// public int CanExecuteScripts(int /*long*/ cx, int /*long*/ principal, int[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 9, getAddress(), cx, principal, _retval NS_OUTPARAM);
+// }
+
+// public int GetSubjectPrincipal(int /*long*/[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 10, getAddress(), _retval NS_OUTPARAM);
+// }
+
+ public int GetSystemPrincipal(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 11, getAddress(), _retval);
+ }
+
+// public int GetCertificatePrincipal(int /*long*/ aCertFingerprint, int /*long*/ aSubjectName, int /*long*/ aPrettyName, int /*long*/ aCert, int /*long*/ aURI, int /*long*/[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 12, getAddress(), aCertFingerprint, aSubjectName, aPrettyName, aCert, aURI, _retval NS_OUTPARAM);
+// }
+
+// public int GetCodebasePrincipal(int /*long*/ aURI, int /*long*/[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 13, getAddress(), aURI, _retval NS_OUTPARAM);
+// }
+
+// public int RequestCapability(int /*long*/ principal, byte[] capability, int /*long*/ _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 14, getAddress(), principal, capability, _retval NS_OUTPARAM);
+// }
+
+// public int IsCapabilityEnabled(byte[] capability, int[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 15, getAddress(), capability, _retval NS_OUTPARAM);
+// }
+
+ public int EnableCapability(byte[] capability) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 16, getAddress(), capability);
+ }
+
+ public int RevertCapability(byte[] capability) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 17, getAddress(), capability);
+ }
+
+ public int DisableCapability(byte[] capability) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 18, getAddress(), capability);
+ }
+
+// public int SetCanEnableCapability(int /*long*/ certificateFingerprint, byte[] capability, !ERROR UNKNOWN C TYPE <PRInt16 >! canEnable) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 19, getAddress(), certificateFingerprint, capability, canEnable);
+// }
+
+// public int GetObjectPrincipal(int /*long*/ cx, int /*long*/ obj, int /*long*/[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 20, getAddress(), cx, obj, _retval NS_OUTPARAM);
+// }
+
+// public int SubjectPrincipalIsSystem(int[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 21, getAddress(), _retval NS_OUTPARAM);
+// }
+
+ public int CheckSameOrigin(int /*long*/ aJSContext, int /*long*/ aTargetURI) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 22, getAddress(), aJSContext, aTargetURI);
+ }
+
+ public int CheckSameOriginURI(int /*long*/ aSourceURI, int /*long*/ aTargetURI, int reportError) {
+ return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 23, getAddress(), aSourceURI, aTargetURI, reportError);
+ }
+
+// public int GetPrincipalFromContext(int /*long*/ cx, int /*long*/[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 24, getAddress(), cx, _retval NS_OUTPARAM);
+// }
+
+// public int GetChannelPrincipal(int /*long*/ aChannel, int /*long*/[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 25, getAddress(), aChannel, _retval NS_OUTPARAM);
+// }
+
+// public int IsSystemPrincipal(int /*long*/ aPrincipal, int[] _retval NS_OUTPARAM) {
+// return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 26, getAddress(), aPrincipal, _retval NS_OUTPARAM);
+// }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java
new file mode 100644
index 0000000000..bc58ffae6d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java
@@ -0,0 +1,33 @@
+package org.eclipse.swt.internal.mozilla;
+
+
+public class nsISecurityCheckedComponent extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_ISECURITYCHECKEDCOMPONENT_IID_STR =
+ "0dad9e8c-a12d-4dcb-9a6f-7d09839356e1";
+
+ public static final nsID NS_ISECURITYCHECKEDCOMPONENT_IID =
+ new nsID(NS_ISECURITYCHECKEDCOMPONENT_IID_STR);
+
+ public nsISecurityCheckedComponent(int /*long*/ address) {
+ super(address);
+ }
+
+ public int CanCreateWrapper(int /*long*/ iid, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), iid, _retval);
+ }
+
+ public int CanCallMethod(int /*long*/ iid, char[] methodName, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), iid, methodName, _retval);
+ }
+
+ public int CanGetProperty(int /*long*/ iid, char[] propertyName, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), iid, propertyName, _retval);
+ }
+
+ public int CanSetProperty(int /*long*/ iid, char[] propertyName, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), iid, propertyName, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISerializable.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISerializable.java
new file mode 100644
index 0000000000..6e2fed1778
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISerializable.java
@@ -0,0 +1,51 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2009 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsISerializable extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 2;
+
+ public static final String NS_ISERIALIZABLE_IID_STR =
+ "91cca981-c26d-44a8-bebe-d9ed4891503a";
+
+ public static final nsID NS_ISERIALIZABLE_IID =
+ new nsID(NS_ISERIALIZABLE_IID_STR);
+
+ public nsISerializable(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Read(int /*long*/ aInputStream) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aInputStream);
+ }
+
+ public int Write(int /*long*/ aOutputStream) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aOutputStream);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIServiceManager.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIServiceManager.java
new file mode 100644
index 0000000000..2f46a6913f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIServiceManager.java
@@ -0,0 +1,59 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIServiceManager extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_ISERVICEMANAGER_IID_STR =
+ "8bb35ed9-e332-462d-9155-4a002ab5c958";
+
+ public static final nsID NS_ISERVICEMANAGER_IID =
+ new nsID(NS_ISERVICEMANAGER_IID_STR);
+
+ public nsIServiceManager(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetService(nsID aClass, nsID aIID, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aClass, aIID, result);
+ }
+
+ public int GetServiceByContractID(byte[] aContractID, nsID aIID, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aContractID, aIID, result);
+ }
+
+ public int IsServiceInstantiated(nsID aClass, nsID aIID, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aClass, aIID, _retval);
+ }
+
+ public int IsServiceInstantiatedByContractID(byte[] aContractID, nsID aIID, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aContractID, aIID, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java
new file mode 100644
index 0000000000..9f29e75265
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java
@@ -0,0 +1,51 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsISimpleEnumerator extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 2;
+
+ public static final String NS_ISIMPLEENUMERATOR_IID_STR =
+ "d1899240-f9d2-11d2-bdd6-000064657374";
+
+ public static final nsID NS_ISIMPLEENUMERATOR_IID =
+ new nsID(NS_ISIMPLEENUMERATOR_IID_STR);
+
+ public nsISimpleEnumerator(int /*long*/ address) {
+ super(address);
+ }
+
+ public int HasMoreElements(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), _retval);
+ }
+
+ public int GetNext(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISupports.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISupports.java
new file mode 100644
index 0000000000..e5d3d7cdf3
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISupports.java
@@ -0,0 +1,68 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsISupports {
+
+ static final boolean IsSolaris;
+ static {
+ String osName = System.getProperty ("os.name").toLowerCase (); //$NON-NLS-1$
+ IsSolaris = osName.startsWith ("sunos") || osName.startsWith("solaris"); //$NON-NLS-1$
+ }
+
+ static final int FIRST_METHOD_ID = IsSolaris ? 2 : 0;
+ static final int LAST_METHOD_ID = FIRST_METHOD_ID + 2;
+
+ public static final String NS_ISUPPORTS_IID_STR =
+ "00000000-0000-0000-c000-000000000046";
+
+ public static final nsID NS_ISUPPORTS_IID =
+ new nsID(NS_ISUPPORTS_IID_STR);
+
+ int /*long*/ address;
+
+ public nsISupports(int /*long*/ address) {
+ this.address = address;
+ }
+
+ public int /*long*/ getAddress() {
+ return this.address;
+ }
+
+ public int QueryInterface(nsID uuid, int /*long*/[] result) {
+ return XPCOM.VtblCall(FIRST_METHOD_ID, getAddress(), uuid, result);
+ }
+
+ public int AddRef() {
+ return XPCOM.VtblCall(FIRST_METHOD_ID + 1, getAddress());
+ }
+
+ public int Release() {
+ return XPCOM.VtblCall(FIRST_METHOD_ID + 2, getAddress());
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java
new file mode 100644
index 0000000000..3d346248de
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsISupportsWeakReference extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_ISUPPORTSWEAKREFERENCE_IID_STR =
+ "9188bc86-f92e-11d2-81ef-0060083a0bcf";
+
+ public static final nsID NS_ISUPPORTSWEAKREFERENCE_IID =
+ new nsID(NS_ISUPPORTSWEAKREFERENCE_IID_STR);
+
+ public nsISupportsWeakReference(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetWeakReference(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), _retval);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsITooltipListener.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsITooltipListener.java
new file mode 100644
index 0000000000..e0c58a3797
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsITooltipListener.java
@@ -0,0 +1,51 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2004, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsITooltipListener extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 2;
+
+ public static final String NS_ITOOLTIPLISTENER_IID_STR =
+ "44b78386-1dd2-11b2-9ad2-e4eee2ca1916";
+
+ public static final nsID NS_ITOOLTIPLISTENER_IID =
+ new nsID(NS_ITOOLTIPLISTENER_IID_STR);
+
+ public nsITooltipListener(int /*long*/ address) {
+ super(address);
+ }
+
+ public int OnShowTooltip(int aXCoords, int aYCoords, char[] aTipText) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aXCoords, aYCoords, aTipText);
+ }
+
+ public int OnHideTooltip() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress());
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsITransfer.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsITransfer.java
new file mode 100644
index 0000000000..c9f0ba686d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsITransfer.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsITransfer extends nsIWebProgressListener2 {
+
+ static final int LAST_METHOD_ID = nsIWebProgressListener2.LAST_METHOD_ID + 1;
+
+ public static final String NS_ITRANSFER_IID_STR =
+ "23c51569-e9a1-4a92-adeb-3723db82ef7c";
+
+ public static final nsID NS_ITRANSFER_IID =
+ new nsID(NS_ITRANSFER_IID_STR);
+
+ public nsITransfer(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Init(int /*long*/ aSource, int /*long*/ aTarget, int /*long*/ aDisplayName, int /*long*/ aMIMEInfo, long startTime, int /*long*/ aTempFile, int /*long*/ aCancelable) {
+ return XPCOM.VtblCall(nsIWebProgressListener2.LAST_METHOD_ID + 1, getAddress(), aSource, aTarget, aDisplayName, aMIMEInfo, startTime, aTempFile, aCancelable);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIURI.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIURI.java
new file mode 100644
index 0000000000..6c4bc12033
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIURI.java
@@ -0,0 +1,147 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIURI extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 26;
+
+ public static final String NS_IURI_IID_STR =
+ "07a22cc0-0ce5-11d3-9331-00104ba0fd40";
+
+ public static final nsID NS_IURI_IID =
+ new nsID(NS_IURI_IID_STR);
+
+ public nsIURI(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetSpec(int /*long*/ aSpec) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aSpec);
+ }
+
+ public int SetSpec(int /*long*/ aSpec) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aSpec);
+ }
+
+ public int GetPrePath(int /*long*/ aPrePath) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aPrePath);
+ }
+
+ public int GetScheme(int /*long*/ aScheme) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aScheme);
+ }
+
+ public int SetScheme(int /*long*/ aScheme) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aScheme);
+ }
+
+ public int GetUserPass(int /*long*/ aUserPass) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aUserPass);
+ }
+
+ public int SetUserPass(int /*long*/ aUserPass) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aUserPass);
+ }
+
+ public int GetUsername(int /*long*/ aUsername) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aUsername);
+ }
+
+ public int SetUsername(int /*long*/ aUsername) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aUsername);
+ }
+
+ public int GetPassword(int /*long*/ aPassword) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aPassword);
+ }
+
+ public int SetPassword(int /*long*/ aPassword) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aPassword);
+ }
+
+ public int GetHostPort(int /*long*/ aHostPort) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aHostPort);
+ }
+
+ public int SetHostPort(int /*long*/ aHostPort) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aHostPort);
+ }
+
+ public int GetHost(int /*long*/ aHost) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), aHost);
+ }
+
+ public int SetHost(int /*long*/ aHost) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), aHost);
+ }
+
+ public int GetPort(int[] aPort) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), aPort);
+ }
+
+ public int SetPort(int aPort) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aPort);
+ }
+
+ public int GetPath(int /*long*/ aPath) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 18, getAddress(), aPath);
+ }
+
+ public int SetPath(int /*long*/ aPath) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 19, getAddress(), aPath);
+ }
+
+ public int Equals(int /*long*/ other, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), other, _retval);
+ }
+
+ public int SchemeIs(byte[] scheme, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), scheme, _retval);
+ }
+
+ public int Clone(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 22, getAddress(), _retval);
+ }
+
+ public int Resolve(int /*long*/ relativePath, int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), relativePath, _retval);
+ }
+
+ public int GetAsciiSpec(int /*long*/ aAsciiSpec) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 24, getAddress(), aAsciiSpec);
+ }
+
+ public int GetAsciiHost(int /*long*/ aAsciiHost) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 25, getAddress(), aAsciiHost);
+ }
+
+ public int GetOriginCharset(int /*long*/ aOriginCharset) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), aOriginCharset);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIURIContentListener.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIURIContentListener.java
new file mode 100644
index 0000000000..aa6378e315
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIURIContentListener.java
@@ -0,0 +1,75 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIURIContentListener extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 8;
+
+ public static final String NS_IURICONTENTLISTENER_IID_STR =
+ "94928ab3-8b63-11d3-989d-001083010e9b";
+
+ public static final nsID NS_IURICONTENTLISTENER_IID =
+ new nsID(NS_IURICONTENTLISTENER_IID_STR);
+
+ public nsIURIContentListener(int /*long*/ address) {
+ super(address);
+ }
+
+ public int OnStartURIOpen(int /*long*/ aURI, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aURI, _retval);
+ }
+
+ public int DoContent(byte[] aContentType, int aIsContentPreferred, int /*long*/ aRequest, int /*long*/[] aContentHandler, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aContentType, aIsContentPreferred, aRequest, aContentHandler, _retval);
+ }
+
+ public int IsPreferred(byte[] aContentType, int /*long*/[] aDesiredContentType, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aContentType, aDesiredContentType, _retval);
+ }
+
+ public int CanHandleContent(byte[] aContentType, int aIsContentPreferred, int /*long*/[] aDesiredContentType, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aContentType, aIsContentPreferred, aDesiredContentType, _retval);
+ }
+
+ public int GetLoadCookie(int /*long*/[] aLoadCookie) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aLoadCookie);
+ }
+
+ public int SetLoadCookie(int /*long*/ aLoadCookie) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aLoadCookie);
+ }
+
+ public int GetParentContentListener(int /*long*/[] aParentContentListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aParentContentListener);
+ }
+
+ public int SetParentContentListener(int /*long*/ aParentContentListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aParentContentListener);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIVariant.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIVariant.java
new file mode 100644
index 0000000000..2de3baf3fc
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIVariant.java
@@ -0,0 +1,147 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIVariant extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 26;
+
+ public static final String NS_IVARIANT_IID_STR =
+ "6c9eb060-8c6a-11d5-90f3-0010a4e73d9a";
+
+ public static final nsID NS_IVARIANT_IID =
+ new nsID(NS_IVARIANT_IID_STR);
+
+ public nsIVariant(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetDataType(short[] aDataType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aDataType);
+ }
+
+ public int GetAsInt8(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), _retval);
+ }
+
+ public int GetAsInt16(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), _retval);
+ }
+
+ public int GetAsInt32(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), _retval);
+ }
+
+ public int GetAsInt64(long[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), _retval);
+ }
+
+ public int GetAsUint8(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), _retval);
+ }
+
+ public int GetAsUint16(short[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), _retval);
+ }
+
+ public int GetAsUint32(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), _retval);
+ }
+
+ public int GetAsUint64(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), _retval);
+ }
+
+ public int GetAsFloat(float[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), _retval);
+ }
+
+ public int GetAsDouble(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), _retval);
+ }
+
+ public int GetAsBool(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), _retval);
+ }
+
+ public int GetAsChar(byte[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), _retval);
+ }
+
+ public int GetAsWChar(char[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), _retval);
+ }
+
+ public int GetAsID(int /*long*/ retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), retval);
+ }
+
+ public int GetAsAString(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), _retval);
+ }
+
+ public int GetAsDOMString(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), _retval);
+ }
+
+ public int GetAsACString(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 18, getAddress(), _retval);
+ }
+
+ public int GetAsAUTF8String(int /*long*/ _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 19, getAddress(), _retval);
+ }
+
+ public int GetAsString(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), _retval);
+ }
+
+ public int GetAsWString(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), _retval);
+ }
+
+ public int GetAsISupports(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 22, getAddress(), _retval);
+ }
+
+ public int GetAsInterface(int /*long*/[] iid, int /*long*/[] iface) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), iid, iface);
+ }
+
+ public int GetAsArray(short[] type, int /*long*/ iid, int[] count, int /*long*/[] ptr) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 24, getAddress(), type, iid, count, ptr);
+ }
+
+ public int GetAsStringWithSize(int[] size, int /*long*/[] str) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 25, getAddress(), size, str);
+ }
+
+ public int GetAsWStringWithSize(int[] size, int /*long*/[] str) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), size, str);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWeakReference.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWeakReference.java
new file mode 100644
index 0000000000..faf448bd94
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWeakReference.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWeakReference extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_IWEAKREFERENCE_IID_STR =
+ "9188bc85-f92e-11d2-81ef-0060083a0bcf";
+
+ public static final nsID NS_IWEAKREFERENCE_IID =
+ new nsID(NS_IWEAKREFERENCE_IID_STR);
+
+ public nsIWeakReference(int /*long*/ address) {
+ super(address);
+ }
+
+ public int QueryReferent(nsID uuid, int /*long*/[] result) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), uuid, result);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowser.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowser.java
new file mode 100644
index 0000000000..22113bdafd
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowser.java
@@ -0,0 +1,71 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebBrowser extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 7;
+
+ public static final String NS_IWEBBROWSER_IID_STR =
+ "69e5df00-7b8b-11d3-af61-00a024ffc08c";
+
+ public static final nsID NS_IWEBBROWSER_IID =
+ new nsID(NS_IWEBBROWSER_IID_STR);
+
+ public nsIWebBrowser(int /*long*/ address) {
+ super(address);
+ }
+
+ public int AddWebBrowserListener(int /*long*/ aListener, nsID aIID) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aListener, aIID);
+ }
+
+ public int RemoveWebBrowserListener(int /*long*/ aListener, nsID aIID) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aListener, aIID);
+ }
+
+ public int GetContainerWindow(int /*long*/[] aContainerWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aContainerWindow);
+ }
+
+ public int SetContainerWindow(int /*long*/ aContainerWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aContainerWindow);
+ }
+
+ public int GetParentURIContentListener(int /*long*/[] aParentURIContentListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aParentURIContentListener);
+ }
+
+ public int SetParentURIContentListener(int /*long*/ aParentURIContentListener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aParentURIContentListener);
+ }
+
+ public int GetContentDOMWindow(int /*long*/[] aContentDOMWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aContentDOMWindow);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java
new file mode 100644
index 0000000000..823c4a62d0
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java
@@ -0,0 +1,137 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebBrowserChrome extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 10;
+
+ public static final String NS_IWEBBROWSERCHROME_IID_STR =
+ "ba434c60-9d52-11d3-afb0-00a024ffc08c";
+
+ public static final nsID NS_IWEBBROWSERCHROME_IID =
+ new nsID(NS_IWEBBROWSERCHROME_IID_STR);
+
+ public nsIWebBrowserChrome(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int STATUS_SCRIPT = 1;
+
+ public static final int STATUS_SCRIPT_DEFAULT = 2;
+
+ public static final int STATUS_LINK = 3;
+
+ public int SetStatus(int statusType, char[] status) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), statusType, status);
+ }
+
+ public int GetWebBrowser(int /*long*/[] aWebBrowser) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aWebBrowser);
+ }
+
+ public int SetWebBrowser(int /*long*/ aWebBrowser) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aWebBrowser);
+ }
+
+ public static final int CHROME_DEFAULT = 1;
+
+ public static final int CHROME_WINDOW_BORDERS = 2;
+
+ public static final int CHROME_WINDOW_CLOSE = 4;
+
+ public static final int CHROME_WINDOW_RESIZE = 8;
+
+ public static final int CHROME_MENUBAR = 16;
+
+ public static final int CHROME_TOOLBAR = 32;
+
+ public static final int CHROME_LOCATIONBAR = 64;
+
+ public static final int CHROME_STATUSBAR = 128;
+
+ public static final int CHROME_PERSONAL_TOOLBAR = 256;
+
+ public static final int CHROME_SCROLLBARS = 512;
+
+ public static final int CHROME_TITLEBAR = 1024;
+
+ public static final int CHROME_EXTRA = 2048;
+
+ public static final int CHROME_WITH_SIZE = 4096;
+
+ public static final int CHROME_WITH_POSITION = 8192;
+
+ public static final int CHROME_WINDOW_MIN = 16384;
+
+ public static final int CHROME_WINDOW_POPUP = 32768;
+
+ public static final int CHROME_WINDOW_RAISED = 33554432;
+
+ public static final int CHROME_WINDOW_LOWERED = 67108864;
+
+ public static final int CHROME_CENTER_SCREEN = 134217728;
+
+ public static final int CHROME_DEPENDENT = 268435456;
+
+ public static final int CHROME_MODAL = 536870912;
+
+ public static final int CHROME_OPENAS_DIALOG = 1073741824;
+
+ public static final int CHROME_OPENAS_CHROME = -2147483648;
+
+ public static final int CHROME_ALL = 4094;
+
+ public int GetChromeFlags(int[] aChromeFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aChromeFlags);
+ }
+
+ public int SetChromeFlags(int aChromeFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aChromeFlags);
+ }
+
+ public int DestroyBrowserWindow() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress());
+ }
+
+ public int SizeBrowserTo(int aCX, int aCY) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aCX, aCY);
+ }
+
+ public int ShowAsModal() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress());
+ }
+
+ public int IsWindowModal(int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), _retval);
+ }
+
+ public int ExitModalEventLoop(int aStatus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aStatus);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java
new file mode 100644
index 0000000000..6ad6792bf4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java
@@ -0,0 +1,51 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebBrowserChromeFocus extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 2;
+
+ public static final String NS_IWEBBROWSERCHROMEFOCUS_IID_STR =
+ "d2206418-1dd1-11b2-8e55-acddcd2bcfb8";
+
+ public static final nsID NS_IWEBBROWSERCHROMEFOCUS_IID =
+ new nsID(NS_IWEBBROWSERCHROMEFOCUS_IID_STR);
+
+ public nsIWebBrowserChromeFocus(int /*long*/ address) {
+ super(address);
+ }
+
+ public int FocusNextElement() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress());
+ }
+
+ public int FocusPrevElement() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress());
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java
new file mode 100644
index 0000000000..788f44ee6b
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java
@@ -0,0 +1,75 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebBrowserFocus extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 8;
+
+ public static final String NS_IWEBBROWSERFOCUS_IID_STR =
+ "9c5d3c58-1dd1-11b2-a1c9-f3699284657a";
+
+ public static final nsID NS_IWEBBROWSERFOCUS_IID =
+ new nsID(NS_IWEBBROWSERFOCUS_IID_STR);
+
+ public nsIWebBrowserFocus(int /*long*/ address) {
+ super(address);
+ }
+
+ public int Activate() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress());
+ }
+
+ public int Deactivate() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress());
+ }
+
+ public int SetFocusAtFirstElement() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
+ }
+
+ public int SetFocusAtLastElement() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress());
+ }
+
+ public int GetFocusedWindow(int /*long*/[] aFocusedWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aFocusedWindow);
+ }
+
+ public int SetFocusedWindow(int /*long*/ aFocusedWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aFocusedWindow);
+ }
+
+ public int GetFocusedElement(int /*long*/[] aFocusedElement) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aFocusedElement);
+ }
+
+ public int SetFocusedElement(int /*long*/ aFocusedElement) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aFocusedElement);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java
new file mode 100644
index 0000000000..6ea241f427
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java
@@ -0,0 +1,63 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebBrowserSetup extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_IWEBBROWSERSETUP_IID_STR =
+ "f15398a0-8018-11d3-af70-00a024ffc08c";
+
+ public static final nsID NS_IWEBBROWSERSETUP_IID =
+ new nsID(NS_IWEBBROWSERSETUP_IID_STR);
+
+ public nsIWebBrowserSetup(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int SETUP_ALLOW_PLUGINS = 1;
+
+ public static final int SETUP_ALLOW_JAVASCRIPT = 2;
+
+ public static final int SETUP_ALLOW_META_REDIRECTS = 3;
+
+ public static final int SETUP_ALLOW_SUBFRAMES = 4;
+
+ public static final int SETUP_ALLOW_IMAGES = 5;
+
+ public static final int SETUP_FOCUS_DOC_BEFORE_CONTENT = 6;
+
+ public static final int SETUP_USE_GLOBAL_HISTORY = 256;
+
+ public static final int SETUP_IS_CHROME_WRAPPER = 7;
+
+ public int SetProperty(int aId, int aValue) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aId, aValue);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java
new file mode 100644
index 0000000000..740ab4c595
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java
@@ -0,0 +1,55 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2009 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebBrowserStream extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 3;
+
+ public static final String NS_IWEBBROWSERSTREAM_IID_STR =
+ "86d02f0e-219b-4cfc-9c88-bd98d2cce0b8";
+
+ public static final nsID NS_IWEBBROWSERSTREAM_IID =
+ new nsID(NS_IWEBBROWSERSTREAM_IID_STR);
+
+ public nsIWebBrowserStream(int /*long*/ address) {
+ super(address);
+ }
+
+ public int OpenStream(int /*long*/ aBaseURI, int /*long*/ aContentType) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aBaseURI, aContentType);
+ }
+
+ public int AppendToStream(int /*long*/ aData, int aLen) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aData, aLen);
+ }
+
+ public int CloseStream() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebNavigation.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebNavigation.java
new file mode 100644
index 0000000000..24248d29eb
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebNavigation.java
@@ -0,0 +1,119 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebNavigation extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 13;
+
+ public static final String NS_IWEBNAVIGATION_IID_STR =
+ "f5d9e7b0-d930-11d3-b057-00a024ffc08c";
+
+ public static final nsID NS_IWEBNAVIGATION_IID =
+ new nsID(NS_IWEBNAVIGATION_IID_STR);
+
+ public nsIWebNavigation(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetCanGoBack(int[] aCanGoBack) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aCanGoBack);
+ }
+
+ public int GetCanGoForward(int[] aCanGoForward) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aCanGoForward);
+ }
+
+ public int GoBack() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
+ }
+
+ public int GoForward() {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress());
+ }
+
+ public int GotoIndex(int index) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), index);
+ }
+
+ public static final int LOAD_FLAGS_MASK = 65535;
+
+ public static final int LOAD_FLAGS_NONE = 0;
+
+ public static final int LOAD_FLAGS_IS_REFRESH = 16;
+
+ public static final int LOAD_FLAGS_IS_LINK = 32;
+
+ public static final int LOAD_FLAGS_BYPASS_HISTORY = 64;
+
+ public static final int LOAD_FLAGS_REPLACE_HISTORY = 128;
+
+ public static final int LOAD_FLAGS_BYPASS_CACHE = 256;
+
+ public static final int LOAD_FLAGS_BYPASS_PROXY = 512;
+
+ public static final int LOAD_FLAGS_CHARSET_CHANGE = 1024;
+
+ public int LoadURI(char[] uri, int loadFlags, int /*long*/ referrer, int /*long*/ postData, int /*long*/ headers) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), uri, loadFlags, referrer, postData, headers);
+ }
+
+ public int Reload(int reloadFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), reloadFlags);
+ }
+
+ public static final int STOP_NETWORK = 1;
+
+ public static final int STOP_CONTENT = 2;
+
+ public static final int STOP_ALL = 3;
+
+ public int Stop(int stopFlags) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), stopFlags);
+ }
+
+ public int GetDocument(int /*long*/[] aDocument) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aDocument);
+ }
+
+ public int GetCurrentURI(int /*long*/[] aCurrentURI) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aCurrentURI);
+ }
+
+ public int GetReferringURI(int /*long*/[] aReferringURI) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aReferringURI);
+ }
+
+ public int GetSessionHistory(int /*long*/[] aSessionHistory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aSessionHistory);
+ }
+
+ public int SetSessionHistory(int /*long*/ aSessionHistory) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aSessionHistory);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java
new file mode 100644
index 0000000000..e6817fab08
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java
@@ -0,0 +1,55 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebNavigationInfo extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_IWEBNAVIGATIONINFO_IID_STR =
+ "62a93afb-93a1-465c-84c8-0432264229de";
+
+ public static final nsID NS_IWEBNAVIGATIONINFO_IID =
+ new nsID(NS_IWEBNAVIGATIONINFO_IID_STR);
+
+ public nsIWebNavigationInfo(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int UNSUPPORTED = 0;
+
+ public static final int IMAGE = 1;
+
+ public static final int PLUGIN = 2;
+
+ public static final int OTHER = 32768;
+
+ public int IsTypeSupported(int /*long*/ aType, int /*long*/ aWebNav, int[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aType, aWebNav, _retval);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgress.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgress.java
new file mode 100644
index 0000000000..05fd3516b8
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgress.java
@@ -0,0 +1,79 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebProgress extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_IWEBPROGRESS_IID_STR =
+ "570f39d0-efd0-11d3-b093-00a024ffc08c";
+
+ public static final nsID NS_IWEBPROGRESS_IID =
+ new nsID(NS_IWEBPROGRESS_IID_STR);
+
+ public nsIWebProgress(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int NOTIFY_STATE_REQUEST = 1;
+
+ public static final int NOTIFY_STATE_DOCUMENT = 2;
+
+ public static final int NOTIFY_STATE_NETWORK = 4;
+
+ public static final int NOTIFY_STATE_WINDOW = 8;
+
+ public static final int NOTIFY_STATE_ALL = 15;
+
+ public static final int NOTIFY_PROGRESS = 16;
+
+ public static final int NOTIFY_STATUS = 32;
+
+ public static final int NOTIFY_SECURITY = 64;
+
+ public static final int NOTIFY_LOCATION = 128;
+
+ public static final int NOTIFY_ALL = 255;
+
+ public int AddProgressListener(int /*long*/ listener, int aNotifyMask) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), listener, aNotifyMask);
+ }
+
+ public int RemoveProgressListener(int /*long*/ listener) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), listener);
+ }
+
+ public int GetDOMWindow(int /*long*/[] aDOMWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aDOMWindow);
+ }
+
+ public int GetIsLoadingDocument(int[] aIsLoadingDocument) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aIsLoadingDocument);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java
new file mode 100644
index 0000000000..2704c1bfe0
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java
@@ -0,0 +1,93 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebProgressListener extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 5;
+
+ public static final String NS_IWEBPROGRESSLISTENER_IID_STR =
+ "570f39d1-efd0-11d3-b093-00a024ffc08c";
+
+ public static final nsID NS_IWEBPROGRESSLISTENER_IID =
+ new nsID(NS_IWEBPROGRESSLISTENER_IID_STR);
+
+ public nsIWebProgressListener(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int STATE_START = 1;
+
+ public static final int STATE_REDIRECTING = 2;
+
+ public static final int STATE_TRANSFERRING = 4;
+
+ public static final int STATE_NEGOTIATING = 8;
+
+ public static final int STATE_STOP = 16;
+
+ public static final int STATE_IS_REQUEST = 65536;
+
+ public static final int STATE_IS_DOCUMENT = 131072;
+
+ public static final int STATE_IS_NETWORK = 262144;
+
+ public static final int STATE_IS_WINDOW = 524288;
+
+ public static final int STATE_IS_INSECURE = 4;
+
+ public static final int STATE_IS_BROKEN = 1;
+
+ public static final int STATE_IS_SECURE = 2;
+
+ public static final int STATE_SECURE_HIGH = 262144;
+
+ public static final int STATE_SECURE_MED = 65536;
+
+ public static final int STATE_SECURE_LOW = 131072;
+
+ public int OnStateChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int aStateFlags, int aStatus) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aWebProgress, aRequest, aStateFlags, aStatus);
+ }
+
+ public int OnProgressChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int aCurSelfProgress, int aMaxSelfProgress, int aCurTotalProgress, int aMaxTotalProgress) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
+ }
+
+ public int OnLocationChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int /*long*/ location) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aWebProgress, aRequest, location);
+ }
+
+ public int OnStatusChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int aStatus, char[] aMessage) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aWebProgress, aRequest, aStatus, aMessage);
+ }
+
+ public int OnSecurityChange(int /*long*/ aWebProgress, int /*long*/ aRequest, int state) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aWebProgress, aRequest, state);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java
new file mode 100644
index 0000000000..d27f4863ff
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWebProgressListener2 extends nsIWebProgressListener {
+
+ static final int LAST_METHOD_ID = nsIWebProgressListener.LAST_METHOD_ID + 1;
+
+ public static final String NS_IWEBPROGRESSLISTENER2_IID_STR =
+ "3f24610d-1e1f-4151-9d2e-239884742324";
+
+ public static final nsID NS_IWEBPROGRESSLISTENER2_IID =
+ new nsID(NS_IWEBPROGRESSLISTENER2_IID_STR);
+
+ public nsIWebProgressListener2(int /*long*/ address) {
+ super(address);
+ }
+
+ public int OnProgressChange64(int /*long*/ aWebProgress, int /*long*/ aRequest, long aCurSelfProgress, long aMaxSelfProgress, long aCurTotalProgress, long aMaxTotalProgress) {
+ return XPCOM.VtblCall(nsIWebProgressListener.LAST_METHOD_ID + 1, getAddress(), aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowCreator.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowCreator.java
new file mode 100644
index 0000000000..d7f5d7fb93
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowCreator.java
@@ -0,0 +1,47 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWindowCreator extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
+
+ public static final String NS_IWINDOWCREATOR_IID_STR =
+ "30465632-a777-44cc-90f9-8145475ef999";
+
+ public static final nsID NS_IWINDOWCREATOR_IID =
+ new nsID(NS_IWINDOWCREATOR_IID_STR);
+
+ public nsIWindowCreator(int /*long*/ address) {
+ super(address);
+ }
+
+ public int CreateChromeWindow(int /*long*/ parent, int chromeFlags, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), parent, chromeFlags, _retval);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java
new file mode 100644
index 0000000000..4bfec46ea4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java
@@ -0,0 +1,49 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWindowCreator2 extends nsIWindowCreator {
+
+ static final int LAST_METHOD_ID = nsIWindowCreator.LAST_METHOD_ID + 1;
+
+ public static final String NS_IWINDOWCREATOR2_IID_STR =
+ "f673ec81-a4b0-11d6-964b-eb5a2bf216fc";
+
+ public static final nsID NS_IWINDOWCREATOR2_IID =
+ new nsID(NS_IWINDOWCREATOR2_IID_STR);
+
+ public nsIWindowCreator2(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int PARENT_IS_LOADING_OR_RUNNING_TIMEOUT = 1;
+
+ public int CreateChromeWindow2(int /*long*/ parent, int chromeFlags, int contextFlags, int /*long*/ uri, int[] cancel, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsIWindowCreator.LAST_METHOD_ID + 1, getAddress(), parent, chromeFlags, contextFlags, uri, cancel, _retval);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java
new file mode 100644
index 0000000000..6a1fc590b2
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java
@@ -0,0 +1,87 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2005 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIWindowWatcher extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 11;
+
+ public static final String NS_IWINDOWWATCHER_IID_STR =
+ "002286a8-494b-43b3-8ddd-49e3fc50622b";
+
+ public static final nsID NS_IWINDOWWATCHER_IID =
+ new nsID(NS_IWINDOWWATCHER_IID_STR);
+
+ public nsIWindowWatcher(int /*long*/ address) {
+ super(address);
+ }
+
+ public int OpenWindow(int /*long*/ aParent, byte[] aUrl, byte[] aName, byte[] aFeatures, int /*long*/ aArguments, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aParent, aUrl, aName, aFeatures, aArguments, _retval);
+ }
+
+ public int RegisterNotification(int /*long*/ aObserver) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aObserver);
+ }
+
+ public int UnregisterNotification(int /*long*/ aObserver) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aObserver);
+ }
+
+ public int GetWindowEnumerator(int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), _retval);
+ }
+
+ public int GetNewPrompter(int /*long*/ aParent, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aParent, _retval);
+ }
+
+ public int GetNewAuthPrompter(int /*long*/ aParent, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aParent, _retval);
+ }
+
+ public int SetWindowCreator(int /*long*/ creator) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), creator);
+ }
+
+ public int GetChromeForWindow(int /*long*/ aWindow, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aWindow, _retval);
+ }
+
+ public int GetWindowByName(char[] aTargetName, int /*long*/ aCurrentWindow, int /*long*/[] _retval) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aTargetName, aCurrentWindow, _retval);
+ }
+
+ public int GetActiveWindow(int /*long*/[] aActiveWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aActiveWindow);
+ }
+
+ public int SetActiveWindow(int /*long*/ aActiveWindow) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), aActiveWindow);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java
new file mode 100644
index 0000000000..30b340c4d4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java
@@ -0,0 +1,141 @@
+package org.eclipse.swt.internal.mozilla;
+
+
+public class nsIWritableVariant extends nsIVariant {
+
+ static final int LAST_METHOD_ID = nsIVariant.LAST_METHOD_ID + 31;
+
+ public static final String NS_IWRITABLEVARIANT_IID_STR =
+ "5586a590-8c82-11d5-90f3-0010a4e73d9a";
+
+ public static final nsID NS_IWRITABLEVARIANT_IID =
+ new nsID(NS_IWRITABLEVARIANT_IID_STR);
+
+ public nsIWritableVariant(int /*long*/ address) {
+ super(address);
+ }
+
+ public int GetWritable(int[] aWritable) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 1, getAddress(), aWritable);
+ }
+
+ public int SetWritable(int aWritable) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 2, getAddress(), aWritable);
+ }
+
+// public int SetAsInt8(!ERROR UNKNOWN C TYPE <PRUint8 >! aValue) {
+// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 3, getAddress(), aValue);
+// }
+//
+// public int SetAsInt16(!ERROR UNKNOWN C TYPE <PRInt16 >! aValue) {
+// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 4, getAddress(), aValue);
+// }
+
+ public int SetAsInt32(int aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 5, getAddress(), aValue);
+ }
+
+ public int SetAsInt64(long aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 6, getAddress(), aValue);
+ }
+
+// public int SetAsUint8(!ERROR UNKNOWN C TYPE <PRUint8 >! aValue) {
+// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 7, getAddress(), aValue);
+// }
+
+ public int SetAsUint16(short aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 8, getAddress(), aValue);
+ }
+
+ public int SetAsUint32(int aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 9, getAddress(), aValue);
+ }
+
+// public int SetAsUint64(!ERROR UNKNOWN C TYPE <PRUint64 >! aValue) {
+// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 10, getAddress(), aValue);
+// }
+
+ public int SetAsFloat(float aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 11, getAddress(), aValue);
+ }
+
+ public int SetAsDouble(double aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 12, getAddress(), aValue);
+ }
+
+ public int SetAsBool(int aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 13, getAddress(), aValue);
+ }
+
+// public int SetAsChar(!ERROR UNKNOWN C TYPE <char >! aValue) {
+// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 14, getAddress(), aValue);
+// }
+//
+// public int SetAsWChar(!ERROR UNKNOWN C TYPE <PRUnichar >! aValue) {
+// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 15, getAddress(), aValue);
+// }
+
+ public int SetAsID(int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 16, getAddress(), aValue);
+ }
+
+ public int SetAsAString(int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 17, getAddress(), aValue);
+ }
+
+ public int SetAsDOMString(int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 18, getAddress(), aValue);
+ }
+
+ public int SetAsACString(int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 19, getAddress(), aValue);
+ }
+
+ public int SetAsAUTF8String(int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 20, getAddress(), aValue);
+ }
+
+ public int SetAsString(byte[] aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 21, getAddress(), aValue);
+ }
+
+ public int SetAsWString(char[] aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 22, getAddress(), aValue);
+ }
+
+ public int SetAsISupports(int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 23, getAddress(), aValue);
+ }
+
+ public int SetAsInterface(nsID iid, int /*long*/ iface) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 24, getAddress(), iid, iface);
+ }
+
+ public int SetAsArray(short type, int /*long*/ iid, int count, int /*long*/ ptr) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 25, getAddress(), type, iid, count, ptr);
+ }
+
+ public int SetAsStringWithSize(int size, byte[] str) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 26, getAddress(), size, str);
+ }
+
+ public int SetAsWStringWithSize(int size, char[] str) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 27, getAddress(), size, str);
+ }
+
+ public int SetAsVoid() {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 28, getAddress());
+ }
+
+ public int SetAsEmpty() {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 29, getAddress());
+ }
+
+ public int SetAsEmptyArray() {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 30, getAddress());
+ }
+
+ public int SetFromVariant(int /*long*/ aValue) {
+ return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 31, getAddress(), aValue);
+ }
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java
new file mode 100644
index 0000000000..884b6d986a
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java
@@ -0,0 +1,79 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * - Binding to permit interfacing between Mozilla and SWT
+ * - Copyright (C) 2003, 2009 IBM Corp. All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package org.eclipse.swt.internal.mozilla;
+
+public class nsIXPCSecurityManager extends nsISupports {
+
+ static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4;
+
+ public static final String NS_IXPCSECURITYMANAGER_IID_STR =
+ "31431440-f1ce-11d2-985a-006008962422";
+
+ public static final nsID NS_IXPCSECURITYMANAGER_IID =
+ new nsID(NS_IXPCSECURITYMANAGER_IID_STR);
+
+ public nsIXPCSecurityManager(int /*long*/ address) {
+ super(address);
+ }
+
+ public static final int HOOK_CREATE_WRAPPER = 1;
+
+ public static final int HOOK_CREATE_INSTANCE = 2;
+
+ public static final int HOOK_GET_SERVICE = 4;
+
+ public static final int HOOK_CALL_METHOD = 8;
+
+ public static final int HOOK_GET_PROPERTY = 16;
+
+ public static final int HOOK_SET_PROPERTY = 32;
+
+ public static final int HOOK_ALL = 63;
+
+ public int CanCreateWrapper(int /*long*/ aJSContext, nsID aIID, int /*long*/ aObj, int /*long*/ aClassInfo, int /*long*/[] aPolicy) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aJSContext, aIID, aObj, aClassInfo, aPolicy);
+ }
+
+ public int CanCreateInstance(int /*long*/ aJSContext, nsID aCID) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aJSContext, aCID);
+ }
+
+ public int CanGetService(int /*long*/ aJSContext, nsID aCID) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aJSContext, aCID);
+ }
+
+ public static final int ACCESS_CALL_METHOD = 0;
+
+ public static final int ACCESS_GET_PROPERTY = 1;
+
+ public static final int ACCESS_SET_PROPERTY = 2;
+
+ public int CanAccess(int aAction, int /*long*/ aCallContext, int /*long*/ aJSContext, int /*long*/ aJSObject, int /*long*/ aObj, int /*long*/ aClassInfo, int /*long*/ aName, int /*long*/[] aPolicy) {
+ return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aAction, aCallContext, aJSContext, aJSObject, aObj, aClassInfo, aName, aPolicy);
+ }
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/package.html b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/package.html
new file mode 100644
index 0000000000..0458804fc3
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/package.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="IBM">
+ <title>Package-level Javadoc</title>
+</head>
+<body>
+SWT internal Mozilla XPCOM implementation classes.
+<h2>
+Package Specification</h2>
+This package contains the classes which represent the Mozilla
+XPCOM platform interfaces that the SWT Mozilla Browser is built from.
+<p>
+Referencing any of the classes in this package directly guarantees
+that the code is platform specific. Applications should not need to
+reference the classes in this package directly.
+</p>
+</body>
+</html>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100644
index 0000000000..57bd6b7c5e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/gtk/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.gtk.*;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+ int /*long*/ mozillaHandle, embedHandle;
+ boolean hasFocus;
+ Listener listener;
+ static Callback eventCallback;
+ static int /*long*/ eventProc;
+ static final int STOP_PROPOGATE = 1;
+
+MozillaDelegate (Browser browser) {
+ super ();
+ this.browser = browser;
+}
+
+static int /*long*/ eventProc (int /*long*/ handle, int /*long*/ gdkEvent, int /*long*/ pointer) {
+ int /*long*/ parent = OS.gtk_widget_get_parent (handle);
+ parent = OS.gtk_widget_get_parent (parent);
+ if (parent == 0) return 0;
+ Widget widget = Display.getCurrent ().findWidget (parent);
+ if (widget != null && widget instanceof Browser) {
+ return ((Mozilla)((Browser)widget).webBrowser).delegate.gtk_event (handle, gdkEvent, pointer);
+ }
+ return 0;
+}
+
+static Browser findBrowser (int /*long*/ handle) {
+ /*
+ * Note. On GTK, Mozilla is embedded into a GtkHBox handle
+ * and not directly into the parent Composite handle.
+ */
+ int /*long*/ parent = OS.gtk_widget_get_parent (handle);
+ Display display = Display.getCurrent ();
+ return (Browser)display.findWidget (parent);
+}
+
+static char[] mbcsToWcs (String codePage, byte [] buffer) {
+ return Converter.mbcsToWcs (codePage, buffer);
+}
+
+static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+ return Converter.wcsToMbcs (codePage, string, terminate);
+}
+
+void addWindowSubclass () {
+}
+
+int createBaseWindow (nsIBaseWindow baseWindow) {
+ return baseWindow.Create ();
+}
+
+int /*long*/ getHandle () {
+ /*
+ * Bug in Mozilla Linux GTK. Embedding Mozilla into a GtkFixed
+ * handle causes problems with some Mozilla plug-ins. For some
+ * reason, the Flash plug-in causes the child of the GtkFixed
+ * handle to be resized to 1 when the Flash document is loaded.
+ * That could be due to gtk_container_resize_children being called
+ * by Mozilla - or one of its plug-ins - on the GtkFixed handle,
+ * causing the child of the GtkFixed handle to be resized to 1.
+ * The workaround is to embed Mozilla into a GtkHBox handle.
+ */
+ embedHandle = OS.gtk_hbox_new (false, 0);
+ OS.gtk_container_add (browser.handle, embedHandle);
+ OS.gtk_widget_show (embedHandle);
+ return embedHandle;
+}
+
+String getJSLibraryName () {
+ return "libmozjs.so"; //$NON-NLS-1$
+}
+
+String getLibraryName () {
+ return "libxpcom.so"; //$NON-NLS-1$
+}
+
+String getSWTInitLibraryName () {
+ return "swt-xpcominit"; //$NON-NLS-1$
+}
+
+int /*long*/ gtk_event (int /*long*/ handle, int /*long*/ gdkEvent, int /*long*/ pointer) {
+ GdkEvent event = new GdkEvent ();
+ OS.memmove (event, gdkEvent, GdkEvent.sizeof);
+ if (event.type == OS.GDK_BUTTON_PRESS) {
+ if (!hasFocus) browser.setFocus ();
+ }
+
+ /*
+ * Stop the propagation of events that are not consumed by Mozilla, before
+ * they reach the parent embedder. These event have already been received.
+ */
+ if (pointer == STOP_PROPOGATE) return 1;
+ return 0;
+}
+
+void handleFocus () {
+ if (hasFocus) return;
+ hasFocus = true;
+ listener = new Listener () {
+ public void handleEvent (Event event) {
+ if (event.widget == browser) return;
+ ((Mozilla)browser.webBrowser).Deactivate ();
+ hasFocus = false;
+ browser.getDisplay ().removeFilter (SWT.FocusIn, this);
+ browser.getShell ().removeListener (SWT.Deactivate, this);
+ listener = null;
+ }
+ };
+ browser.getDisplay ().addFilter (SWT.FocusIn, listener);
+ browser.getShell ().addListener (SWT.Deactivate, listener);
+}
+
+void handleMouseDown () {
+ int shellStyle = browser.getShell ().getStyle ();
+ if ((shellStyle & SWT.ON_TOP) != 0 && (((shellStyle & SWT.NO_FOCUS) == 0) || ((browser.getStyle () & SWT.NO_FOCUS) == 0))) {
+ browser.getDisplay ().asyncExec (new Runnable () {
+ public void run () {
+ if (browser == null || browser.isDisposed ()) return;
+ ((Mozilla)browser.webBrowser).Activate ();
+ }
+ });
+ }
+}
+
+boolean hookEnterExit () {
+ return false;
+}
+
+void init () {
+ if (eventCallback == null) {
+ eventCallback = new Callback (getClass (), "eventProc", 3); //$NON-NLS-1$
+ eventProc = eventCallback.getAddress ();
+ if (eventProc == 0) {
+ browser.dispose ();
+ Mozilla.error (SWT.ERROR_NO_MORE_CALLBACKS);
+ }
+ }
+
+ /*
+ * Feature in Mozilla. GtkEvents such as key down, key pressed may be consumed
+ * by Mozilla and never be received by the parent embedder. The workaround
+ * is to find the top Mozilla gtk widget that receives all the Mozilla GtkEvents,
+ * i.e. the first child of the parent embedder. Then hook event callbacks and
+ * forward the event to the parent embedder before Mozilla received and consumed
+ * them.
+ */
+ int /*long*/ list = OS.gtk_container_get_children (embedHandle);
+ if (list != 0) {
+ mozillaHandle = OS.g_list_data (list);
+ OS.g_list_free (list);
+
+ if (mozillaHandle != 0) {
+ /* Note. Callback to get events before Mozilla receives and consumes them. */
+ OS.g_signal_connect (mozillaHandle, OS.event, eventProc, 0);
+
+ /*
+ * Note. Callback to get the events not consumed by Mozilla - and to block
+ * them so that they don't get propagated to the parent handle twice.
+ * This hook is set after Mozilla and is therefore called after Mozilla's
+ * handler because GTK dispatches events in their order of registration.
+ */
+ OS.g_signal_connect (mozillaHandle, OS.key_press_event, eventProc, STOP_PROPOGATE);
+ OS.g_signal_connect (mozillaHandle, OS.key_release_event, eventProc, STOP_PROPOGATE);
+ OS.g_signal_connect (mozillaHandle, OS.button_press_event, eventProc, STOP_PROPOGATE);
+ }
+ }
+}
+
+boolean needsSpinup () {
+ return true;
+}
+
+void onDispose (int /*long*/ embedHandle) {
+ if (listener != null) {
+ browser.getDisplay ().removeFilter (SWT.FocusIn, listener);
+ browser.getShell ().removeListener (SWT.Deactivate, listener);
+ listener = null;
+ }
+ browser = null;
+}
+
+void removeWindowSubclass () {
+}
+
+void setSize (int /*long*/ embedHandle, int width, int height) {
+ OS.gtk_widget_set_size_request (embedHandle, width, height);
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100644
index 0000000000..8fcdf91aa8
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/motif/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,188 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.internal.*;
+import org.eclipse.swt.internal.gtk.GTK;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+ Listener listener;
+ boolean hasFocus;
+
+ static boolean GtkLoaded, IsLinux;
+ static {
+ String osName = System.getProperty ("os.name").toLowerCase (); //$NON-NLS-1$
+ IsLinux = osName.startsWith ("linux"); //$NON-NLS-1$
+ }
+
+MozillaDelegate (Browser browser) {
+ super ();
+ if (!IsLinux) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, null, " [Unsupported platform]"); //$NON-NLS-1$
+ }
+ this.browser = browser;
+
+ if (!GtkLoaded) {
+ GtkLoaded = true;
+ try {
+ Library.loadLibrary ("swt-gtk"); //$NON-NLS-1$
+ } catch (UnsatisfiedLinkError e) {
+ browser.dispose ();
+ SWT.error (SWT.ERROR_NO_HANDLES, e);
+ }
+ }
+
+}
+
+static Browser findBrowser (int handle) {
+ Display display = Display.getCurrent ();
+ Shell[] shells = display.getShells ();
+ Browser browser = null;
+ for (int i = 0; i < shells.length; i++) {
+ browser = findBrowser (shells[i], handle);
+ if (browser != null) break;
+ }
+ return browser;
+}
+
+static Browser findBrowser (Control control, int gtkHandle) {
+ if (control instanceof Browser) {
+ Browser browser = (Browser)control;
+ WebBrowser webBrowser = browser.webBrowser;
+ if (webBrowser instanceof Mozilla) {
+ if (((Mozilla)webBrowser).embedHandle == gtkHandle) return browser;
+ }
+ }
+ if (control instanceof Composite) {
+ Composite composite = (Composite)control;
+ Control[] children = composite.getChildren ();
+ for (int i = 0; i < children.length; i++) {
+ Browser browser = findBrowser (children[i], gtkHandle);
+ if (browser != null) return browser;
+ }
+ }
+ return null;
+}
+
+static char[] mbcsToWcs (String codePage, byte [] buffer) {
+ return Converter.mbcsToWcs (codePage, buffer);
+}
+
+static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+ return Converter.wcsToMbcs (codePage, string, terminate);
+}
+
+void addWindowSubclass () {
+}
+
+int createBaseWindow (nsIBaseWindow baseWindow) {
+ return baseWindow.Create ();
+}
+
+int getHandle() {
+ if (Mozilla.BrowserCount == 1) {
+ GTK.gtk_init_check (new int[1], null);
+ final Display display = browser.getDisplay ();
+ display.asyncExec (new Runnable () {
+ public void run () {
+ if (Mozilla.BrowserCount == 0) return;
+ while (GTK.gtk_events_pending () != 0) {
+ GTK.gtk_main_iteration ();
+ }
+ display.timerExec (25, this);
+ }
+ });
+ }
+ browser.getShell ().setFocus ();
+ int result = GTK.gtk_plug_new (browser.embeddedHandle);
+ GTK.gtk_widget_show (result);
+ return result;
+}
+
+String getJSLibraryName () {
+ return "libmozjs.so"; //$NON-NLS-1$
+}
+
+String getLibraryName () {
+ return "libxpcom.so"; //$NON-NLS-1$
+}
+
+String getSWTInitLibraryName () {
+ return "swt-xpcominit"; //$NON-NLS-1$
+}
+
+void handleFocus () {
+ if (hasFocus) return;
+ hasFocus = true;
+ listener = new Listener () {
+ public void handleEvent (Event event) {
+ if (event.widget == browser) return;
+ ((Mozilla)browser.webBrowser).Deactivate ();
+ hasFocus = false;
+ browser.getDisplay ().removeFilter (SWT.FocusIn, this);
+ browser.getShell ().removeListener (SWT.Deactivate, this);
+ listener = null;
+ }
+
+ };
+ browser.getDisplay ().addFilter (SWT.FocusIn, listener);
+ browser.getShell ().addListener (SWT.Deactivate, listener);
+}
+
+void handleMouseDown () {
+ int shellStyle = browser.getShell ().getStyle ();
+ if ((shellStyle & SWT.ON_TOP) != 0 && (((shellStyle & SWT.NO_FOCUS) == 0) || ((browser.getStyle () & SWT.NO_FOCUS) == 0))) {
+ browser.getDisplay ().asyncExec (new Runnable () {
+ public void run () {
+ if (browser == null || browser.isDisposed ()) return;
+ ((Mozilla)browser.webBrowser).Activate ();
+ }
+ });
+ }
+}
+
+boolean hookEnterExit () {
+ return true;
+}
+
+void init () {
+}
+
+boolean needsSpinup () {
+ return true;
+}
+
+void onDispose (int embedHandle) {
+ if (listener != null) {
+ browser.getDisplay ().removeFilter (SWT.FocusIn, listener);
+ browser.getShell ().removeListener (SWT.Deactivate, listener);
+ listener = null;
+ }
+
+ GTK.gtk_widget_destroy (embedHandle);
+ while (GTK.gtk_events_pending () != 0) {
+ GTK.gtk_main_iteration ();
+ }
+
+ browser = null;
+}
+
+void removeWindowSubclass () {
+}
+
+void setSize(int embedHandle, int width, int height) {
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/win32/org/eclipse/swt/browser/MozillaDelegate.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/win32/org/eclipse/swt/browser/MozillaDelegate.java
new file mode 100644
index 0000000000..9eb0169672
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/win32/org/eclipse/swt/browser/MozillaDelegate.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.internal.Callback;
+import org.eclipse.swt.internal.mozilla.*;
+import org.eclipse.swt.internal.win32.*;
+import org.eclipse.swt.widgets.*;
+
+class MozillaDelegate {
+ Browser browser;
+ static int /*long*/ MozillaProc;
+ static Callback SubclassProc;
+
+MozillaDelegate (Browser browser) {
+ super ();
+ this.browser = browser;
+}
+
+static Browser findBrowser (int /*long*/ handle) {
+ Display display = Display.getCurrent ();
+ return (Browser)display.findWidget (handle);
+}
+
+static char[] mbcsToWcs (String codePage, byte[] buffer) {
+ char[] chars = new char[buffer.length];
+ int charCount = OS.MultiByteToWideChar (OS.CP_ACP, OS.MB_PRECOMPOSED, buffer, buffer.length, chars, chars.length);
+ if (charCount == chars.length) return chars;
+ char[] result = new char[charCount];
+ System.arraycopy (chars, 0, result, 0, charCount);
+ return result;
+}
+
+static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
+ int byteCount;
+ char[] chars = new char[string.length()];
+ string.getChars (0, chars.length, chars, 0);
+ byte[] bytes = new byte[byteCount = chars.length * 2 + (terminate ? 1 : 0)];
+ byteCount = OS.WideCharToMultiByte (OS.CP_ACP, 0, chars, chars.length, bytes, byteCount, null, null);
+ if (terminate) {
+ byteCount++;
+ } else {
+ if (bytes.length != byteCount) {
+ byte[] result = new byte[byteCount];
+ System.arraycopy (bytes, 0, result, 0, byteCount);
+ bytes = result;
+ }
+ }
+ return bytes;
+}
+
+static int /*long*/ windowProc (int /*long*/ hwnd, int /*long*/ msg, int /*long*/ wParam, int /*long*/ lParam) {
+ switch ((int)/*64*/msg) {
+ case OS.WM_ERASEBKGND:
+ RECT rect = new RECT ();
+ OS.GetClientRect (hwnd, rect);
+ OS.FillRect (wParam, rect, OS.GetSysColorBrush (OS.COLOR_WINDOW));
+ break;
+ }
+ return OS.CallWindowProc (MozillaProc, hwnd, (int)/*64*/msg, wParam, lParam);
+}
+
+void addWindowSubclass () {
+ int /*long*/ hwndChild = OS.GetWindow (browser.handle, OS.GW_CHILD);
+ if (SubclassProc == null) {
+ SubclassProc = new Callback (MozillaDelegate.class, "windowProc", 4); //$NON-NLS-1$
+ MozillaProc = OS.GetWindowLongPtr (hwndChild, OS.GWL_WNDPROC);
+ }
+ OS.SetWindowLongPtr (hwndChild, OS.GWL_WNDPROC, SubclassProc.getAddress ());
+}
+
+int createBaseWindow (nsIBaseWindow baseWindow) {
+ return baseWindow.Create ();
+}
+
+int /*long*/ getHandle () {
+ return browser.handle;
+}
+
+String getJSLibraryName () {
+ return "js3250.dll"; //$NON-NLS-1$
+}
+
+String getLibraryName () {
+ return "xpcom.dll"; //$NON-NLS-1$
+}
+
+String getSWTInitLibraryName () {
+ return "swt-xulrunner"; //$NON-NLS-1$
+}
+
+void handleFocus () {
+}
+
+void handleMouseDown () {
+}
+
+boolean hookEnterExit () {
+ return true;
+}
+
+void init () {
+}
+
+boolean needsSpinup () {
+ return false;
+}
+
+void onDispose (int /*long*/ embedHandle) {
+ removeWindowSubclass ();
+ browser = null;
+}
+
+void removeWindowSubclass () {
+ if (SubclassProc == null) return;
+ int /*long*/ hwndChild = OS.GetWindow (browser.handle, OS.GW_CHILD);
+ OS.SetWindowLongPtr (hwndChild, OS.GWL_WNDPROC, MozillaProc);
+}
+
+void setSize (int /*long*/ embedHandle, int width, int height) {
+}
+}

Back to the top