arsd.webview work, public imports in adrdox changed

Posted 2021-11-08

arsd.webview revived, new web demo will have to wait. Also made adrdox public imports list integrated with other members.

Core D Development Statistics

In the community

Community announcements

See more at the announce forum.

What Adam is working on

I know last week I said I'd clean up my new web thing and talk about it more at length, but... I got distracted again. Will come back to it soon though.

What I did do though is I started writing a browser randomly last Thursday, based on a copy of the Chromium Embedded Framework I had sitting on my hard drive from last year on Linux, and some bindings to Microsoft WebView2 from even longer ago for Windows. The basics are up, using a new minigui WebViewWidget with a little bit of UI glue. Nothing too special, but it is something I'm in control of the UI (for the most part at least), so I can fix some things that aggravate me about other browsers.

I haven't decided for sure yet if I am going to make a generic WebView class that stands alone, or if I'll just leave the low level helpers in arsd.webview, while keeping the high level interface dependent on minigui. The main reason for that is just minigui already has the helper machinery for cross-thread events. But... most the real work there is done in simpledisplay, so I could possibly cut out a layer. Right now I'm leaning toward having the minigui dependency - compared to cef, it is nothing anyway.

Regardless, the component will certainly be reusable for whatever purpose you need. It is conceivable you might use it for the whole variety of uses of a web view, including using it as your main application UI (making it the only child of minigui's Window class would give you a whole app web view).

Just remember you will need webview's hefty outside dependencies and if you use the cef backend, it is not stable, meaning your user installs will have to version match with what I used to make the bindings. I did make a program to help auto-translate the bindings so updating isn't too bad, but it still must match.

Given the caveats I'm not sure how useful this will be to the outside, but I'm sure people can find uses for it once it stabilizes. It is popular to do web tech frontends and now that will be easier from D.