diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse')
117 files changed, 19372 insertions, 0 deletions
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> |