Windowless
The Equo Chromium browser provides a "Windowless" mode that is essentially a headless browser. The Equo Chromium Windowless mode is very useful for various operations regarding the processing of webpages, since it’s not configured with a GUI. As a result, it is much faster than a normal browser. This supports many use cases, such as:
-
Automated web testing.
-
Data extraction or web scrapping.
-
Layout checking and performance testing.
Using the Windowless mode in an SWT application
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import com.equo.chromium.ChromiumBrowser;
public class Windowless {
public static void main(String[] args) throws ClassNotFoundException {
ChromiumBrowser.earlyInit(); // (1)
Display display = Display.getDefault();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout(1, false));
final ChromiumBrowser browser = ChromiumBrowser
.windowless("https://docs.equo.dev/main/getting-started/introduction.html");
Button button = new Button(shell, SWT.PUSH);
button.setText("windowless");
button.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
browser.executeJavacript("console.log(document.body.innerHTML)");
}
});
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
You need to use [1] and property -Dchromium.init_threads=true or one of the methods described in Wayland Support section. |
Using the Windowless mode in a plain Java application
import com.equo.chromium.ChromiumBrowser;
public class Windowless {
public static void main(String[] args) {
ChromiumBrowser browser = ChromiumBrowser
.windowless("https://docs.equo.dev/main/getting-started/introduction.html");
ChromiumBrowser.startBrowsers();
}
}
The Windowless mode tries to integrate with the underlying system automatically (Standalone or SWT). To force it to integrate with SWT you can use the system property chromium.force_windowless_swt=true. |