diff options
author | Grant Gayed | 2013-06-28 19:55:13 +0000 |
---|---|---|
committer | Paul Webster | 2013-06-28 19:55:13 +0000 |
commit | ee2f69ca2509188c169391ed9d45d7571bad502a (patch) | |
tree | 7351f9f896520188f97c81af2a9e0f2117b7d544 | |
parent | feb2fcb7d271fc37221c824b8ecb8733b4724180 (diff) | |
download | eclipse.platform.ua-I20130709-0800.tar.gz eclipse.platform.ua-I20130709-0800.tar.xz eclipse.platform.ua-I20130709-0800.zip |
Bug 409701 - [Browser] Eclipse help crashes when forced to use XULRunnerI20130807-2000I20130807-0800I20130806-2000I20130806-0800I20130805-2000I20130805-0800I20130804-2300I20130730-0800I20130724-1600I20130723-0800I20130717-1600I20130716-0800I20130709-0800I20130702-1230I20130702-1000I20130702-0800
or WebKit
2 files changed, 10 insertions, 4 deletions
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java index 7c0049257..6355768d2 100644 --- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java +++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java @@ -23,6 +23,7 @@ public class EmbeddedBrowserAdapter implements IBrowser, IBrowserCloseListener{ private EmbeddedBrowser browser; // Thread to use in workbench mode on Windows private UIThread2 secondThread; + private String browserType; class UIThread2 extends Thread { Display d; @@ -60,12 +61,15 @@ public class EmbeddedBrowserAdapter implements IBrowser, IBrowserCloseListener{ /** * Adapter constructor. */ - public EmbeddedBrowserAdapter() { + public EmbeddedBrowserAdapter(String browserType) { + this.browserType = browserType; } public Display getBrowserDisplay() { + /* only attempt to use a second thread if the Browser's native renderer is IE */ boolean useUIThread2 = BaseHelpSystem.getMode() == BaseHelpSystem.MODE_WORKBENCH && Constants.OS_WIN32.equalsIgnoreCase(Platform.getOS()) - && !Constants.WS_WPF.equalsIgnoreCase(SWT.getPlatform()) ; + && !Constants.WS_WPF.equalsIgnoreCase(SWT.getPlatform()) + && "ie".equalsIgnoreCase(browserType); //$NON-NLS-1$ if (useUIThread2) { if (secondThread == null) { secondThread = new UIThread2(); diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java index e604caa78..dec7f54eb 100644 --- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java +++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java @@ -25,6 +25,7 @@ public class EmbeddedBrowserFactory implements IBrowserFactory { private boolean tested = false; private boolean available = false; + private String browserType; /** * Constructor. @@ -70,7 +71,8 @@ public class EmbeddedBrowserFactory implements IBrowserFactory { tested = true; Shell sh = new Shell(); try { - new Browser(sh, SWT.NONE); + Browser browser = new Browser(sh, SWT.NONE); + browserType = browser.getBrowserType(); available = true; } catch (SWTError se) { if (se.code == SWT.ERROR_NO_HANDLES) { @@ -94,6 +96,6 @@ public class EmbeddedBrowserFactory implements IBrowserFactory { * @see IBrowserFactory#createBrowser() */ public IBrowser createBrowser() { - return new EmbeddedBrowserAdapter(); + return new EmbeddedBrowserAdapter(browserType); } } |