Skip to content

Commit 09d44b2

Browse files
committed
small forge compat change, unsure exactly how necessary it'll be, but I'm putting it here incase
1 parent 36c0b62 commit 09d44b2

1 file changed

Lines changed: 32 additions & 1 deletion

File tree

java/org/cef/handler/CefResourceHandlerAdapter.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package org.cef.handler;
66

77
import org.cef.callback.CefCallback;
8+
import org.cef.misc.BoolRef;
89
import org.cef.misc.IntRef;
910
import org.cef.misc.StringRef;
1011
import org.cef.network.CefCookie;
@@ -17,8 +18,38 @@
1718
* This class exists as convenience for creating handler objects.
1819
*/
1920
public abstract class CefResourceHandlerAdapter implements CefResourceHandler {
21+
// forge causes some problems without this
22+
private static final ClassLoader clr;
23+
24+
static {
25+
try {
26+
// reason: prevent class loading issues with forge
27+
Class<?>[] LOADER = new Class[] {
28+
IntRef.class,
29+
BoolRef.class,
30+
CefRequest.class,
31+
StringRef.class,
32+
Class.forName("org.cef.callback.CefCallback_N"),
33+
Class.forName("org.cef.network.CefResponse_N")
34+
};
35+
} catch (Throwable err) {
36+
}
37+
38+
ClassLoader c = Thread.currentThread().getContextClassLoader();
39+
if (c == null) c = CefResourceHandlerAdapter.class.getClassLoader();
40+
clr = c;
41+
}
42+
43+
/**
44+
* override {@link CefResourceHandlerAdapter#handleRequest(CefRequest, CefCallback)} instead
45+
*/
2046
@Override
21-
public boolean processRequest(CefRequest request, CefCallback callback) {
47+
public final boolean processRequest(CefRequest request, CefCallback callback) {
48+
Thread.currentThread().setContextClassLoader(clr); // reason: prevent class loading issues with forge
49+
return handleRequest(request, callback);
50+
}
51+
52+
public boolean handleRequest(CefRequest request, CefCallback callback) {
2253
return false;
2354
}
2455

0 commit comments

Comments
 (0)