Port from WebKit to WebEngine.
Needs RevisionPublic

Authored by cmihalache on Dec 26 2015, 4:10 PM.

Details

Reviewers
rahn
Group Reviewers
Marble
Summary

I've started porting the bits of code that use WebKit to WebEngine, but eventually got stuck while testing the PopupItem. The issue is that the MarbleWebView is rendered incorrectly. Although the content of the web page changes, the view does not update. Also, you can't interact with the web page.

This patch is a work in progress.

Diff Detail

Repository
R34 Marble
Lint
Lint Skipped
Unit
Unit Tests Skipped
cmihalache updated this revision to Diff 1627.Dec 26 2015, 4:10 PM
cmihalache retitled this revision from to Port from WebKit to WebEngine..
cmihalache updated this object.
cmihalache edited the test plan for this revision. (Show Details)
cmihalache added a reviewer: Marble.
cmihalache set the repository for this revision to R34 Marble.
cmihalache added a project: Marble.
cmihalache changed the visibility from "Public (No Login Required)" to "Marble (Project)".
cmihalache changed the edit policy from "All Users" to "Marble (Project)".
cmihalache added a subscriber: Marble.
cmihalache updated this revision to Diff 2222.Feb 5 2016, 5:48 PM
cmihalache updated this object.
cmihalache changed the visibility from "Marble (Project)" to "Public (No Login Required)".

We should focus on this task. Qt 5.6 is stable and has no Webkit anymore. Therefore any distribution that ships Qt version 5.6 will ship Marble with Popup items that show nothing.

We have two options: Porting from QtWebKit to QtWebEngine as done here. This would bump our Qt version requirement to Qt 5.4 (afaik that is the first version to ship QtWebEngine). The other approach would be to support both QtWebKit and QtWebEngine in order to allow older Qt versions as well. A patch for that might be considerably more work and hence nobody might come up with it any time soon. What do you think, @rahn?

CMakeLists.txt
88

Ideally we'd have it optional

Hi. Seems my build-system clean-up patch would conflict a little with this one, sorry, will be happy to resolve that.

Good to see the problem with QWebKit being deprecated tackled by you :)

One thing I am wondering though: is there any need that the actual Qt classes are exposed from marble lib (by being used as baseclasses of MarbleWebView & Co.)? Or would it be possible to make the actual Qt classes an implementation detail?
Might be also interesting from some future QML-only point of view, so plugins would just talk to an abstract webview interface.
And for the problem with WebKit & WebEngine the implementation could be a build toggle, so Qt <5.6 could use WebKit and >5.7 (or whatever) WebEngine.

Any updates on this one? I was looking forward to completely finish this and have a complete QtWebEngine backend.

Restricted Application added a project: KDE Edu. · View Herald TranscriptDec 28 2017, 11:24 PM
Restricted Application added a subscriber: KDE Edu. · View Herald Transcript
anthonyfieroni added inline comments.
src/apps/behaim/CMakeLists.txt
29–30

You now depends on 2 engines, WebEngine and Webkit. So to be port complete remove Webkit or make it optional (last one will introduce many compile time conditional code) Situation is the same for other executables.

src/lib/marble/MarbleLegendBrowser.cpp
86–88

Docs says it will be overridden QWebEnginePage::acceptNavigationRequest

398
src/lib/marble/PopupItem.cpp
400
rahn requested changes to this revision.Oct 17 2018, 2:29 PM

Thanks a lot guys!

I've brushed it up a bit and pushed it into master.

Please test and provide feedback!

Thank you!

This revision now requires changes to proceed.Oct 17 2018, 2:29 PM
Restricted Application edited subscribers, added: kde-edu, marble-devel; removed: KDE Edu. · View Herald TranscriptOct 17 2018, 2:29 PM