saidinesh5 / harbour-droplet

A lightweight web browser for Sailfish OS
4 stars 1 forks source link

Look into migrating the webview to Quicksilver vs. Oxide Qt vs. QML WebEngine #5

Open saidinesh5 opened 7 years ago

saidinesh5 commented 7 years ago

https://github.com/tworaz/quicksilver https://www.youtube.com/watch?v=EjO5huCEfsQ&ab_channel=tworaz666 http://daker.me/2014/05/how-to-use-oxide-in-your-ubuntu-qml-application.html

DylanVanAssche commented 7 years ago

Can I help some how with this? I also could use a new engine :)

saidinesh5 commented 7 years ago

Hi, Definitely! Recent #mer-meeting guys think it is better to invest more in quicksilver, but compiling it seems to be a pain so far. So if you can try out/look into compiling quicksilver, (more info: https://github.com/martinbrook/quicksilver/commit/d4a77e37dc23506d3cc292212ec940c76aeafdfe ), It would be great. I think it takes a lot of internet bandwidth to clone it though. So watchout!

I was halfway through compiling QtWebEngine, but lost my server. So will have to start over sometime soon. Lets skip Oxide Qt for now though. It seemed mostly similar to QtWebEngine.

If all else fails, we can simply use mozembed and go the sailfish browser path.

DylanVanAssche commented 7 years ago

Yes I was there at the meeting :) and indeed, it's not that easy :p Oh, I have unlimited bandwidth over here, maybe I can clone it at the university (10 Gbps connection will make it clone quicker). At the moment I'm having my exams so it will have to wait a little bit :p

DylanVanAssche commented 7 years ago

I checked out the requirements for the QuickSilver build:

So it seems that only the patches are need to applied and then build the original QuickSilver build. If all goes well, we can try upgrading to a newer Chromium build?

saidinesh5 commented 7 years ago

I think so. Also iirc Quicksilver needed some patches inside Qt too .. not too sure about that now though: https://github.com/tworaz/qtbase/commits/mer-stable https://github.com/tworaz/qtdeclarative/commits/mer-stable

Good luck with this! if you are able to compile Quicksilver, we could package it up and make components out of it. Or include that in our build tree and add droplet as another shell.

DylanVanAssche commented 7 years ago

I'm mostly a Python/QML developer for Sailfish OS so I don't know how far I'm going to get but I will try :) Those patches aren't included in the Jolla qtbase for QT5.6 which makes it difficult to pack QuickSilver into an app without modifying qtbase

saidinesh5 commented 7 years ago

Yep. Although It shouldn't be much of an issue as I build everything on OBS. So it is just a matter of adding those packages to my OBS repo and making people update Qt from there.the changes seemed minimal anyway. If you get stuck at any point, you can always ask me/anyone else here/on IRC. Good Luck!

DylanVanAssche commented 7 years ago

I tried to install the RPM's from Tworaz but it seems that the upgrade to QT5.6 broke his QT-wayland RPM patch thingy. We need to rebuild that one using the patch provided here

Can you build it on OBS?

RPM's are available here from Tworaz: click

Instructions: PiratePad

saidinesh5 commented 7 years ago

Hi,

I am sorry for my long absense. Hectic real life, with barely any free weekends for pet projects,

Here: https://build.merproject.org/package/show/home:saidinesh5/qtwayland are the patched Qtwayland packages, with the patched repo from here: https://github.com/saidinesh5/qtwayland . Check if these work for you.

DylanVanAssche commented 7 years ago

Will try it out, I'm not sure if I have time for this anymore...

DylanVanAssche commented 6 years ago

Sorry, I haven't got any time to put some work in this. Would this not be an option: https://github.com/ubports/oxide Oxide uses the Chromium engine and is already running on Wayland since Ubuntu Touch also uses Wayland. From what I saw in the Ubuntu Touch demos is Oxide actually very good.

However, I have absolutely no idea how to port it nor any experiences with porting... But it might be easier then QtWebEngine since there's no Wayland support yet for that.

saidinesh5 commented 6 years ago

