API request: WebEngine settings

Richard Bair richard.bair at oracle.com
Wed May 9 18:07:48 PDT 2012

Hi Peter,

I gave it a few days to see if I'd change my mind but really I like adding the settings directly on WebEngine. I'm not bothered if a bunch of settings get put there. I am bothered by the fact that in FXML it is not a 1-1 mapping (ie, we alias from <WebView>).

I'm wondering how this plays in SceneBuilder as well. Right now I don't think SB has any special support so you cannot set any web engine specific settings.

As m inch as possible we want to keep the FXML / CSS / API in sync such that you can look at the API and know how to express something in FXML or CSS. That is, the process would be mechanical. So I would have thought:

    <WebEngine location="http://oracle.com" />

And likewise, if settings were a separate class, I would then have a WebSettings tag within the WebEngine tag. And in SB we would have to show that hierarchy as well. Does that make sense? By synthesizing a property on WebView, we now have to face resolving:

<WebView location="http://apple.com">
    <WebEngine location="http://oracle.com" />

What do we do? I think this illustrates one of the problems with not having a 1-1 mapping. So if we have WebSettings, then we have an extra level of nesting -- in code, in SB, and in FXML. This is why I have wondered about whether we ought not just roll these settings into WebEngine.


On Apr 27, 2012, at 5:47 AM, Peter Zhelezniakov <Peter.Zhelezniakov at oracle.com> wrote:

> On Apr 26, 2012, at 6:53 PM, Richard Bair wrote:
>> What is the benefit of having Settings vs adding properties to WebEngine? What would it look like from FXML?
> Well, Webkit has 100+ different customizable settings. I don't think we need all of them, but I can imagine us having 20-30 settings (e.g. whether to load images, max number of network connections per server, turn page caching on/off, user agent ID string etc). So I thought a separate namespace for settings was appropriate.
> From FXML standpoint the single entry point for javafx.scene.web is currently WebView. It has a custom builder class that passes some properties to the underlying WebEngine, e.g.
>    <WebView location="..."/>   calls   webView.getEngine().setLocation(...);
> and we can extend it so that
>    <WebView javaScriptEnabled="true"/>   calls   webEngine.getEngine().getSettings().setJavaScriptEnabled(true);
> Thanks!
> -- 
> Peter

More information about the openjfx-dev mailing list