Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to QtWebEngine #13

Open
piranna opened this issue Jul 25, 2016 · 29 comments
Open

Move to QtWebEngine #13

piranna opened this issue Jul 25, 2016 · 29 comments

Comments

@piranna
Copy link
Contributor

piranna commented Jul 25, 2016

I think we need to move to QtWebEngine... I tried to build noGUI the other day and it failed, and I'm not fully sure if it's due to usage of latest version of Qt where QtWebkit has been deprecated. On the other hand, QtWebEngine has a full instance of Chromium that would give us a better compatibility and to work in pair with the latest PhantomJS, and also seems to be easy to add an interceptor that would allow us to remove the header that blocks the access to Google, Facebook, GitHub, StackOverflow and others from iframes if we find this is needed.

@Coretool
Copy link
Owner

Yeah, we should move. Coding with QtWebEngine doesn't seem to be much different from QtWebkit.

[...] and work in pair with the latest Phantomjs

Does this mean we can use their build scripts (again) ^^ ?

I think the inveptor makes sense since a NodeOS (with GUI) can surely be a every day os !

@piranna
Copy link
Contributor Author

piranna commented Jul 28, 2016

Yeah, we should move. Coding with QtWebEngine doesn't seem to be much
different from QtWebkit.

I don't think so, main problem would be to compile it statically, but seems
PhantomJS fixed it.

[...] and work in pair with the latest Phantomjs

Does this mean we can use their build scripts (again) ^^ ?

No... but we can use them as reference about how to do the things, the same
way I used Cross Linux from Scratch to create the build process of NodeOS
:-)

I think the inveptor makes sense since a NodeOS (with GUI) can surely be
a every day os !

Yes, but mostly because it's the most simple way to enable that
functionality, and also there's plugins for the browsers for that, so we
can still use them for the GUI. Has anyone tried to use os.js on NodeOS?

@Coretool
Copy link
Owner

Coretool commented Jul 28, 2016

So the guys from phantomjs have got a way to build it statically (?) AFAIK they only use QtWebkit... There's even a prototype for CEF but no one for QtWebEngine

Haven't tried it on neither NodeOS nor noGui...

@piranna
Copy link
Contributor Author

piranna commented Jul 28, 2016

So the guys from phantomjs have got a way to build it statically (?)
That's good news!

PhantomJS provides a sonewhat statically linked binary. With PhantomJS 1
there was no problem because they used QtWebkit but was too limited, on
PhantomJS 2 they started to use QtWebEngine but there was problems with ICU
and the versions of the C library on Linux, but they found a way to solve
this on PhantomJS 2.1, that's why I said of using their scripts and options
as reference. Could you be able to take a look?

Haven't tried it on neither NodeOS nor noGui...

We should take a look of it on noGUI first...

@Coretool
Copy link
Owner

They still have QtWebkit in their Src dir (ariya/[email protected]) and their python build script points to QtWebkit too... Is ariya/phantomjs just the wrong repository ?

@piranna
Copy link
Contributor Author

piranna commented Jul 28, 2016

They still have QtWebkit in their Src dir (ariya/[email protected]) and their python build script points to QtWebkit too... Is ariya/phantomjs just the wrong repository ?

So seems they didn't moved to QtWebEngine yet... :-/ We should consider to move ourselves then, but first let's release a version with QtWebkit first.

@Coretool
Copy link
Owner

Yeah, that's a bit sad :/... I'll look to continue noGUI ... Aurora is also faltering :/

@Coretool
Copy link
Owner

Just as an information, I'll try to build a static QtWebEngine tonight, so fingers crossed ^^

@piranna
Copy link
Contributor Author

piranna commented Jul 28, 2016

Good luck! ;-)

@Coretool
Copy link
Owner

I followed this SO question As far as I can tell it worked. I'll try it again with qt5.7 in the next couple of days.

@piranna
Copy link
Contributor Author

piranna commented Jul 29, 2016

That's cool! Can you show an output of the ldd command (and a screenshoot
:-P)? Also, instead of using git, could you be able to use tarballs as I
sugested on other issue?
El 29/7/2016 9:54, "John Green" [email protected] escribió:

I followed this SO question
http://stackoverflow.com/questions/30316880/how-to-build-qtwebengine-from-qt-5-5-git-source
As far as I can tell it worked. I'll try it again with qt5.7 in the next
couple of days.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#13 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAgfvjn67sRW4B3_ADhZp2twL3wlML2fks5qabGhgaJpZM4JUc3T
.

