美好的一天,伙计们。我正在使用 JxBrowser 来显示网页,但是在连接到 Google 网站时它给了我 ssl 错误:
但它适用于维基百科等网站:
这是启动时运行的代码,用于在新选项卡中加载 google.com:
private void createNewTab(){
Tab tempTab = new Tab();
tempTab.setText("New Tab");
AnchorPane tempAnchorPane = new AnchorPane();
Browser tempBrowser = new Browser();
BrowserView view = new BrowserView(tempBrowser);
view.getBrowser().loadURL("https://google.com");
tempAnchorPane.getChildren().add(view);
tempAnchorPane.setTopAnchor(view, 0.0);
tempAnchorPane.setLeftAnchor(view, 0.0);
tempAnchorPane.setRightAnchor(view, 0.0);
tempAnchorPane.setBottomAnchor(view, 0.0);
browserToTabMap.put(tempBrowser, tempTab);
tempTab.setContent(view);
rootPane.getTabs().add(tempTab);
}
以及在启动时调用该函数的代码:
@FXML
void initialize() {
assert rootPane != null : "fx:id=\"rootPane\" was not injected: check your FXML file 'Expedition.fxml'.";
assert addressBar != null : "fx:id=\"addressBar\" was not injected: check your FXML file 'Expedition.fxml'.";
BrowserView view = new BrowserView();
root.addEventFilter(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>(){
@Override
public void handle(KeyEvent event) {
if(processKeys(event)){
System.out.println("Consuming event " + event);
event.consume();
}
}
});
root.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>(){
@Override
public void handle(KeyEvent event) {
if(event.getCode() == KeyCode.ESCAPE){
insertMode = false;
System.out.println("Coming out of insert mode");
rootPane.getSelectionModel().getSelectedItem().getContent().requestFocus();
event.consume();
}
}
});
addressBar.focusedProperty().addListener(new ChangeListener<Boolean>(){
@Override
public void changed(ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue)
{
if (newPropertyValue)
{
System.out.println("addressBar focused");
}
else
{
System.out.println("addressBar out of focus");
insertMode = false;
}
}
});
createNewTab();
Runnable temp = () -> {
try{
Thread.sleep(5000);
}
catch(InterruptedException exc){
}
Platform.runLater(new Runnable(){
@Override public void run(){
((Stage)rootPane.getScene().getWindow()).setMaximized(true);
rootPane.getSelectionModel().getSelectedItem().getContent().requestFocus();
}
});
};
Thread tempThr = new Thread(temp);
temp.run();
currentTab = 0;
}
以下是 JxBrowser 命令行输出的日志:
04:52:38 INFO: OS name: Linux
04:52:38 INFO: JRE version: 1.8.0_77 32-bit
04:52:38 INFO: JxBrowser version: 6.3
04:52:38 INFO: JxBrowser type: HEAVYWEIGHT
04:52:38 INFO: Starting IPC...
04:52:38 INFO: Starting IPC Server...
04:52:38 INFO: Starting socket server
04:52:38 INFO: Starting socket server at port 1101...
04:52:38 INFO: Starting IPC Process...
04:52:38 INFO: Starting Chromium process...
04:52:38 INFO: The '/lib/i386-linux-gnu/libudev.so.0' library exists: FALSE
04:52:38 INFO: The '/tmp/jxbrowser-chromium-43.0.2357.52.6.3/libudev.so.0' library exists: TRUE
04:52:38 INFO: The '/lib/i386-linux-gnu/libgcrypt.so.11' library exists: FALSE
04:52:38 INFO: The '/tmp/jxbrowser-chromium-43.0.2357.52.6.3/libgcrypt.so.11' library exists: TRUE
04:52:38 INFO: The '/lib/i386-linux-gnu/libcrypto.so.1.0.0' library exists: FALSE
04:52:38 INFO: The '/tmp/jxbrowser-chromium-43.0.2357.52.6.3/libcrypto.so.1.0.0' library exists: TRUE
04:52:38 INFO: Command line: /tmp/jxbrowser-chromium-43.0.2357.52.6.3/jxbrowser-chromium 1101 2069
04:52:39 INFO: [0511/165239:ERROR:browser_main_loop.cc(172)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
04:52:39 INFO: Shared Memory Name: JXB1-2069
04:52:39 INFO: IPC connection has been established. Connection ID: 152876992
04:52:39 INFO: READ: OnHelloMessage{type=OnHelloMessage, uid=1, message='cid:0,type:Main'}, null
04:52:39 INFO: Channel has been accepted: SocketChannel{cid=0, bid=-1, type=Main}
04:52:39 INFO: IPC is started.
04:52:39 INFO: WRITE: CreateBrowserMessage{type=CreateBrowser, uid=0, channelId=0, contextId=-1, cacheDir='/tmp/jxbrowser-chromium-43.0.2357.52.6.3/data/Cache', memoryDir='/tmp/jxbrowser-chromium-43.0.2357.52.6.3/data/Memory', dataDir='/tmp/jxbrowser-chromium-43.0.2357.52.6.3/data', currentLocale='en-us', proxyType=-1, proxyRules='null', proxyBypassRules='null', proxyAutoConfigURL='null', defaultZoomLevel=0.0, isOffScreenMode=false}, SocketInfo{cid=0, bid=-1, channelType=Main}
04:52:39 INFO: Shared Memory Name: JXB2-2069
04:52:39 INFO: IPC connection has been established. Connection ID: 149372272
04:52:39 INFO: [0511/165239:FATAL:scoped_file.cc(29)] Check failed: 0 == IGNORE_EINTR(close(fd)). : Bad file descriptor
04:52:39 INFO: READ: OnHelloMessage{type=OnHelloMessage, uid=2, message='cid:0,bid:0,type:Browser'}, null
04:52:39 INFO: Channel has been accepted: SocketChannel{cid=0, bid=0, type=Browser}
04:52:39 INFO: Channel is connected: SocketChannel{cid=0, bid=0, type=Browser}
04:52:39 INFO: WRITE: SetNetworkDelegateConfigMessage{type=SetNetworkDelegateConfig, uid=1, browserContextId=-1, disableMessages=true}, SocketInfo{cid=0, bid=-1, channelType=Main}
04:52:39 INFO: WRITE: LoadURLMessage{type=LoadURL, uid=2, url='about:blank', frameId=-1, extraHeaders='null', postData=null}, SocketInfo{cid=0, bid=0, channelType=Browser}
04:52:40 INFO: READ: com.teamdev.jxbrowser.chromium.internal.ipc.message.OnRenderViewCreatedMessage@118143, SocketInfo{cid=0, bid=0, channelType=Browser}
04:52:40 INFO: [0511/165240:ERROR:renderer_main.cc(200)] Running without renderer sandbox
04:52:40 INFO: Shared Memory Name: JXB3-2069
04:52:40 INFO: IPC connection has been established. Connection ID: 149380056
04:52:40 INFO: READ: OnHelloMessage{type=OnHelloMessage, uid=1, message='cid:0,bid:0,type:Render'}, null
04:52:40 INFO: Channel has been accepted: SocketChannel{cid=0, bid=0, type=Render}
04:52:40 INFO: Channel is connected: SocketChannel{cid=0, bid=0, type=Render}
04:52:40 INFO: READ: OnHandleLoadMessage{type=OnHandleLoadMessage, uid=2, url='about:blank', loadType=5, loadPolicy=2, isBackForward=false, isRedirect=false, cancel=false}, SocketInfo{cid=0, bid=0, channelType=Render}
04:52:40 INFO: WRITE: OnHandleLoadMessage{type=OnHandleLoadMessage, uid=2, url='about:blank', loadType=5, loadPolicy=2, isBackForward=false, isRedirect=false, cancel=false}, SocketInfo{cid=0, bid=0, channelType=Render}
04:52:41 INFO: READ: OnDidStartProvisionalLoadForFrameMessage{type=OnDidStartProvisionalLoadForFrame, uid=4, frameId=1, parentFrameId=-1, isMainFrame=true, validatedURL='about:blank', isErrorPage=false}, SocketInfo{cid=0, bid=0, channelType=Browser}
04:52:41 INFO: READ: OnDidCommitProvisionalLoadForFrameMessage{type=OnDidCommitProvisionalLoadForFrame, uid=5, frameId=1, isMainFrame=true, transitionType=1, url='about:blank'}, SocketInfo{cid=0, bid=0, channelType=Browser}
04:52:41 INFO: READ: OnStatusChangeMessage{type=OnStatusChangeMessage, uid=6, url=''}, SocketInfo{cid=0, bid=0, channelType=Browser}
04:52:41 INFO: READ: OnDocumentLoadedInFrameMessage{type=OnDocumentLoadedInFrame, uid=7, frameId=1, isMainFrame=true}, SocketInfo{cid=0, bid=0, channelType=Browser}
04:52:41 INFO: READ: OnDidFinishLoadMessage{type=OnDidFinishLoad, uid=8, frameId=1, isMainFrame=true, validatedURL='about:blank'}, SocketInfo{cid=0, bid=0, channelType=Browser}
04:52:41 INFO: JxBrowser type: HEAVYWEIGHT
04:52:41 INFO: Starting IPC...
04:52:41 INFO: IPC is already started.
04:52:41 INFO: WRITE: CreateBrowserMessage{type=CreateBrowser, uid=3, channelId=1, contextId=-1, cacheDir='/tmp/jxbrowser-chromium-43.0.2357.52.6.3/data/Cache', memoryDir='/tmp/jxbrowser-chromium-43.0.2357.52.6.3/data/Memory', dataDir='/tmp/jxbrowser-chromium-43.0.2357.52.6.3/data', currentLocale='en-us', proxyType=-1, proxyRules='null', proxyBypassRules='null', proxyAutoConfigURL='null', defaultZoomLevel=0.0, isOffScreenMode=false}, SocketInfo{cid=0, bid=-1, channelType=Main}
04:52:41 INFO: Shared Memory Name: JXB4-2069
04:52:41 INFO: IPC connection has been established. Connection ID: 152274456
04:52:41 INFO: READ: OnHelloMessage{type=OnHelloMessage, uid=9, message='cid:1,bid:1,type:Browser'}, null
04:52:41 INFO: Channel has been accepted: SocketChannel{cid=1, bid=1, type=Browser}
04:52:41 INFO: Channel is connected: SocketChannel{cid=1, bid=1, type=Browser}
04:52:41 INFO: WRITE: SetNetworkDelegateConfigMessage{type=SetNetworkDelegateConfig, uid=4, browserContextId=-1, disableMessages=true}, SocketInfo{cid=0, bid=-1, channelType=Main}
04:52:41 INFO: WRITE: LoadURLMessage{type=LoadURL, uid=5, url='about:blank', frameId=-1, extraHeaders='null', postData=null}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: READ: com.teamdev.jxbrowser.chromium.internal.ipc.message.OnRenderViewCreatedMessage@1c7f150, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: [0511/165241:ERROR:renderer_main.cc(200)] Running without renderer sandbox
04:52:41 INFO: Shared Memory Name: JXB5-2069
04:52:41 INFO: IPC connection has been established. Connection ID: 152275960
04:52:41 INFO: READ: OnHelloMessage{type=OnHelloMessage, uid=1, message='cid:1,bid:1,type:Render'}, null
04:52:41 INFO: Channel has been accepted: SocketChannel{cid=1, bid=1, type=Render}
04:52:41 INFO: Channel is connected: SocketChannel{cid=1, bid=1, type=Render}
04:52:41 INFO: READ: OnHandleLoadMessage{type=OnHandleLoadMessage, uid=2, url='about:blank', loadType=5, loadPolicy=2, isBackForward=false, isRedirect=false, cancel=false}, SocketInfo{cid=1, bid=1, channelType=Render}
04:52:41 INFO: WRITE: OnHandleLoadMessage{type=OnHandleLoadMessage, uid=2, url='about:blank', loadType=5, loadPolicy=2, isBackForward=false, isRedirect=false, cancel=false}, SocketInfo{cid=1, bid=1, channelType=Render}
04:52:41 INFO: READ: OnDidStartProvisionalLoadForFrameMessage{type=OnDidStartProvisionalLoadForFrame, uid=11, frameId=1, parentFrameId=-1, isMainFrame=true, validatedURL='about:blank', isErrorPage=false}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: READ: OnDidCommitProvisionalLoadForFrameMessage{type=OnDidCommitProvisionalLoadForFrame, uid=12, frameId=1, isMainFrame=true, transitionType=1, url='about:blank'}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: READ: OnStatusChangeMessage{type=OnStatusChangeMessage, uid=13, url=''}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: READ: OnDocumentLoadedInFrameMessage{type=OnDocumentLoadedInFrame, uid=14, frameId=1, isMainFrame=true}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: READ: OnDidFinishLoadMessage{type=OnDidFinishLoad, uid=15, frameId=1, isMainFrame=true, validatedURL='about:blank'}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: WRITE: LoadURLMessage{type=LoadURL, uid=6, url='https://google.com', frameId=-1, extraHeaders='null', postData=null}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: READ: OnHandleLoadMessage{type=OnHandleLoadMessage, uid=3, url='https://google.com/', loadType=5, loadPolicy=2, isBackForward=false, isRedirect=false, cancel=false}, SocketInfo{cid=1, bid=1, channelType=Render}
04:52:41 INFO: WRITE: OnHandleLoadMessage{type=OnHandleLoadMessage, uid=3, url='https://google.com/', loadType=5, loadPolicy=2, isBackForward=false, isRedirect=false, cancel=false}, SocketInfo{cid=1, bid=1, channelType=Render}
04:52:41 INFO: READ: OnDidStartProvisionalLoadForFrameMessage{type=OnDidStartProvisionalLoadForFrame, uid=16, frameId=1, parentFrameId=-1, isMainFrame=true, validatedURL='https://google.com/', isErrorPage=false}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:41 INFO: READ: OnShouldBeginRequestMessage{type=OnShouldBeginRequest, uid=17, browserContextId=-1, url='https://google.com/', method='GET', resourceType=0, cancel=false}, SocketInfo{cid=0, bid=-1, channelType=Main}
04:52:41 INFO: WRITE: OnShouldBeginRequestMessage{type=OnShouldBeginRequest, uid=17, browserContextId=-1, url='https://google.com/', method='GET', resourceType=0, cancel=false}, SocketInfo{cid=0, bid=-1, channelType=Main}
04:52:41 INFO: READ: OnCanGetCookiesMessage{type=OnCanGetCookies, uid=18, url='https://google.com/', cookies='', browserContextId=-1, canGetCookies=true}, SocketInfo{cid=0, bid=-1, channelType=Main}
04:52:41 INFO: WRITE: OnCanGetCookiesMessage{type=OnCanGetCookies, uid=18, url='https://google.com/', cookies='', browserContextId=-1, canGetCookies=true}, SocketInfo{cid=0, bid=-1, channelType=Main}
04:52:43 INFO: [0511/165243:WARNING:nss_ssl_util.cc(370)] Unknown SSL error -12218 (SSL_ERROR_ENCRYPTION_FAILURE) mapped to net::ERR_SSL_PROTOCOL_ERROR
04:52:45 INFO: READ: OnDidFailProvisionalLoadMessage{type=OnDidFailProvisionalLoad, uid=19, frameId=1, isMainFrame=true, validatedURL='https://google.com/', errorCode=-107, errorDescription='SSL protocol error.'}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:45 INFO: READ: OnDidStartProvisionalLoadForFrameMessage{type=OnDidStartProvisionalLoadForFrame, uid=20, frameId=1, parentFrameId=-1, isMainFrame=true, validatedURL='data:text/html,chromewebdata', isErrorPage=true}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:45 INFO: READ: OnDidCommitProvisionalLoadForFrameMessage{type=OnDidCommitProvisionalLoadForFrame, uid=21, frameId=1, isMainFrame=true, transitionType=1, url='https://google.com/'}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:45 INFO: READ: OnStatusChangeMessage{type=OnStatusChangeMessage, uid=22, url=''}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:45 INFO: READ: OnDocumentAvailableInMainFrameMessage{type=OnDocumentAvailableInMainFrame, uid=23}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:45 INFO: READ: OnDidCreateScriptContextMessage{type=OnDidCreateScriptContext, uid=4, frameId=-1, contextPtr=149308800}, SocketInfo{cid=1, bid=1, channelType=Render}
04:52:45 INFO: WRITE: OnDidCreateScriptContextMessage{type=OnDidCreateScriptContext, uid=4, frameId=-1, contextPtr=149308800}, SocketInfo{cid=1, bid=1, channelType=Render}
04:52:45 INFO: READ: OnTitleChangeMessage{type=OnTitleChange, uid=24, title='https://google.com/ failed to load'}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:45 INFO: READ: OnDocumentLoadedInFrameMessage{type=OnDocumentLoadedInFrame, uid=25, frameId=1, isMainFrame=true}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:46 INFO: READ: OnDidFinishLoadMessage{type=OnDidFinishLoad, uid=26, frameId=1, isMainFrame=true, validatedURL='data:text/html,chromewebdata'}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameMovedMessage{type=FrameMoved, uid=7, x=13, y=113, width=1000, height=937}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameSetBoundsMessage{type=FrameSetBounds, uid=8, x=0, y=62, width=1000, height=937}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameMovedMessage{type=FrameMoved, uid=9, x=13, y=113, width=1000, height=937}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameFocusMessage{type=FrameFocus, uid=10, focus=false}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameAttachMessage{type=FrameAttach, uid=11, windowHandle=62914563}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: SetDragDropEnabledMessage{type=SetDragDropEnabled, uid=12, enabled='true'}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameSetBoundsMessage{type=FrameSetBounds, uid=13, x=0, y=63, width=1000, height=937}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameMovedMessage{type=FrameMoved, uid=14, x=0, y=114, width=1024, height=630}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameSetBoundsMessage{type=FrameSetBounds, uid=15, x=0, y=63, width=1024, height=630}, SocketInfo{cid=1, bid=1, channelType=Browser}
04:52:48 INFO: WRITE: FrameMovedMessage{type=FrameMoved, uid=16, x=0, y=114, width=1024, height=630}, SocketInfo{cid=1, bid=1, channelType=Browser}