Hi, Over the weekend i looked into it too.

With Sailfish, I am getting tired of having to port even basic tools like ninja etc.. to be able to compile chromium. We do more work in just porting existing packages than doing any actual work. :/

Iirc the oxide-qml plugin was dependent on ubuntu components. And they started with that effort before qml webengine was announced...

https://www.collabora.com/news-and-blog/blog/2017/12/22/cef-on-wayland/ This seems more interesting to me btw. But couldn't compile this either because ninja build system is missing on mer repos and couldn't build ninja because even it's dependencies are missing.

Will try harder next weekend though

DylanVanAssche commented 6 years ago

Hi,

Yes indeed, a lot is missing which makes it very hard to port new stuff. Compiling QtWebengine itself is a problem too I guess since the ninja build system is missing.

You have more experience in porting then I have, I hope to learn it some day :p

DylanVanAssche commented 6 years ago

I looked quickly into the ninja build system, I think I can build it on the Mer SDK. I will try it today in the evening or something and will post my results here.

The build seems douable due the fact that it builds itself using a Python script. No promises but if this is builded, how difficult would be CEF or QtWebengine to build?

DylanVanAssche commented 6 years ago

Hmmm it seems that the Ninja build system works just fine:

Build steps:

Here's my build and it works fine on armv7h (tested on the Intex Aquafish): ninja.zip

EDIT:

Building QtWebEngine in the MerSDK fails results in this error: https://stackoverflow.com/questions/47100545/how-to-build-qtwebengine-5-10-from-source

I installed gperf in the SDK but it can't find it?

saidinesh5 commented 6 years ago

Hey, thanks

Interesting. When i tried to compile ninja , i ran configure.sh i think that's what was whining about rc2 and doctools missing... Let me quickly package this so it will be usable..

And as for gperf.. i can't remember but try to build the QtWebEngine that came with Qt 5.6 .. i tried compiling the one that came with 5.10 and even backported a bunch of patches but it failed. Apparently a lot of things changed between 5.6 and 5.10 internally..

I am not sure but I think we should be looking at CEF first.. They have instructions for it .. plus with QtWebEngine you have to compile and package even multiple missing Qt modules, like QtWebSockets, and 2 other modules i can't remember..

DylanVanAssche commented 6 years ago

No problem :) It's the first time I build manually :package: with the SDK. I just followed the instructions in the HACKING.md file from Ninja. I was busy with the ninja stuff and I was thinking: Why not checking out the git repo of QtWebEngine (which was for Qt 5.10) and try to build it, maybe I was lucky.

Indeed we should checkout CEF first, it's more compact with less dependencies.

saidinesh5 commented 6 years ago

I was actually tempted to add Fedora's repositories and fetch these dependencies from there directly. Infact, that's one big thing i dislike about Sailfish .. Them having to choose a path where we spend more effort on packaging existing programs that have already been packaged than actually working on programs.

I am looking at AppImages actually. Was trying to set up an arm cross compilation environment in ubuntu or some distro that gives us better packages and compile CEF there. And then package it into an AppImage and use it on sailfish os.

DylanVanAssche commented 6 years ago

I really like AppImages they are really great! If this can be done on Sailfish OS using AppImages why not? All deps are then no issue anymore, the only problem is the size of the AppImage

DylanVanAssche commented 6 years ago

Is there anything I can do to help with these AppImages?

saidinesh5 commented 6 years ago

Will have to look into it this weekend? It is just a matter of compiling the little appimage binary for sailfish and making sure the kernel has support for fuse (which most of the devices already do)

DylanVanAssche commented 6 years ago

You mean the Ninja build thingy or the whole CEF?

naive17 commented 4 years ago

We need to Continue this work! How can we continue the quicksilver port?

saidinesh5 commented 4 years ago

Hi, last year i tried to update to the webkit compiled by llelectronics but with sailfish 3.0 my lipstick applet later patch stopped working. So that needs to be ported first.. but they changed the code a lot, so didn't look into it further. So a good first step is to just get the applet layer patch working