diff options
author | Lakshmi Shanmugam | 2013-02-28 14:29:40 +0000 |
---|---|---|
committer | Lakshmi Shanmugam | 2013-02-28 14:29:40 +0000 |
commit | 52c70666c67573818da17f34fd1a3b38e8311391 (patch) | |
tree | 3ce23f01c6893f64bd9fee0fcb87215eff2c7d24 | |
parent | 9b4500653984e31e0b219c0cf186dae7605efc88 (diff) | |
download | eclipse.platform.swt-52c70666c67573818da17f34fd1a3b38e8311391.tar.gz eclipse.platform.swt-52c70666c67573818da17f34fd1a3b38e8311391.tar.xz eclipse.platform.swt-52c70666c67573818da17f34fd1a3b38e8311391.zip |
windows working changes
4 files changed, 81 insertions, 26 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 index 727dbeb2cb..cc6379c579 100644 --- 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 @@ -220,7 +220,7 @@ int getFiles (long /*int*/ prop, long /*int*/ _retval) { nsILocalFile localFile = new nsILocalFile (result[0]); result[0] = 0; - rc = localFile.QueryInterface (Mozilla.Is_17 ? nsIFile.NS_IFILE_17_IID : nsIFile.NS_IFILE_IID, result); + rc = localFile.QueryInterface (Mozilla.IsPre_17 ? nsIFile.NS_IFILE_IID : nsIFile.NS_IFILE_17_IID, result); if (rc != XPCOM.NS_OK) Mozilla.error (rc); if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE); localFile.Release (); @@ -315,7 +315,7 @@ int getFile(long /*int*/ prop, long /*int*/ persistent, long /*int*/ _retval) { nsILocalFile localFile = new nsILocalFile (result [0]); result[0] = 0; - rc = localFile.QueryInterface (Mozilla.Is_17 ? nsIFile.NS_IFILE_17_IID : nsIFile.NS_IFILE_IID, result); + rc = localFile.QueryInterface (Mozilla.IsPre_17 ? nsIFile.NS_IFILE_IID : nsIFile.NS_IFILE_17_IID, result); if (rc != XPCOM.NS_OK) Mozilla.error (rc); if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE); 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 index 10bb5e29d6..b6ec8b8ba3 100644 --- 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 @@ -32,9 +32,11 @@ class Mozilla extends WebBrowser { XPCOMObject supports; XPCOMObject weakReference; XPCOMObject webProgressListener; + XPCOMObject webProgressListener_17; XPCOMObject webBrowserChrome; XPCOMObject webBrowserChromeFocus; XPCOMObject embeddingSiteWindow; + XPCOMObject embeddingSiteWindow_17; XPCOMObject interfaceRequestor; XPCOMObject supportsWeakReference; XPCOMObject contextMenuListener; @@ -62,7 +64,7 @@ class Mozilla extends WebBrowser { static int BrowserCount, NextJSFunctionIndex = 1; static Hashtable AllFunctions = new Hashtable (); static Listener DisplayListener; - static boolean Initialized, IsPre_1_8, IsPre_1_9, IsPre_4, Is_17 = true, IsXULRunner, PerformedVersionCheck, XPCOMWasGlued, XPCOMInitWasGlued; + static boolean Initialized, IsPre_1_8, IsPre_1_9, IsPre_4, IsPre_17, IsXULRunner, PerformedVersionCheck, XPCOMWasGlued, XPCOMInitWasGlued; static boolean IsGettingSiteWindow; static String MozillaPath; static String oldProxyHostFTP, oldProxyHostHTTP, oldProxyHostSSL; @@ -156,7 +158,7 @@ class Mozilla extends WebBrowser { nsILocalFile localFile = new nsILocalFile (result [0]); result[0] = 0; - rc = localFile.QueryInterface (Mozilla.Is_17 ? nsIFile.NS_IFILE_17_IID : nsIFile.NS_IFILE_IID, result); + rc = localFile.QueryInterface (IsPre_17 ? nsIFile.NS_IFILE_IID : nsIFile.NS_IFILE_17_IID, result); if (rc != XPCOM.NS_OK) Mozilla.error (rc); if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE); localFile.Release (); @@ -865,7 +867,7 @@ public void create (Composite parent, int style) { } IsPre_1_9 = true; IsPre_4 = true; - Is_17 = true; + IsPre_17 = true; result[0] = 0; /* @@ -900,7 +902,7 @@ public void create (Composite parent, int style) { result[0] = 0; rc = interfaceRequestor.GetInterface(nsIDocShell.NS_IDOCSHELL_17_IID, result); if (rc == XPCOM.NS_OK && result[0] != 0) { /* = 17.0.1 */ - IsPre_4 = false; + IsPre_17 = false; new nsISupports (result[0]).Release(); } else { if (result[0] != 0) { @@ -910,7 +912,6 @@ public void create (Composite parent, int style) { rc = interfaceRequestor.GetInterface(nsIDocShell.NS_IDOCSHELL_10_IID, result); if (rc == XPCOM.NS_OK && result[0] != 0) { /* = 10.0 */ IsPre_4 = false; - Is_17 = false; new nsISupports (result[0]).Release(); } } @@ -950,7 +951,7 @@ public void create (Composite parent, int style) { } /* add listeners for progress and content */ - rc = webBrowser.AddWebBrowserListener (weakReference.getAddress (), Is_17 ? nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_17_IID : nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID); + rc = webBrowser.AddWebBrowserListener (weakReference.getAddress (), IsPre_17 ? nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID : nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_17_IID); if (rc != XPCOM.NS_OK) { browser.dispose (); error (rc); @@ -1124,6 +1125,17 @@ void createCOMInterfaces () { public long /*int*/ method7 (long /*int*/[] args) {return OnSecurityChange (args[0], args[1], (int)/*64*/args[2]);} }; + webProgressListener_17 = new XPCOMObject (new int[] {2, 0, 0, 4, 6, 4, 4, 3}) { + public long /*int*/ method0 (long /*int*/[] args) {return QueryInterface (args[0], args[1]);} + public long /*int*/ method1 (long /*int*/[] args) {return AddRef ();} + public long /*int*/ method2 (long /*int*/[] args) {return Release ();} + public long /*int*/ method3 (long /*int*/[] args) {return OnStateChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3]);} + public long /*int*/ method4 (long /*int*/[] args) {return OnProgressChange (args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3], (int)/*64*/args[4], (int)/*64*/args[5]);} + public long /*int*/ method5 (long /*int*/[] args) {return OnLocationChange (args[0], args[1], args[2], (int)/*64*/args[3]);} + public long /*int*/ method6 (long /*int*/[] args) {return OnStatusChange (args[0], args[1], (int)/*64*/args[2], args[3]);} + public long /*int*/ method7 (long /*int*/[] 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 long /*int*/ method0 (long /*int*/[] args) {return QueryInterface (args[0], args[1]);} public long /*int*/ method1 (long /*int*/[] args) {return AddRef ();} @@ -1163,6 +1175,20 @@ void createCOMInterfaces () { public long /*int*/ method11 (long /*int*/[] args) {return Blur ();} }; + embeddingSiteWindow_17 = new XPCOMObject (new int[] {2, 0, 0, 5, 5, 0, 1, 1, 1, 1, 1}) { + public long /*int*/ method0 (long /*int*/[] args) {return QueryInterface (args[0], args[1]);} + public long /*int*/ method1 (long /*int*/[] args) {return AddRef ();} + public long /*int*/ method2 (long /*int*/[] args) {return Release ();} + public long /*int*/ method3 (long /*int*/[] args) {return SetDimensions ((int)/*64*/args[0], (int)/*64*/args[1], (int)/*64*/args[2], (int)/*64*/args[3], (int)/*64*/args[4]);} + public long /*int*/ method4 (long /*int*/[] args) {return GetDimensions ((int)/*64*/args[0], args[1], args[2], args[3], args[4]);} + public long /*int*/ method5 (long /*int*/[] args) {return SetFocus ();} + public long /*int*/ method6 (long /*int*/[] args) {return GetVisibility (args[0]);} + public long /*int*/ method7 (long /*int*/[] args) {return SetVisibility ((int)/*64*/args[0]);} + public long /*int*/ method8 (long /*int*/[] args) {return GetTitle (args[0]);} + public long /*int*/ method9 (long /*int*/[] args) {return SetTitle (args[0]);} + public long /*int*/ method10 (long /*int*/[] args) {return GetSiteWindow (args[0]);} + }; + interfaceRequestor = new XPCOMObject (new int[] {2, 0, 0, 2} ){ public long /*int*/ method0 (long /*int*/[] args) {return QueryInterface (args[0], args[1]);} public long /*int*/ method1 (long /*int*/[] args) {return AddRef ();} @@ -1239,6 +1265,10 @@ void disposeCOMInterfaces () { webProgressListener.dispose (); webProgressListener = null; } + if (webProgressListener_17 != null) { + webProgressListener_17.dispose (); + webProgressListener_17 = null; + } if (webBrowserChrome != null) { webBrowserChrome.dispose (); webBrowserChrome = null; @@ -1251,6 +1281,10 @@ void disposeCOMInterfaces () { embeddingSiteWindow.dispose (); embeddingSiteWindow = null; } + if (embeddingSiteWindow_17 != null) { + embeddingSiteWindow_17.dispose (); + embeddingSiteWindow_17 = null; + } if (interfaceRequestor != null) { interfaceRequestor.dispose (); interfaceRequestor = null; @@ -1297,6 +1331,7 @@ public boolean execute (String script) { * exposed as of mozilla 1.9. */ long /*int*/[] result = new long /*int*/[1]; + if (IsPre_17) //TODO: temporarily disable execute() code for xulr17 if (!IsPre_1_9) { int rc = XPCOM.NS_GetServiceManager (result); if (rc != XPCOM.NS_OK) error (rc); @@ -1506,7 +1541,7 @@ static Browser getBrowser (long /*int*/ aDOMWindow) { nsIWebBrowserChrome webBrowserChrome = new nsIWebBrowserChrome (result[0]); result[0] = 0; - rc = webBrowserChrome.QueryInterface (Is_17 ? nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_17_IID : nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID, result); + rc = webBrowserChrome.QueryInterface (IsPre_17 ? nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID : nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_17_IID, result); if (rc != XPCOM.NS_OK) Mozilla.error (rc); if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE); webBrowserChrome.Release (); @@ -2700,7 +2735,7 @@ void onDispose (Display display) { new nsISupports (badCertRequest).Release (); } - int rc = webBrowser.RemoveWebBrowserListener (weakReference.getAddress (), Is_17 ? nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_17_IID : nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID); + int rc = webBrowser.RemoveWebBrowserListener (weakReference.getAddress (), IsPre_17 ? nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID : nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_17_IID); if (rc != XPCOM.NS_OK) error (rc); rc = webBrowser.SetParentURIContentListener (0); @@ -3102,7 +3137,7 @@ public boolean setText (String html, boolean trusted) { InputStream inputStream = new InputStream (data); inputStream.AddRef (); - rc = interfaceRequestor.GetInterface (Is_17 ? nsIDocShell.NS_IDOCSHELL_17_IID : nsIDocShell.NS_IDOCSHELL_IID, result); + rc = interfaceRequestor.GetInterface (IsPre_17 ? nsIDocShell.NS_IDOCSHELL_IID : nsIDocShell.NS_IDOCSHELL_17_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]); @@ -3297,7 +3332,7 @@ void unhookDOMListeners () { nsIDOMWindow window = new nsIDOMWindow (result[0]); result[0] = 0; - rc = window.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result); + rc = window.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_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]); @@ -3324,7 +3359,7 @@ void unhookDOMListeners () { nsIDOMWindow frame = new nsIDOMWindow (result[0]); result[0] = 0; - rc = frame.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result); + rc = frame.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID, result); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE); @@ -3396,11 +3431,16 @@ int QueryInterface (long /*int*/ riid, long /*int*/ ppvObject) { AddRef (); return XPCOM.NS_OK; } - if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID) || guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_17_IID)) { + if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID)) { XPCOM.memmove (ppvObject, new long /*int*/[] {webProgressListener.getAddress ()}, C.PTR_SIZEOF); AddRef (); return XPCOM.NS_OK; } + if (guid.Equals (nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_17_IID)) { + XPCOM.memmove (ppvObject, new long /*int*/[] {webProgressListener_17.getAddress ()}, C.PTR_SIZEOF); + AddRef (); + return XPCOM.NS_OK; + } if (guid.Equals (nsIWebBrowserChrome.NS_IWEBBROWSERCHROME_IID) || guid.Equals (nsIWebBrowserChrome.NS_IWEBBROWSERCHROME_17_IID)) { XPCOM.memmove (ppvObject, new long /*int*/[] {webBrowserChrome.getAddress ()}, C.PTR_SIZEOF); AddRef (); @@ -3411,11 +3451,16 @@ int QueryInterface (long /*int*/ riid, long /*int*/ ppvObject) { AddRef (); return XPCOM.NS_OK; } - if (guid.Equals (nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_17_IID) || guid.Equals (nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID)) { + if (guid.Equals (nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_IID)) { XPCOM.memmove (ppvObject, new long /*int*/[] {embeddingSiteWindow.getAddress ()}, C.PTR_SIZEOF); AddRef (); return XPCOM.NS_OK; } + if (guid.Equals (nsIEmbeddingSiteWindow.NS_IEMBEDDINGSITEWINDOW_17_IID)) { + XPCOM.memmove (ppvObject, new long /*int*/[] {embeddingSiteWindow_17.getAddress ()}, C.PTR_SIZEOF); + AddRef (); + return XPCOM.NS_OK; + } if (guid.Equals (nsIInterfaceRequestor.NS_IINTERFACEREQUESTOR_IID)) { XPCOM.memmove (ppvObject, new long /*int*/[] {interfaceRequestor.getAddress ()}, C.PTR_SIZEOF); AddRef (); @@ -3638,7 +3683,7 @@ int OnStateChange (long /*int*/ aWebProgress, long /*int*/ aRequest, int aStateF result[0] = 0; nsIDOMWindow domWindow = new nsIDOMWindow (window[0]); - rc = domWindow.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result); + rc = domWindow.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID, result); domWindow.Release(); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE); @@ -3784,7 +3829,7 @@ int OnStateChange (long /*int*/ aWebProgress, long /*int*/ aRequest, int aStateF result[0] = 0; nsIDOMWindow domWindow = new nsIDOMWindow (window[0]); - rc = domWindow.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result); + rc = domWindow.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID, result); domWindow.Release(); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE); @@ -3894,7 +3939,7 @@ int OnStateChange (long /*int*/ aWebProgress, long /*int*/ aRequest, int aStateF new nsISupports (result[0]).Release (); result[0] = 0; - rc = domWindow.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID, result); + rc = domWindow.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID : nsIDOMEventTarget.NS_IDOMEVENTTARGET_10_IID) : nsIDOMEventTarget.NS_IDOMEVENTTARGET_17_IID, result); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE); @@ -3928,6 +3973,10 @@ int OnProgressChange (long /*int*/ aWebProgress, long /*int*/ aRequest, int aCur return XPCOM.NS_OK; } +int OnLocationChange (long /*int*/ aWebProgress, long /*int*/ aRequest, long /*int*/ aLocation, int aFlags) { + return OnLocationChange(aWebProgress, aRequest, aLocation); +} + int OnLocationChange (long /*int*/ aWebProgress, long /*int*/ aRequest, long /*int*/ aLocation) { /* * Feature in Mozilla. When a page is loaded via setText before a previous @@ -4054,7 +4103,7 @@ int SetWebBrowser (long /*int*/ aWebBrowser) { int GetChromeFlags (long /*int*/ aChromeFlags) { int[] ret = new int[1]; ret[0] = chromeFlags; - XPCOM.memmove (aChromeFlags, ret, 4); /* PRUint32 */ + XPCOM.memmove (aChromeFlags, ret, 4); /* PRUint32 */ //TODO: its uint32 in xulr17 return XPCOM.NS_OK; } @@ -4156,7 +4205,7 @@ int SetDimensions (int flags, int x, int y, int cx, int cy) { } int GetDimensions (int flags, long /*int*/ x, long /*int*/ y, long /*int*/ cx, long /*int*/ cy) { - if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) != 0) { + if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) != 0) { //TODO:x,y,cx,cy are not print32 but only int32 in xulr17 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 */ @@ -4323,7 +4372,7 @@ int FocusPrevElement () { int OnShowContextMenu (int aContextFlags, long /*int*/ aEvent, long /*int*/ aNode) { nsIDOMEvent domEvent = new nsIDOMEvent (aEvent); long /*int*/[] result = new long /*int*/[1]; - int rc = domEvent.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_17_IID : nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_10_IID) :nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result); + int rc = domEvent.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID : nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_10_IID) :nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_17_IID, result); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_NOINTERFACE); @@ -4585,7 +4634,7 @@ int HandleEvent (long /*int*/ event) { if (XPCOM.DOMEVENT_KEYDOWN.equals (typeString)) { long /*int*/[] result = new long /*int*/[1]; - rc = domEvent.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMKeyEvent.NS_IDOMKEYEVENT_17_IID : nsIDOMKeyEvent.NS_IDOMKEYEVENT_10_IID) : nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result); + rc = domEvent.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID : nsIDOMKeyEvent.NS_IDOMKEYEVENT_10_IID) : nsIDOMKeyEvent.NS_IDOMKEYEVENT_17_IID, result); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_NOINTERFACE); nsIDOMKeyEvent domKeyEvent = new nsIDOMKeyEvent (result[0]); @@ -4693,7 +4742,7 @@ int HandleEvent (long /*int*/ event) { } long /*int*/[] result = new long /*int*/[1]; - rc = domEvent.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMKeyEvent.NS_IDOMKEYEVENT_17_IID : nsIDOMKeyEvent.NS_IDOMKEYEVENT_10_IID) : nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result); + rc = domEvent.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID : nsIDOMKeyEvent.NS_IDOMKEYEVENT_10_IID) : nsIDOMKeyEvent.NS_IDOMKEYEVENT_17_IID, result); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_NOINTERFACE); nsIDOMKeyEvent domKeyEvent = new nsIDOMKeyEvent (result[0]); @@ -4749,7 +4798,7 @@ int HandleEvent (long /*int*/ event) { if (XPCOM.DOMEVENT_KEYUP.equals (typeString)) { long /*int*/[] result = new long /*int*/[1]; - rc = domEvent.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMKeyEvent.NS_IDOMKEYEVENT_17_IID : nsIDOMKeyEvent.NS_IDOMKEYEVENT_10_IID) : nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result); + rc = domEvent.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID : nsIDOMKeyEvent.NS_IDOMKEYEVENT_10_IID) : nsIDOMKeyEvent.NS_IDOMKEYEVENT_17_IID, result); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_NOINTERFACE); nsIDOMKeyEvent domKeyEvent = new nsIDOMKeyEvent (result[0]); @@ -4806,7 +4855,7 @@ int HandleEvent (long /*int*/ event) { /* mouse event */ long /*int*/[] result = new long /*int*/[1]; - rc = domEvent.QueryInterface (!IsPre_4 ? (Is_17 ? nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_17_IID : nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_10_IID) : nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result); + rc = domEvent.QueryInterface (IsPre_17 ? (IsPre_4 ? nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID : nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_10_IID) : nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_17_IID, result); if (rc != XPCOM.NS_OK) error (rc); if (result[0] == 0) error (XPCOM.NS_NOINTERFACE); nsIDOMMouseEvent domMouseEvent = new nsIDOMMouseEvent (result[0]); 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 index 39b3baabbb..a03a05b33a 100644 --- 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 @@ -29,7 +29,7 @@ package org.eclipse.swt.internal.mozilla; public class nsIBaseWindow extends nsISupports { - static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + (IsXULRunner10 ? 22 : 24); + static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + (IsXULRunner17 ? 23 : (IsXULRunner10 ? 22 : 24)); public static final String NS_IBASEWINDOW_IID_STR = "046bc8a0-8015-11d3-af70-00a024ffc08c"; 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 index 22e78c35e9..befa495310 100644 --- 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 @@ -72,8 +72,14 @@ public class nsIWebProgressListener extends nsISupports { } public int OnLocationChange(long /*int*/ aWebProgress, long /*int*/ aRequest, long /*int*/ location) { + if (IsXULRunner17) return XPCOM.NS_COMFALSE; return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aWebProgress, aRequest, location); } + + public int OnLocationChange(long /*int*/ aWebProgress, long /*int*/ aRequest, long /*int*/ location, int aFlags) { + if (!IsXULRunner17) return XPCOM.NS_COMFALSE; + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aWebProgress, aRequest, location, aFlags); + } public int OnStatusChange(long /*int*/ aWebProgress, long /*int*/ aRequest, int aStatus, char[] aMessage) { return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aWebProgress, aRequest, aStatus, aMessage); |