Skip to content

Commit bc06f6e

Browse files
committed
Merge remote-tracking branch 'upstream-bitbucket/master'
2 parents c5006e0 + d53f417 commit bc06f6e

232 files changed

Lines changed: 8582 additions & 5020 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ set_property(GLOBAL PROPERTY OS_FOLDERS ON)
120120
#
121121

122122
# Specify the CEF distribution version.
123-
set(CEF_VERSION "3.3538.1852.gcb937fc")
123+
if(NOT DEFINED CEF_VERSION)
124+
set(CEF_VERSION "78.2.7+g9cd8bac+chromium-78.0.3904.70")
125+
endif()
124126

125127
# Determine the platform.
126128
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")

build.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<include name="jogl-all.jar"/>
2020
<include name="jogl-all-natives-macosx-universal.jar"/>
2121
</fileset>
22+
<fileset dir="third_party/junit" includes="junit*.jar"/>
2223
</path>
2324

2425
<target name="compile">
@@ -70,6 +71,7 @@
7071
<include name="jogl-all.jar" />
7172
<include name="jogl-all-natives-macosx-universal.jar" />
7273
</classpath>
74+
<classpath dir="third_party/junit" includes="junit*.jar"/>
7375
<option value="-Djava.library.path=$APP_ROOT/Contents/Java/:$APP_ROOT/Contents/Frameworks/Chromium Embedded Framework.framework/Libraries" />
7476
</bundleapp>
7577
</target>

cmake/DownloadCEF.cmake

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,17 @@ function(DownloadCEF platform version download_dir)
2222
set(CEF_DOWNLOAD_PATH "${CEF_DOWNLOAD_DIR}/${CEF_DOWNLOAD_FILENAME}")
2323
if(NOT EXISTS "${CEF_DOWNLOAD_PATH}")
2424
set(CEF_DOWNLOAD_URL "http://opensource.spotify.com/cefbuilds/${CEF_DOWNLOAD_FILENAME}")
25+
string(REPLACE "+" "%2B" CEF_DOWNLOAD_URL_ESCAPED ${CEF_DOWNLOAD_URL})
2526

2627
# Download the SHA1 hash for the binary distribution.
27-
message(STATUS "Downloading ${CEF_DOWNLOAD_PATH}.sha1...")
28-
file(DOWNLOAD "${CEF_DOWNLOAD_URL}.sha1" "${CEF_DOWNLOAD_PATH}.sha1")
28+
message(STATUS "Downloading ${CEF_DOWNLOAD_PATH}.sha1 from ${CEF_DOWNLOAD_URL_ESCAPED}...")
29+
file(DOWNLOAD "${CEF_DOWNLOAD_URL_ESCAPED}.sha1" "${CEF_DOWNLOAD_PATH}.sha1")
2930
file(READ "${CEF_DOWNLOAD_PATH}.sha1" CEF_SHA1)
3031

3132
# Download the binary distribution and verify the hash.
3233
message(STATUS "Downloading ${CEF_DOWNLOAD_PATH}...")
3334
file(
34-
DOWNLOAD "${CEF_DOWNLOAD_URL}" "${CEF_DOWNLOAD_PATH}"
35+
DOWNLOAD "${CEF_DOWNLOAD_URL_ESCAPED}" "${CEF_DOWNLOAD_PATH}"
3536
EXPECTED_HASH SHA1=${CEF_SHA1}
3637
SHOW_PROGRESS
3738
)

