blob: 72a3f36846a1e06d3ee5298a89a084a9e162b499 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2012 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.browser;
import org.eclipse.swt.*;
class BrowserFactory {
private Class<?> chromiumClass;
WebBrowser createWebBrowser (int style) {
WebBrowser browser = null;
if ((style & SWT.CHROMIUM) != 0) {
browser = createChromium();
if (browser != null) return browser;
}
return new IE ();
}
private WebBrowser createChromium() {
if (chromiumClass == null) {
try {
chromiumClass = Class.forName ("org.eclipse.swt.browser.ChromiumImpl"); //$NON-NLS-1$
return (WebBrowser) chromiumClass.newInstance();
} catch (ClassNotFoundException e) {
/* chromium fragments missing */
System.err.println ("SWT.CHROMIUM style was used but chromium.swt fragment/jar is missing from classpath."); //$NON-NLS-1$
} catch (NoClassDefFoundError | InstantiationException | IllegalAccessException e) {
/* second attempt, do not print */
} catch (UnsatisfiedLinkError e) {
System.err.println ("SWT.CHROMIUM style was used but chromium.swt " + SWT.getPlatform() + " (or CEF binaries) fragment/jar is missing."); //$NON-NLS-1$
} catch (SWTError e) {
// a more specific error determined by the implementation.
System.err.println (e.getMessage()); //$NON-NLS-1$
}
}
return null;
}
}