Thread: PoC: Browser based runtime

PoC: Browser based runtime

From
Dave Page
Date:
I've been looking at various options for getting rid of QtWebEngine,
and had an idea that maybe we don't actually need any C++ code at all.

Attached is a rough PoC patch that implements such a setup. If running
with SERVER_MODE == True, things are as they are now, however, if
SERVER_MODE == False then:

- We enable key generation for client validation.

- A thread is started to monitor the server for startup completion.

- Once the server is responding, a browser is launched using selenium
and pointed at the server.

- The thread continues running, periodically checking the browser is
still present. If not, it kills the server.

Downsides:

- The user knows they're running in the browser
- chromedriver/geckodriver are required (geckodriver's licence may be an issue)
- The user must have a supported browser installed.

Questions:

- Maybe we could ship a pre-built minimal browser (one that is fast
and works well and always use that?
- If we do that, then maybe we can use whatever mechanism selenium
uses to tell the browser where to navigate, as it doesn't seem to use
the command line (thus, keeping the key hidden).

Thoughts?

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Attachment

Re: PoC: Browser based runtime

From
Dave Page
Date:
Though, after a day of experimentation with various options, it seems
like https://github.com/annulen/webkit might be the way forward. It
seems to work well on mac and solves the issues we had there
previously.

Next step would be to see if the runtime will work on Windows if
compiled with Mingw and linked with a VC 2013 Python. I suspect it
will...

On Sun, Mar 26, 2017 at 4:28 PM, Dave Page <dpage@pgadmin.org> wrote:
> I've been looking at various options for getting rid of QtWebEngine,
> and had an idea that maybe we don't actually need any C++ code at all.
>
> Attached is a rough PoC patch that implements such a setup. If running
> with SERVER_MODE == True, things are as they are now, however, if
> SERVER_MODE == False then:
>
> - We enable key generation for client validation.
>
> - A thread is started to monitor the server for startup completion.
>
> - Once the server is responding, a browser is launched using selenium
> and pointed at the server.
>
> - The thread continues running, periodically checking the browser is
> still present. If not, it kills the server.
>
> Downsides:
>
> - The user knows they're running in the browser
> - chromedriver/geckodriver are required (geckodriver's licence may be an issue)
> - The user must have a supported browser installed.
>
> Questions:
>
> - Maybe we could ship a pre-built minimal browser (one that is fast
> and works well and always use that?
> - If we do that, then maybe we can use whatever mechanism selenium
> uses to tell the browser where to navigate, as it doesn't seem to use
> the command line (thus, keeping the key hidden).
>
> Thoughts?
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company