@Coretool
Copy link
Owner

Coretool commented Jul 29, 2016

Well I still have to get rid of xcb and build it for the linuxfb platform. I'll make a screenshot when I've got that up and running.

Yeah, I'll do that.

@piranna
Copy link
Contributor Author

piranna commented Jul 29, 2016

Get rid of xcb seems trivial, anyway left it by now just for testing. Add
support for framebuffer (it should be similar as how we have it for
QtWebkit) and just give it a test to know it's working. Are you doing your
changes in an independent branch?
El 29/7/2016 10:10, "John Green" [email protected] escribió:

Well I still have to get rid of xcb and build it for the linuxfb
platform. I'll make a screenshot when I've got that up and running.

Yeah, I'll do that. And maybe also try to get rid of xcb...


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#13 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAgfvvRAKkZTibADMHk4vcQZnai0WTHGks5qabWDgaJpZM4JUc3T
.

@Coretool
Copy link
Owner

I'll push them to an independent branch once I've written the scripts and adjusted the current noGUI code to the qtwebengine (which should be pretty straight forwaed). Adding support for the linuxfb works as in the previous version.

@piranna
Copy link
Contributor Author

piranna commented Jul 29, 2016

Fine! :-D Give me the ldd output please, I want to check it.
El 29/7/2016 10:25, "John Green" [email protected] escribió:

I'll push them to an independent branch once I've written the scripts and
adjusted the current noGUI code to the qtwebengine (which should be
pretty straight forwaed). Adding support for the linuxfb works as in the
previous version.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#13 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAgfvhvmgkzLhhpTTrC40xsppFnpnkAmks5qabkPgaJpZM4JUc3T
.

@Coretool
Copy link
Owner

As soon as I 'm back at my computer ^^

@piranna
Copy link
Contributor Author

piranna commented Jul 29, 2016

ACK
El 29/7/2016 10:43, "John Green" [email protected] escribió:

As soon as I 'm back at my computer ^^


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#13 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAgfvi8k30vyyDiw5-Go-VWciNbtN4d9ks5qab1DgaJpZM4JUc3T
.

@Coretool
Copy link
Owner

Coretool commented Jul 29, 2016

Really bad news. The I built a shared version instead of the static version =/. However, it seems like it's possible to build it static since the build seems to fail at some "minor" errors only (or that's what it fail at now)

People seem to have had the same problem in the past. However, the seem to have been able to fix it, so I'll try it again with the instructions on this thread.

@Coretool
Copy link
Owner

Ok. I can retake the claim that I built a static version, finally got it (I guess)

@Technohacker
Copy link
Contributor

Move to Qt WebEngine has been done :)

@Coretool
Copy link
Owner

Thanks ^^

@Technohacker
Copy link
Contributor

@Coretool I suppose this issue can now be closed :D

@piranna
Copy link
Contributor Author

piranna commented Jun 18, 2017

I've done some fixes on the build script and I'm compiling it just now to check if it works as expected so we can close this. On the other hand, we should check about the interceptor I told on the first comment before clossing this issue, or open a new one specific for it.

@piranna
Copy link
Contributor Author

piranna commented Jun 18, 2017

@Technohacker, has you check your code compiles on a clean slate environment? What's your current system? I have been trying all the day to compile your changes to use QtWebEngine and it doesn't work statically, and with dynamic libraries it's asking me a lot more dependencies...

@piranna
Copy link
Contributor Author

piranna commented Jun 18, 2017

Ok, the libegl1-mesa-dev package is needed by Chromium itself, or at least I was not able to configure the QtWebEngine module. Knowing that Chromium uses EGL directly, probably would be a better thing to directly use it...

@piranna
Copy link
Contributor Author

piranna commented Jun 18, 2017

Project ERROR: Unknown module(s) in QT: qml quick webchannel

Definitely, this is not the way to go. Ideally QtWebEngine should be a good option, but I can't be able to replicate it. I've done a pull-request at #22 to see if you can check the fixes and try to find what's happening. Seems probably start from scratch with content_browser would be a better idea.

@Technohacker
Copy link
Contributor

@piranna Sorry, I couldn't test with a static build of Qt because from my experience with Android, Chromium is a huge project to compile

@piranna
Copy link
Contributor Author

piranna commented Jun 19, 2017 via email

@Technohacker
Copy link
Contributor

Technohacker commented Jun 19, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants