From 7.7.1 to 7.8
In JxBrowser 7.8 the Chromium engine has been upgraded to version 79. This Chromium version has several breaking changes in the source code that affect the public API of JxBrowser. In this migration guide we describe what API has been removed in 7.8 and what alternatives you should use instead.
Downloads
Accepting download
v7.7.1
In order to accept a file download request the following callback is used:
Downloads downloads = engine.downloads();
downloads.set(StartDownloadCallback.class, (params, tell) -> tell.cancel());
val downloads = engine.downloads()
downloads.set(StartDownloadCallback::class.java,
StartDownloadCallback { params, tell -> tell.cancel() }
)
v7.8
In 7.8 this functionality has been moved to Browser
, so now you can accept a file download request for each Browser
instance independently. For example:
browser.set(StartDownloadCallback.class, (params, tell) -> tell.cancel());
browser.set(StartDownloadCallback::class.java,
StartDownloadCallback { params, tell -> tell.cancel() }
)
Network
Accessing browser
v7.7.1
network.set(BeforeSendHeadersCallback.class, params -> {
params.browser().ifPresent(browser -> {});
...
});
network.set(BeforeUrlRequestCallback.class, params -> {
params.browser().ifPresent(browser -> {});
...
});
network.set(ReceiveHeadersCallback.class, params -> {
params.browser().ifPresent(browser -> {});
...
});
network.set(BeforeSendHeadersCallback::class.java,
BeforeSendHeadersCallback { params ->
params.browser().ifPresent{ browser -> {}}
}
)
network.set(BeforeUrlRequestCallback::class.java,
BeforeUrlRequestCallback { params ->
params.browser().ifPresent{ browser -> {}}
}
)
network.set(ReceiveHeadersCallback::class.java,
ReceiveHeadersCallback { params ->
params.browser().ifPresent{ browser -> {}}
}
)
v7.8
network.set(BeforeSendHeadersCallback.class, params -> {
params.urlRequest().browser().ifPresent(browser -> {});
...
});
network.set(BeforeUrlRequestCallback.class, params -> {
params.urlRequest().browser().ifPresent(browser -> {});
...
});
network.set(ReceiveHeadersCallback.class, params -> {
params.urlRequest().browser().ifPresent(browser -> {});
...
});
network.set(BeforeSendHeadersCallback::class.java,
BeforeSendHeadersCallback { params ->
params.urlRequest().browser().ifPresent{browser -> {}}
...
}
)
network.set(BeforeUrlRequestCallback::class.java,
BeforeUrlRequestCallback { params ->
params.urlRequest().browser().ifPresent{browser -> {}}
...
}
)
network.set(ReceiveHeadersCallback::class.java,
ReceiveHeadersCallback { params ->
params.urlRequest().browser().ifPresent{browser -> {}}
...
}
)
BytesSent
v7.7.1
network.on(BytesSent.class, event -> {
int bytesSentCount = event.count();
});
network.on(BytesSent.class) { event ->
val bytesSentCount = event.count()
});
v7.8
network.on(RequestCompleted.class, event -> {
long bytesSent = event.urlRequest().totalBytesSent();
});
network.on(RequestCompleted.class) { event ->
val bytesSent = event.urlRequest().totalBytesSent()
});
BytesReceived
v7.7.1
network.on(BytesReceived.class, event -> {
int bytesReceivedCount = event.count();
});
network.on(BytesReceived.class) { event ->
val bytesReceivedCount = event.count()
});
v7.8
network.on(RequestCompleted.class, event -> {
long bytesReceived = event.urlRequest().totalBytesReceived();
});
network.on(RequestCompleted.class) { event ->
val bytesReceived = event.urlRequest().totalBytesReceived()
});
Content
Taking Bitmap of a Web Page
The deprecated com.teamdev.jxbrowser.view.javafx.BitmapUtil
and com.teamdev.jxbrowser.view.swing.BitmapUtil
classes have been removed. Use the com.teamdev.jxbrowser.view.swing.graphics.BitmapImage
and com.teamdev.jxbrowser.view.javafx.graphics.BitmapImage
classes instead.
Removed API
The following classes and methods have been removed because the corresponding functionality in Chromium 79 does not exist anymore:
com.teamdev.jxbrowser.net.event.TransactionStarted
com.teamdev.jxbrowser.net.callback.CanAccessFileCallback.url()
com.teamdev.jxbrowser.browser.callback.CertificateErrorCallback.resourceType()