Droplet Browser

Rating: 
5
Your rating: None Average: 5 (5 votes)

Droplet browser is a lightweight browser for Sailfish OS.

You can continue scrolling through your events feed or chatting away in your chat app, while it fetches your requested websites in the background. No more switching/peeking back and forth between the browser and your requested app, until the website is ready.

This is not a replacement, but a complementary addition to the Sailfish Browser. (That's why the feature "Double tap to open in Sailfish Browser"!)

 

Features:

  • Handles Downloads via. Sailfish Browser
  • Bookmarks and History
  • Tap a link to load it in the background using Droplet browser. Double tap a link to let Sailfish Browser handle it.

 

Source Code: https://github.com/saidinesh5/harbour-droplet

TODO Board: https://github.com/saidinesh5/harbour-droplet/projects/1

NOTE: This application needs the applet layer patch enabled to function properly. You can get it via. patchmanager (from https://openrepos.net/content/saidinesh5/sailfishos-lipstick-enable- applets ) or the Patchmanager 2.0 catalog. (from https://coderus.openrepos.net/pm2/project/sailfishos-lipstick-enable-app... ). Without this patch, it cannot accept input and does not hide when the lock screen is on.

 

NOTE: v0.3 won't work on Sailfish version < 2.1

P.S Don't forget  this is still a work in progress

 

Donate

Screenshots: 
Application versions: 
Changelog: 

version: 0.3
- Built for Sailfish OS 2.1
- Added support for command line activation
- Disabled System Gestures when Applets are raised (Needs Applet Layer patch 0.0.3 to work)
- Added support for longPress to peek
- Made the animations feel smoother

version: 0.2
- Fixed the broken Droplet count in the harbour-droplet app
- Made the BubbleStack expand from the location where it was on (for easier one handed operation)
- A more Sailfishified Icon, thanks to Ingvix

version: 0.1
- Added Double tap a link to bypass Droplet browser
- Added a fallback mode for applet view - to work on unpatched lipstick
- Added Bookmarks and History
- Handle the downloads via. Sailfish Browser
- Initial commit Of what seems to be a barely working droplet-browser

Comments

saidinesh5's picture

But applets are similar to dialogs (The connect to internet button on Events view) and not apps. A more integrated feel would be touch outside the dialog/applet to "minimize/lower" the applet. (to be implemented).

For eg. an applet to let you reply to an incoming chat message in a little text input at the top of the screen. Imagine: touching outside the textinput to close the applet, as opposed to doing the close gesture to close it - and not be sure if it is the app you're in , that you're trying to close or just the applet. (Purely hypothetical example).

Ingvix's picture

Well one counter argument here would probably be that with the applet browser open it covers almost the whole screen so intuitively one might considers it more like an app than an applet.

I'm pretty much okay with either procedure, just saying.

crakby's picture

I like the placing of BubbleStack...now it's comfortable with one hand, thank you.

DameCENO's picture

Hi everyone, just installed the app and it crashes everytime it tries to initialize, any ideas? I am on 2.0.5.6

I am still looking for a native browser that supports downloading links through android download managers... A decent download manager with resume capabilitties and spliting of downloads into blocks still missing among native apps

A system restart still didn't solve the issue

saidinesh5's picture

Could you check out the updated version? It seems sailfish-qml binary is not pre installed on all devices.

Right now , I am developing this on my port of Sailfish OS to my phone. I am yet to fix the Android app support on it (via. SFdroid). So I am not really sure how to accomplish this.

If you can confirm a command like this opens some android browser on your phone, I can add support for using this command for fetching download links.

am start -a android.intent.action.VIEW -d http://www.google.com

(am should be somewhere in (ANDROID_INSTALL_ROOT)/system/am)

DameCENO's picture

Thanks man, no need for the command line, the update fixed the issue, it is a unique browser concept, koudos man, really amazing but as you pointed out it is still in beta stage. I can't even get the enter url option. As I was saying earlier, is there a way to share download links in this browser with download managers on the phone I would stop using firefox android for good.

Thanks in advance man

saidinesh5's picture

Oh the command is for me to find out how to send a link to a download manager of Android.
(My device currently does not have Android app support). I need to know if such a command works for you and what the path to am is on your device.

Also I actually removed the enter URL option as to discourage users from using this as the primary browser. If you are already "inside a browser" to type something, you might as well use a decent browser which can render all pages. (That's also why duckduckgo is one of the bookmarks, incase anyone already entered the browser to type something)

DameCENO's picture

I am no savy on command lines or finding out where the am you talk about is, but would gladly check it out for you if you can guide me on how to. I am on Jolla 1 with android support enabled.

It beats me why you would want to discourage anyone from using this as a default browser for daily use? I currently rely on UCweb mini for all of my needs, go to firefox android when I need to get links for ADM android as no native download manager worth out time is yet available. So if your browser can replace firefox for me, it would mean so much

Just ran the code you provided earlier and got this error

bash: am: command not found

any ideas?

saidinesh5's picture

I think I figured out how to send an intent to an Android process from https://github.com/RikudouSage/sailfishos-firefox-default-handle . I will implement this after this 13th though. Right now my hands are very full.

The problem with this browser is (Other than certain important features like Authentication/File Dialogues still not implemented) that the QML Webview is very outdated and is in a very bad shape. It simply can't handle many web pages. I am hoping the next Sailfish version will fix this. If not, I will try to base the WebView on the Sailfish Browser or something else that works semi decent. Right now this Webview can't even handle Youtube/any other html videos or even the Google+ page in the About section.

DameCENO's picture

Can you please just included the removed enter url option? Yes you are right, the browser Webkit still needs some polishing, but even at it current state is so appealing. I eagerly await the update of your app and the option for sharing download links with android downloaders as you said...

Keep up the amazing work Dinesh

Ingvix's picture

I hope you also add a landscape mode support. Just noticed it only works in portrait mode.

saidinesh5's picture

Added this to the TODO list. The next 2 weeks, I won't be able to work on this project much because of some tests i need to be preparing for. So the progress will be a little slow

fravaccaro's picture

can you add compatibility with URLs from Android apps?

saidinesh5's picture

This has to be implemented via. a separate little Android app, that would invoke this browser on Android Intents.

I need to know if android apps can have access to this path: /usr/bin/harbour-droplet  or the DBus SessionBus to be able to implement that. Could you find that out?

Also, out of curiosity there are browsers similar to this in the Android app store. https://flynxapp.com/ , https://play.google.com/store/apps/details?id=com.flyperinc.flyperlink . If they work, it should be easier to set them as the default browser instead.

fravaccaro's picture

Here's a raw output of a link opened from an Android app, hope it's useful :)  Btw, can an icon linking to standard Sailfish Share UI be added to Droplet toolbar?  Feb 01 20:49:54 Sailfish start_alien.sh[13551]: CANNOT LINK EXECUTABLE: could not load library "libcutils.so" needed by "grep"; caused by empty/missing DT_HASH in "libcutils.so" (built wit...h-style=gnu?) Feb 01 20:49:54 Sailfish start_alien.sh[13551]: CANNOT LINK EXECUTABLE: could not load library "libcutils.so" needed by "grep"; caused by empty/missing DT_HASH in "libcutils.so" (built wit...h-style=gnu?) Feb 01 20:49:54 Sailfish dbus-daemon[963]: Activating service name='org.sailfishos.browser.ui' Feb 01 20:49:54 Sailfish dbus-daemon[963]: Successfully activated service 'org.sailfishos.browser.ui' Feb 01 20:49:55 Sailfish booster-browser[4077]: [D] QWaylandEglClientBufferIntegration::QWaylandEglClientBufferIntegration:62 - Using Wayland-EGL Feb 01 20:49:56 Sailfish ohmd[536]: *** resource_request:  register   42 Feb 01 20:49:56 Sailfish prestart[3806]: [D] onCompleted:103 - ViewPlaceholder requires a SilicaFlickable parent Feb 01 20:49:56 Sailfish ohmd[536]: *** resource_request:  audio   42 Feb 01 20:49:56 Sailfish ohmd[536]: *** resource_request:  update   42 Feb 01 20:49:57 Sailfish lipstick[1040]: [D] CoverActionModel::update:131 - void CoverActionModel::update() Clearing model Feb 01 20:49:57 Sailfish lipstick[1040]: [D] CoverActionModel::update:144 - void CoverActionModel::update() "Added action: 0 image://theme/icon-cover-new" Feb 01 20:49:57 Sailfish lipstick[1040]: [D] onCompleted:289 - Cover action created 0 image://theme/icon-cover-new sailfish-browser.desktop Feb 01 20:49:57 Sailfish lipstick[1040]: [D] onCompleted:257 - coverActionIndicators created sailfish-browser.desktop Feb 01 20:49:57 Sailfish lipstick[1040]: [D] onDestruction:293 - Cover action destroyed sailfish-browser.desktop Feb 01 20:49:57 Sailfish lipstick[1040]: [D] onCompleted:289 - Cover action created 0 image://theme/icon-cover-new sailfish-browser.desktop Feb 01 20:49:57 Sailfish invoker[3678]: WARNING: An inactive plugin is misbehaving - tried to show a window! Feb 01 20:49:57 Sailfish invoker[3678]: WARNING: requestActivate() called for  QQuickView(0x396160)  which has Qt::WindowDoesNotAcceptFocus set. Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: EmbedLiteExt virtual nsresult EmbedChromeManager::Observe(nsISupports*, const char*, const char16_t*):82: obj:(nil), top:app-startup Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: EmbedLiteExt virtual nsresult EmbedTouchManager::Observe(nsISupports*, const char*, const char16_t*):86: obj:(nil), top:app-startup Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: greHome from GRE_HOME:/usr/bin Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: libxul.so is not found, in /usr/bin/libxul.so Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: Created LOG for EmbedLite Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: Loaded xulDir:/usr/lib/xulrunner-qt5-38.8.0/libxul.so, appDir:/usr/bin Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: EmbedLiteGlobalHelper app-startup Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: EmbedLiteSyncService app-startup Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: PREFS SERVICE INITAILIZED Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: EmbedPrefService app-startup Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: EmbedliteDownloadManager initialized Feb 01 20:49:57 Sailfish prestart[3806]: [W] qt_png_warning:499 - libpng warning: iCCP: known incorrect sRGB profile Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: UserAgentOverrideHelper app-startup Feb 01 20:49:57 Sailfish org.sailfishos.browser.ui[963]: 1485978597928        addons.manager        DEBUG        Application has been upgraded Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598060        addons.manager        DEBUG        Loaded provider scope for resource://gre/modules/addons/XPIProvider.jsm: ["XPIProvider"] Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598079        addons.manager        DEBUG        Loaded provider scope for resource://gre/modules/LightweightThemeManager.jsm...emeManager"] Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598100        addons.manager        DEBUG        Loaded provider scope for resource://gre/modules/addons/GMPProvider.jsm Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598115        addons.manager        DEBUG        Loaded provider scope for resource://gre/modules/addons/PluginProvider.jsm Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598120        addons.manager        DEBUG        Starting provider: XPIProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598122        addons.xpi        DEBUG        startup Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598130        addons.xpi        DEBUG        checkForChanges Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598136        addons.xpi        DEBUG        Loaded add-on state from prefs: {} Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598143        addons.xpi        DEBUG        getInstallState changed: false, state: {} Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598148        addons.xpi        DEBUG        Empty XPI database, setting schema version preference to 16 Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598151        addons.xpi        DEBUG        No changes found Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598153        addons.manager        DEBUG        Registering shutdown blocker for XPIProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598156        addons.manager        DEBUG        Provider finished startup: XPIProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598157        addons.manager        DEBUG        Starting provider: LightweightThemeManager Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598157        addons.manager        DEBUG        Registering shutdown blocker for LightweightThemeManager Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598162        addons.manager        DEBUG        Provider finished startup: LightweightThemeManager Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598165        addons.manager        DEBUG        Starting provider: GMPProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598175        addons.manager        DEBUG        Registering shutdown blocker for GMPProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598179        addons.manager        DEBUG        Provider finished startup: GMPProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598180        addons.manager        DEBUG        Starting provider: PluginProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598181        addons.manager        DEBUG        Registering shutdown blocker for PluginProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598184        addons.manager        DEBUG        Provider finished startup: PluginProvider Feb 01 20:49:58 Sailfish org.sailfishos.browser.ui[963]: 1485978598184        addons.manager        DEBUG        Completed startup sequence Feb 01 20:49:59 Sailfish prestart[3806]: [D] QMozWindowPrivate::setSize:71 - Trying to set empty size:  QSize(-1, -1) ^Z [2]+  Stopped                 journalctl -f

saidinesh5's picture

I will look into the ShareUI thing. Not sure how much of work it would be for me to implement this, so added this to my TODO list.

 

Also not sure what to make out of the logs you just pasted :P

Could you install an Android file manager application like say Astro File Manager or CyanogenMod file manager and see if you can access the file /usr/bin/harbour-droplet from it?

fravaccaro's picture

great, thanks :)

 

I'm on Jolla C, I can confirm the binary is accessible from Android.

saidinesh5's picture

Great! I will probably make a little android app to listen to url intents and invoke /usr/bin/harbour-droplet <url> after this 14th. (Command line activation is now available in the latest code in the repo)

P.S If anyone reading this knows their way around Android SDK (a very basic knowledge is enough), feel free to implement this.

crakby's picture

Very very nice. I'm really impressed!

Could you think about, to align the first widget top right, if the website shown and then row up to left, because top left is the only place I cannot reach with my thumb.

saidinesh5's picture

Just finished Implementing the functionality that the BubbleStack starts expanding from whichever side it was on. That way you can both expand and collapse the Bubble with the same thumb. (Y)

Ingvix's picture

Quite nice. I think you should favor using silica icons and theme colors with what ever you can so it would feel like more integrated part of the system. Anyway, a much nicer way to open links from apps.

Also if you like, I'd be interested in creating a more sailfish-like app icon for this.

saidinesh5's picture

Right now the overlay window is not a Silica ApplicationWindow, so I coudln't use many Silica components there. I will have to look into this once the basics are done. The progress indicator and the labels are all Silica components though.

Feel free to Sailfishify the icon. It is an inkscape svg: https://github.com/saidinesh5/harbour-droplet/blob/master/qml/images/har... .

Ingvix's picture
saidinesh5's picture

Perfect! Replaced the current icon with this. In the about page, it looked a little odd, so retained the old picture there. https://github.com/saidinesh5/harbour-droplet/commit/8ef338588f83c4506a8...

Pages