java/org/cef/CefApp.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,22 @@ public final class CefVersion {
2626
public final int JCEF_COMMIT_NUMBER;
2727

2828
public final int CEF_VERSION_MAJOR;
29+
public final int CEF_VERSION_MINOR;
30+
public final int CEF_VERSION_PATCH;
2931
public final int CEF_COMMIT_NUMBER;
3032

3133
public final int CHROME_VERSION_MAJOR;
3234
public final int CHROME_VERSION_MINOR;
3335
public final int CHROME_VERSION_BUILD;
3436
public final int CHROME_VERSION_PATCH;
3537

36-
private CefVersion(int jcefCommitNo, int cefMajor, int cefCommitNo, int chrMajor,
37-
int chrMin, int chrBuild, int chrPatch) {
38+
private CefVersion(int jcefCommitNo, int cefMajor, int cefMinor, int cefPatch,
39+
int cefCommitNo, int chrMajor, int chrMin, int chrBuild, int chrPatch) {
3840
JCEF_COMMIT_NUMBER = jcefCommitNo;
3941

4042
CEF_VERSION_MAJOR = cefMajor;
43+
CEF_VERSION_MINOR = cefMinor;
44+
CEF_VERSION_PATCH = cefPatch;
4145
CEF_COMMIT_NUMBER = cefCommitNo;
4246

4347
CHROME_VERSION_MAJOR = chrMajor;
@@ -47,11 +51,12 @@ private CefVersion(int jcefCommitNo, int cefMajor, int cefCommitNo, int chrMajor
4751
}
4852

4953
public String getJcefVersion() {
50-
return CEF_VERSION_MAJOR + "." + CHROME_VERSION_BUILD + "." + JCEF_COMMIT_NUMBER;
54+
return CEF_VERSION_MAJOR + "." + CEF_VERSION_MINOR + "." + CEF_VERSION_PATCH
55+
+ "." + JCEF_COMMIT_NUMBER;
5156
}
5257

5358
public String getCefVersion() {
54-
return CEF_VERSION_MAJOR + "." + CHROME_VERSION_BUILD + "." + CEF_COMMIT_NUMBER;
59+
return CEF_VERSION_MAJOR + "." + CEF_VERSION_MINOR + "." + CEF_VERSION_PATCH;
5560
}
5661

5762
public String getChromeVersion() {

java/org/cef/CefClient.java

Lines changed: 48 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,6 @@
44

55
package org.cef;
66

7-
import java.awt.Component;
8-
import java.awt.Container;
9-
import java.awt.FocusTraversalPolicy;
10-
import java.awt.KeyboardFocusManager;
11-
import java.awt.Point;
12-
import java.awt.Rectangle;
13-
import java.beans.PropertyChangeEvent;
14-
import java.beans.PropertyChangeListener;
15-
import java.nio.ByteBuffer;
16-
import java.util.Collection;
17-
import java.util.HashMap;
18-
import java.util.Vector;
19-
20-
import javax.swing.SwingUtilities;
21-
227
import org.cef.browser.CefBrowser;
238
import org.cef.browser.CefBrowserFactory;
249
import org.cef.browser.CefFrame;
@@ -48,6 +33,7 @@
4833
import org.cef.handler.CefRenderHandler;
4934
import org.cef.handler.CefRequestHandler;
5035
import org.cef.handler.CefResourceHandler;
36+
import org.cef.handler.CefResourceRequestHandler;
5137
import org.cef.handler.CefWindowHandler;
5238
import org.cef.misc.BoolRef;
5339
import org.cef.misc.StringRef;
@@ -57,6 +43,21 @@
5743
import org.cef.network.CefURLRequest;
5844
import org.cef.network.CefWebPluginInfo;
5945

46+
import java.awt.Component;
47+
import java.awt.Container;
48+
import java.awt.FocusTraversalPolicy;
49+
import java.awt.KeyboardFocusManager;
50+
import java.awt.Point;
51+
import java.awt.Rectangle;
52+
import java.beans.PropertyChangeEvent;
53+
import java.beans.PropertyChangeListener;
54+
import java.nio.ByteBuffer;
55+
import java.util.Collection;
56+
import java.util.HashMap;
57+
import java.util.Vector;
58+
59+
import javax.swing.SwingUtilities;
60+
6061
/**
6162
* Client that owns a browser and renderer.
6263
*/
@@ -79,6 +80,19 @@ public class CefClient extends CefClientHandler
7980
private CefRequestHandler requestHandler_ = null;
8081
private boolean isDisposed_ = false;
8182
private volatile CefBrowser focusedBrowser_ = null;
83+
private final PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
84+
@Override
85+
public void propertyChange(PropertyChangeEvent evt) {
86+
if (focusedBrowser_ != null) {
87+
Component browserUI = focusedBrowser_.getUIComponent();
88+
Object oldUI = evt.getOldValue();
89+
if (isPartOf(oldUI, browserUI)) {
90+
focusedBrowser_.setFocus(false);
91+
focusedBrowser_ = null;
92+
}
93+
}
94+
}
95+
};
8296

8397
/**
8498
* The CTOR is only accessible within this package.
@@ -89,20 +103,8 @@ public class CefClient extends CefClientHandler
89103
CefClient() throws UnsatisfiedLinkError {
90104
super();
91105

92-
KeyboardFocusManager km = KeyboardFocusManager.getCurrentKeyboardFocusManager();
93-
km.addPropertyChangeListener(new PropertyChangeListener() {
94-
@Override
95-
public void propertyChange(PropertyChangeEvent evt) {
96-
if (focusedBrowser_ != null) {
97-
Component browserUI = focusedBrowser_.getUIComponent();
98-
Object oldUI = evt.getOldValue();
99-
if (isPartOf(oldUI, browserUI)) {
100-
focusedBrowser_.setFocus(false);
101-
focusedBrowser_ = null;
102-
}
103-
}
104-
}
105-
});
106+
KeyboardFocusManager.getCurrentKeyboardFocusManager().addPropertyChangeListener(
107+
propertyChangeListener);
106108
}
107109

108110
private boolean isPartOf(Object obj, Component browserUI) {
@@ -516,6 +518,12 @@ public void onAfterCreated(CefBrowser browser) {
516518
if (lifeSpanHandler_ != null) lifeSpanHandler_.onAfterCreated(browser);
517519
}
518520

521+
@Override
522+
public void onAfterParentChanged(CefBrowser browser) {
523+
if (browser == null) return;
524+
if (lifeSpanHandler_ != null) lifeSpanHandler_.onAfterParentChanged(browser);
525+
}
526+
519527
@Override
520528
public boolean doClose(CefBrowser browser) {
521529
if (browser == null) return false;
@@ -548,6 +556,8 @@ private void cleanupBrowser(int identifier) {
548556
}
549557

550558
if (browser_.isEmpty() && isDisposed_) {
559+
KeyboardFocusManager.getCurrentKeyboardFocusManager().removePropertyChangeListener(
560+
propertyChangeListener);
551561
removeContextMenuHandler(this);
552562
removeDialogHandler(this);
553563
removeDisplayHandler(this);
@@ -709,49 +719,22 @@ public boolean onBeforeBrowse(CefBrowser browser, CefFrame frame, CefRequest req
709719
}
710720

711721
@Override
712-
public boolean onBeforeResourceLoad(CefBrowser browser, CefFrame frame, CefRequest request) {
713-
if (requestHandler_ != null && browser != null)
714-
return requestHandler_.onBeforeResourceLoad(browser, frame, request);
715-
return false;
716-
}
717-
718-
@Override
719-
public CefResourceHandler getResourceHandler(
720-
CefBrowser browser, CefFrame frame, CefRequest request) {
721-
if (requestHandler_ != null && browser != null)
722-
return requestHandler_.getResourceHandler(browser, frame, request);
722+
public CefResourceRequestHandler getResourceRequestHandler(CefBrowser browser, CefFrame frame,
723+
CefRequest request, boolean isNavigation, boolean isDownload, String requestInitiator,
724+
BoolRef disableDefaultHandling) {
725+
if (requestHandler_ != null && browser != null) {
726+
return requestHandler_.getResourceRequestHandler(browser, frame, request, isNavigation,
727+
isDownload, requestInitiator, disableDefaultHandling);
728+
}
723729
return null;
724730
}
725731

726732
@Override
727-
public void onResourceRedirect(CefBrowser browser, CefFrame frame, CefRequest request,
728-
CefResponse response, StringRef new_url) {
729-
if (requestHandler_ != null && browser != null)
730-
requestHandler_.onResourceRedirect(browser, frame, request, response, new_url);
731-
}
732-
733-
@Override
734-
public boolean onResourceResponse(
735-
CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response) {
736-
if (requestHandler_ != null && browser != null)
737-
return requestHandler_.onResourceResponse(browser, frame, request, response);
738-
return false;
739-
}
740-
741-
@Override
742-
public void onResourceLoadComplete(CefBrowser browser, CefFrame frame, CefRequest request,
743-
CefResponse response, CefURLRequest.Status status, long receivedContentLength) {
744-
if (requestHandler_ != null && browser != null)
745-
requestHandler_.onResourceLoadComplete(
746-
browser, frame, request, response, status, receivedContentLength);
747-
}
748-
749-
@Override
750-
public boolean getAuthCredentials(CefBrowser browser, CefFrame frame, boolean isProxy,
733+
public boolean getAuthCredentials(CefBrowser browser, String origin_url, boolean isProxy,
751734
String host, int port, String realm, String scheme, CefAuthCallback callback) {
752735
if (requestHandler_ != null && browser != null)
753736
return requestHandler_.getAuthCredentials(
754-
browser, frame, isProxy, host, port, realm, scheme, callback);
737+
browser, origin_url, isProxy, host, port, realm, scheme, callback);
755738
return false;
756739
}
757740

@@ -763,12 +746,6 @@ public boolean onQuotaRequest(
763746
return false;
764747
}
765748

766-
@Override
767-
public void onProtocolExecution(CefBrowser browser, String url, BoolRef allow_os_execution) {
768-
if (requestHandler_ != null && browser != null)
769-
requestHandler_.onProtocolExecution(browser, url, allow_os_execution);
770-
}
771-
772749
@Override
773750
public boolean onCertificateError(CefBrowser browser, ErrorCode cert_error, String request_url,
774751
CefRequestCallback callback) {

java/org/cef/CefSettings.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ public enum LogSeverity {
3939
*/
4040
LOGSEVERITY_ERROR,
4141

42+
/**
43+
* FATAL logging.
44+
*/
45+
LOGSEVERITY_FATAL,
46+
4247
/**
4348
* Completely disable logging.
4449
*/

java/org/cef/browser/CefBrowser.java

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44

55
package org.cef.browser;
66

7-
import java.awt.Component;
8-
import java.awt.Point;
9-
import java.util.Vector;
10-
117
import org.cef.CefClient;
128
import org.cef.callback.CefPdfPrintCallback;
139
import org.cef.callback.CefRunFileDialogCallback;
@@ -18,6 +14,10 @@
1814
import org.cef.misc.CefPdfPrintSettings;
1915
import org.cef.network.CefRequest;
2016

17+
import java.awt.Component;
18+
import java.awt.Point;
19+
import java.util.Vector;
20+
2121
/**
2222
* Interface representing a browser.
2323
*/
@@ -202,17 +202,6 @@ public interface CefBrowser {
202202
*/
203203
public void loadURL(String url);
204204

205-
/**
206-
* Load the contents of val with the specified dummy url.
207-
* url should have a standard scheme (for example, http scheme) or
208-
* behaviors like link clicks and web security restrictions may not
209-
* behave as expected.
210-
*
211-
* @param val Content to be displayed.
212-
* @param url dummy url to be used for.
213-
*/
214-
public void loadString(String val, String url);
215-
216205
/**
217206
* Execute a string of JavaScript code in this frame. The url
218207
* parameter is the URL where the script in question can be found, if any.

java/org/cef/browser/CefBrowserOsr.java

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,23 @@
44

55
package org.cef.browser;
66

7+
import com.jogamp.nativewindow.NativeSurface;
8+
import com.jogamp.opengl.GLAutoDrawable;
9+
import com.jogamp.opengl.GLCapabilities;
10+
import com.jogamp.opengl.GLEventListener;
11+
import com.jogamp.opengl.GLProfile;
12+
import com.jogamp.opengl.awt.GLCanvas;
13+
14+
import org.cef.CefClient;
15+
import org.cef.callback.CefDragData;
16+
import org.cef.handler.CefRenderHandler;
17+
718
import java.awt.Component;
819
import java.awt.Cursor;
920
import java.awt.Graphics;
21+
import java.awt.Point;
22+
import java.awt.Rectangle;
23+
import java.awt.dnd.DropTarget;
1024
import java.awt.event.FocusEvent;
1125
import java.awt.event.FocusListener;
1226
import java.awt.event.KeyEvent;
@@ -16,24 +30,11 @@
1630
import java.awt.event.MouseMotionListener;
1731
import java.awt.event.MouseWheelEvent;
1832
import java.awt.event.MouseWheelListener;
19-
import java.awt.Point;
20-
import java.awt.Rectangle;
2133
import java.nio.ByteBuffer;
2234

23-
import com.jogamp.nativewindow.NativeSurface;
24-
import com.jogamp.opengl.awt.GLCanvas;
25-
import com.jogamp.opengl.GLAutoDrawable;
26-
import com.jogamp.opengl.GLEventListener;
27-
import com.jogamp.opengl.GLProfile;
28-
import com.jogamp.opengl.GLCapabilities;
29-
3035
import javax.swing.MenuSelectionManager;
3136
import javax.swing.SwingUtilities;
3237

33-
import org.cef.CefClient;
34-
import org.cef.callback.CefDragData;
35-
import org.cef.handler.CefRenderHandler;
36-
3738
/**
3839
* This class represents an off-screen rendered browser.
3940
* The visibility of this class is "package". To create a new
@@ -89,7 +90,7 @@ private synchronized long getWindowHandle() {
8990
surface.lockSurface();
9091
window_handle_ = getWindowHandle(surface.getSurfaceHandle());
9192
surface.unlockSurface();
92-
assert(window_handle_ != 0);
93+
assert (window_handle_ != 0);
9394
}
9495
}
9596
return window_handle_;
@@ -209,6 +210,9 @@ public void focusGained(FocusEvent e) {
209210
setFocus(true);
210211
}
211212
});
213+
214+
// Connect the Canvas with a drag and drop listener.
215+
new DropTarget(canvas_, new CefDropTargetListenerOsr(this));
212216
}
213217

214218
@Override

0 commit comments

Comments
 (0)