Re: [pgadmin-hackers] [pgAdmin4] [PATCH] History Tab rewrite in React - Mailing list pgadmin-hackers

From Sarah McAlear
Subject Re: [pgadmin-hackers] [pgAdmin4] [PATCH] History Tab rewrite in React
Date
Msg-id CAGRPzo897rVzpzJT4yhPS4YGMFuGKy3RUWd3175YC=sfKVDOwQ@mail.gmail.com
Whole thread Raw
In response to Re: [pgadmin-hackers] [pgAdmin4] [PATCH] History Tab rewrite in React  (Dave Page <dpage@pgadmin.org>)
Responses Re: [pgadmin-hackers] [pgAdmin4] [PATCH] History Tab rewrite in React
List pgadmin-hackers
Hello!

Thank you for committing the patch! 

We are currently looking into CEF (https://bitbucket.org/chromiumembedded/cef) as an alternative to QTWebKit. So far it looks promising. It works on all platforms. It is the base for Google Chrome, so it should be maintained for some time to come. Version 60 is currently in development. At this point we are developing a prototype for Mac as a proof of concept. We will keep you posted as we go. 

We are able to launch the server in one terminal and launch our browser app in another and use pgAdmin from that app. 

It would be useful to have a framework to follow to decide what library will be used to support pgAdmin in the future. What metrics are you currently using? What data should we collect on prototypes in order to help the selection process?

Thanks!
João & Sarah

On Wed, Jun 21, 2017 at 6:37 AM, Dave Page <dpage@pgadmin.org> wrote:
Hi George

On Tue, Jun 20, 2017 at 10:29 PM, George Gelashvili
<ggelashvili@pivotal.io> wrote:
> We learned that the underlying issue was related to react-dom's
> SyntheticEvent.augmentClass function being undefined.
>
> This seems to be caused by attempted property assignment after the
> SyntheticEvent had been replaced by a Proxy of itself. This works fine in
> Chromium et al, but QtWebKit doesn't deal with Proxy Event objects well.
> Moving the augmentClass definition and assignment up above the Proxy stuff
> resolves the issue in a PR to React:
> https://github.com/facebook/react/pull/10011
>
> This has a decent chance of being rejected, as QtWebKit appears to be losing
> support.
>
> While and if this is being sorted out, we vendorized React, as one does.
> Here are patches on the version we were using previously, and the fix from
> the above PR.

Thanks - committed.

> We started talking to some Pivotal folks about QtWebKit to see if we can fix
> the Proxy Event issue in the browser.
> We are also looking into replacements for QtWebKit.

Yeah, so here's the current state of play there:

- Some major Linuxes don't seem to have added QtWebEngine to their packages yet.

- QtWebEngine has multiple issues under Windows; it's *very* slow, and
doesn't play nicely with some graphics cards and Remote Desktop.

- QtWebKit (official) has rendering issues, and has been deprecated by Qt.

- QtWebKit (annulen) fixes the rendering issues, and generally works
well, but is very slow on Windows (though not as bad as QtWebEngine).

- QtWebKit (annulen) is a fork, which may or may not live for long.
It's also still quite far behind the latest WebKit code.

- ActiveQt is looking extremely promising on Windows, embedding IE as
the browser. It's speed is on par with QtWebKit on Mac. We're
currently working on handling multiple tabs/windows and sharing
cookies between them.

- Electron and Node-Webkit are performant options, but don't support
tabs, and may not even support multiple windows in the same session.

Neel is currently working on the ActiveQt option for Windows. I've
been very impressed by its speed, and of course, JS support is per the
installed version of IE. If that pans out, we could potentially move
back to QtWebEngine on Linux/Mac (where the latest versions may well
be improved), and use ActiveQt on Windows, thus dropping WebKit
altogether.

Another option would be to help get the annulen QtWebKit port up to
par; fix the performance issues on Windows, and get it up to the
latest WebKit code. That seems like it would take much more work, and
I don't think our team has the capacity for that. If yours does, then
it's certainly worth exploring.

Ashesh is also planning to spend a little more time looking more
deeply at Electron/Node-Webkit as well as other options, once he's
finished his current work.

Other thoughts/experiences are definitely welcome.

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

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

pgadmin-hackers by date:

Previous
From: Khushboo Vashi
Date:
Subject: [pgAdmin4][Patch]: Fixed #2487: get_preference() uses a synchronousAJAX request
Next
From: Dave Page
Date:
Subject: Re: [pgadmin-hackers] [pgAdmin4] [PATCH] History Tab rewrite in React