aboutsummaryrefslogtreecommitdiff
path: root/java_tests
diff options
context:
space:
mode:
Diffstat (limited to 'java_tests')
-rw-r--r--java_tests/tests/detailed/MainFrame.java15
-rw-r--r--java_tests/tests/detailed/handler/RequestHandler.java6
-rw-r--r--java_tests/tests/detailed/ui/MenuBar.java82
-rw-r--r--java_tests/tests/junittests/TestFrame.java6
4 files changed, 106 insertions, 3 deletions
diff --git a/java_tests/tests/detailed/MainFrame.java b/java_tests/tests/detailed/MainFrame.java
index d01c7a1..06e1237 100644
--- a/java_tests/tests/detailed/MainFrame.java
+++ b/java_tests/tests/detailed/MainFrame.java
@@ -83,9 +83,14 @@ public class MainFrame extends BrowserFrame {
private ControlPanel control_pane_;
private StatusPanel status_panel_;
private boolean browserFocus_ = true;
+ private boolean osr_enabled_;
+ private boolean transparent_painting_enabled_;
public MainFrame(boolean osrEnabled, boolean transparentPaintingEnabled,
boolean createImmediately, String[] args) {
+ this.osr_enabled_ = osrEnabled;
+ this.transparent_painting_enabled_ = transparentPaintingEnabled;
+
CefApp myApp;
if (CefApp.getState() != CefApp.CefAppState.INITIALIZED) {
JCefAppConfig config = JCefAppConfig.getInstance();
@@ -248,7 +253,7 @@ public class MainFrame extends BrowserFrame {
menuBar.addBookmark("Binding Test", "client://tests/binding_test.html");
menuBar.addBookmark("Binding Test 2", "client://tests/binding_test2.html");
- menuBar.addBookmark("Download Test", "http://opensource.spotify.com/cefbuilds/index.html");
+ menuBar.addBookmark("Download Test", "https://cef-builds.spotifycdn.com/index.html");
menuBar.addBookmark("Login Test (username:pumpkin, password:pie)",
"http://www.colostate.edu/~ric/protect/your.html");
menuBar.addBookmark("Certificate-error Test", "https://www.k2go.de");
@@ -285,4 +290,12 @@ public class MainFrame extends BrowserFrame {
contentPanel.add(status_panel_, BorderLayout.SOUTH);
return contentPanel;
}
+
+ public boolean isOsrEnabled() {
+ return osr_enabled_;
+ }
+
+ public boolean isTransparentPaintingEnabled() {
+ return transparent_painting_enabled_;
+ }
}
diff --git a/java_tests/tests/detailed/handler/RequestHandler.java b/java_tests/tests/detailed/handler/RequestHandler.java
index 7ebd3c7..45ee1e6 100644
--- a/java_tests/tests/detailed/handler/RequestHandler.java
+++ b/java_tests/tests/detailed/handler/RequestHandler.java
@@ -66,6 +66,12 @@ public class RequestHandler extends CefResourceRequestHandlerAdapter implements
}
@Override
+ public boolean onOpenURLFromTab(CefBrowser browser, CefFrame frame, String target_url,
+ boolean user_gesture) {
+ return false;
+ }
+
+ @Override
public CefResourceRequestHandler getResourceRequestHandler(CefBrowser browser, CefFrame frame,
CefRequest request, boolean isNavigation, boolean isDownload, String requestInitiator,
BoolRef disableDefaultHandling) {
diff --git a/java_tests/tests/detailed/ui/MenuBar.java b/java_tests/tests/detailed/ui/MenuBar.java
index b9d39d9..f92741a 100644
--- a/java_tests/tests/detailed/ui/MenuBar.java
+++ b/java_tests/tests/detailed/ui/MenuBar.java
@@ -19,6 +19,8 @@ import org.cef.network.CefRequest;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -26,15 +28,21 @@ import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
+import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Vector;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
+import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
@@ -71,7 +79,7 @@ public class MenuBar extends JMenuBar {
}
}
- private final BrowserFrame owner_;
+ private final MainFrame owner_;
private final CefBrowser browser_;
private String last_selected_file_ = "";
private final JMenu bookmarkMenu_;
@@ -80,7 +88,7 @@ public class MenuBar extends JMenuBar {
private final CefCookieManager cookieManager_;
private boolean reparentPending_ = false;
- public MenuBar(BrowserFrame owner, CefBrowser browser, ControlPanel control_pane,
+ public MenuBar(MainFrame owner, CefBrowser browser, ControlPanel control_pane,
DownloadDialog downloadDialog, CefCookieManager cookieManager) {
owner_ = owner;
browser_ = browser;
@@ -457,6 +465,64 @@ public class MenuBar extends JMenuBar {
});
testMenu.add(newwindow);
+ JMenuItem screenshotSync = new JMenuItem("Screenshot (on AWT thread, native res)");
+ screenshotSync.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ long start = System.nanoTime();
+ CompletableFuture<BufferedImage> shot = browser.createScreenshot(true);
+ System.out.println("Took screenshot from the AWT event thread in "
+ + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start) + " msecs");
+ try {
+ displayScreenshot(shot.get());
+ } catch (InterruptedException | ExecutionException exc) {
+ // cannot happen, future is already resolved in this case
+ }
+ }
+ });
+ screenshotSync.setEnabled(owner.isOsrEnabled());
+ testMenu.add(screenshotSync);
+
+ JMenuItem screenshotSyncScaled = new JMenuItem("Screenshot (on AWT thread, scaled)");
+ screenshotSyncScaled.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ long start = System.nanoTime();
+ CompletableFuture<BufferedImage> shot = browser.createScreenshot(false);
+ System.out.println("Took screenshot from the AWT event thread in "
+ + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start) + " msecs");
+ try {
+ displayScreenshot(shot.get());
+ } catch (InterruptedException | ExecutionException exc) {
+ // cannot happen, future is already resolved in this case
+ }
+ }
+ });
+ screenshotSyncScaled.setEnabled(owner.isOsrEnabled());
+ testMenu.add(screenshotSyncScaled);
+
+ JMenuItem screenshotAsync = new JMenuItem("Screenshot (from other thread, scaled)");
+ screenshotAsync.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ long start = System.nanoTime();
+ CompletableFuture<BufferedImage> shot = browser.createScreenshot(false);
+ shot.thenAccept((image) -> {
+ System.out.println("Took screenshot asynchronously in "
+ + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start)
+ + " msecs");
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ displayScreenshot(image);
+ }
+ });
+ });
+ }
+ });
+ screenshotAsync.setEnabled(owner.isOsrEnabled());
+ testMenu.add(screenshotAsync);
+
add(fileMenu);
add(bookmarkMenu_);
add(testMenu);
@@ -489,6 +555,18 @@ public class MenuBar extends JMenuBar {
validate();
}
+ private void displayScreenshot(BufferedImage aScreenshot) {
+ JFrame frame = new JFrame("Screenshot");
+ ImageIcon image = new ImageIcon();
+ image.setImage(aScreenshot);
+ frame.setLayout(new FlowLayout());
+ JLabel label = new JLabel(image);
+ label.setPreferredSize(new Dimension(aScreenshot.getWidth(), aScreenshot.getHeight()));
+ frame.add(label);
+ frame.setVisible(true);
+ frame.pack();
+ }
+
public void addBookmarkSeparator() {
bookmarkMenu_.addSeparator();
}
diff --git a/java_tests/tests/junittests/TestFrame.java b/java_tests/tests/junittests/TestFrame.java
index c643280..6fc30f8 100644
--- a/java_tests/tests/junittests/TestFrame.java
+++ b/java_tests/tests/junittests/TestFrame.java
@@ -223,6 +223,12 @@ class TestFrame extends JFrame implements CefLifeSpanHandler, CefLoadHandler, Ce
}
@Override
+ public boolean onOpenURLFromTab(CefBrowser browser, CefFrame frame, String target_url,
+ boolean user_gesture) {
+ return false;
+ }
+
+ @Override
public CefResourceRequestHandler getResourceRequestHandler(CefBrowser browser, CefFrame frame,
CefRequest request, boolean isNavigation, boolean isDownload, String requestInitiator,
BoolRef disableDefaultHandling) {