All Projects → HandyOSS → HandyBrowser

HandyOSS / HandyBrowser

Licence: LGPL-2.1 license
A Handshake enabled Chromium web browser and reference client; works with HSD and the HNSD light client. Use our example to build or integrate Handshake into any browser.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to HandyBrowser

CockyGrabber
C# library for the collection of browser information such as cookies, logins, and more
Stars: ✭ 46 (-54.46%)
Mutual labels:  chromium, browsers
docker-node-ci
The Docker image based on the official "node" image optimized for a CI environment
Stars: ✭ 18 (-82.18%)
Mutual labels:  chromium, chromium-browser
Nwjs Ffmpeg Prebuilt
FFmpeg prebuilt binaries for NW.js / Chromium
Stars: ✭ 465 (+360.4%)
Mutual labels:  nwjs, chromium
chromium-notifier
Chromium browser extension that provides browser and extensions update notifications and extensions management functionality. Chromium versions are synced with Woolyss' Website.
Stars: ✭ 68 (-32.67%)
Mutual labels:  chromium, chromium-browser
Thorium
Chromium fork for linux named after radioactive element No. 90. Windows and Special builds are in different repositories, links are towards the top of the README.md.
Stars: ✭ 45 (-55.45%)
Mutual labels:  chromium, chromium-browser
web-to-desktop-framework-comparison
This repository was made to create an objective comparison of multiple framework that grant us to "transform" our web app to desktop application formats.
Stars: ✭ 605 (+499.01%)
Mutual labels:  nwjs, nwjs-application
raspberry-pi-kiosk
A simple set of commands to set up a raspberry pi for use as a stand alone kiosk screen
Stars: ✭ 45 (-55.45%)
Mutual labels:  chromium, chromium-browser
sippet
C++ SIP stack based on Chromium source code
Stars: ✭ 23 (-77.23%)
Mutual labels:  chromium
playwright-demos
playwright for scrapping and UI testing / automate testing workflows
Stars: ✭ 65 (-35.64%)
Mutual labels:  chromium
nomenclate
An indexing server for Handshake addresses and auctions
Stars: ✭ 39 (-61.39%)
Mutual labels:  handshake
Git Watcher
Git GUI desktop app that shows real-time diff file information for working directory and index
Stars: ✭ 165 (+63.37%)
Mutual labels:  nwjs
handshake
Secure Scuttlebutt handshake + boxstream library
Stars: ✭ 20 (-80.2%)
Mutual labels:  handshake
clipboard-watch
This is height performance clipboard watcher, support windows,osx
Stars: ✭ 21 (-79.21%)
Mutual labels:  nwjs
chrome-headless-launcher
Run the latest Chrome browser on CLI without head
Stars: ✭ 39 (-61.39%)
Mutual labels:  chromium
ungoogled-chromium-void
Ungoogled Chromium template and builds for Void Linux
Stars: ✭ 35 (-65.35%)
Mutual labels:  chromium
WebView-Advanced
A collection of android webview hack
Stars: ✭ 25 (-75.25%)
Mutual labels:  chromium
docker-chromium
Docker container with Chromium desktop and a Web VNC client allowing you to run Chromium on any server you have
Stars: ✭ 64 (-36.63%)
Mutual labels:  chromium
Trilogy
TypeScript SQLite layer with support for both native C++ & pure JavaScript drivers.
Stars: ✭ 195 (+93.07%)
Mutual labels:  nwjs
cef-mixer
High Performance off-screen rendering (OSR) demo using CEF
Stars: ✭ 183 (+81.19%)
Mutual labels:  chromium
NativeMessaging
C# Chome Native Messaging Library
Stars: ✭ 55 (-45.54%)
Mutual labels:  chromium

HandyBrowser

alt text

Download Latest Prebuilt HandyBrowser in Releases [Skips all the steps below]

Learn how to resolve Handshake names in Chrome, Firefox and Mobile with HandyBrowser in the quick reference quide. There is also a menu item within HandyBrowser to guide you thru proxy setup for Firefox, Chrome and Mobile.

Join us on Telegram: http://t.me/HandshakeTalk

Building from Source

First, install frontend client dependencies

  1. npm install -g bower
  2. bower install
  3. npm install

Building for Mac

  1. Download nw.js
  2. Copy this repo to folder ./nwjs.app/Contents/Resources/app.nw
  3. Copy app.icns, document.icns to ./nwjs.app/Contents/Resources/
  4. To change the app display names, follow directions here

Building for Windows / Linux

  1. Download nw.js
  2. Checkout this repo into the nw.js directory next to nwjs.exe as a folder named package.nw
  3. To change icons, use ResourceHacker to modify nwjs.exe icons
  4. Further options to build/distribute here

How HandyBrowser Works

HandyBrowser (aka "Handy") is using node-webkit nw.js under the hood. Nw.js packages the latest chromium with the latest node.js and allows us granular security, html and many other features. Since we did not want users to manually have to modify system level configurations and run HNSD/HNS resolvers locally themselves, we rely on Docker. Docker allows us to create a lightweight linux virtual machine that installs HNS resolvers, and is pre-configured to use the HNS resolver. We simply proxy all web traffic from the Chromium browser into the Docker machine via another community procject, Godane, which resolves via HSD and returns content securely with it's own Root CA Certificate! Godane generates a root CA certificate on container creation which allows the user to proxy https traffic to the browser securely. During installation Docker runs a one-time install process, after that it won't need to be run again, and you'll be able to start browsing/resolving names immediately (even as the HSD fullnodes syncs in Docker).

alt text

Why Nw.js over Electron? The lead-dev of this project has used Nw.js extensively in enterprise-class application for many years and knows the inside/outs of every piece of the framework. In addition, the window manager (urlbar) we wrote needed to control all windows (tabs) created within the application and IPC is not fun. Nw.js allowed us more flexibility for the task of building a web-browser while offering the security we needed: No browser windows have access to Node.js, just the window manager. More reasons here, including: "Even better, you can run Chrome Apps/extensions using NW.js"

HandyBrowser v0.2.0 Features

  • Added Godane proxy support
  • Added HNSD light resolver for faster Handshake Name resolution during initial sync
  • Added the quick reference guide both external and within the app for quick setup to your other browsers and mobile devices
  • Added support for Audius.co music playback
  • Added Bitcoin donation address modal for HandyBrowser team
  • Bugfixes: Enable fullscreen video support; fixes for Vimeo/Netflix playback
  • Security: Tested Mist (Electron) XSS Vulnerabilities against HandyBrowser, mist vulnerability report
  • Security: Verified a range of certificate warnings/errors with https://badssl.com

HandyBrowser v0.1.0 Features

  • Imports Bookmarks locally from Google Chrome
  • Bookmark Manager and Bookmarks Bar
  • Network map for Handshake nodes; allows browser users to see the network grow globally as new browser users come online.
  • Custom "HNS Lock" that changes color between White [HNS]/Dark Grey[DNS]/Green [DNSSEC+HNS] to notate how you're connecting over DNS.
  • Video playback support, enjoy YouTube and Netflix.
  • Donate modal for the HandyBrowser team.
  • Use the HandyBrowser Docker container as a proxy for your mainstream browser to resolve Handshake Names. After starting HandyBrowser, set your mainstream browser proxy to localhost:5301, more in the quick reference quide
  • UI indicators for the Docker HSD node syncing status, and option for nuking the docker image in the event of any weird beta edge cases.

HandyBrowser TODOs

  1. It would be great to not need Docker's overhead. If there were a way to tell the browser which DNS to use locally that would be ideal. We're going work with the community and see if there's a more elegant solution in time. If a VM is neccessary, hyperkit or HyperV could be ideal alternatives to Docker.

  2. Re-enable the HandyMiner GUI that's built in already. Shell script/workflow to install HandyStratum onto the dockerized HSD machine needs to be made.

  3. Figure out how to get Chrome extensions working. They are most certainly supported in nw.js.

  4. Add native-styled close menu buttons for most linux variants. Right now its styled like Ubuntu 16.

  5. Addition auto-updating option so it's easier to upgrade to the latest version of Handy.

HandyBrowser Install FAQS

  • Before running HandyBrowser the first time, make sure you have Docker installed and running [Note you don't need a Docker account, simply just the Docker service so we can install the dependencies for your Handshake node]:

MacOS - https://docs.docker.com/docker-for-mac/release-notes/

Windows - https://docs.docker.com/docker-for-windows/release-notes/

Linux - https://docs.docker.com/engine/install/

  • The initial setup prompt for HSD should take 3-4minutes [this will change with the HNSD light client], and only needs to be done once. When you restart the app in the future it won’t need to occur, and the app will automatically start syncing your browser up-to-date.
  • Your firewall may prompt you a couple of times for permissions the first time you run the browser, be sure to accept those. We need them to make the browser work.
  • If you have any trouble with your Docker node not loading, either use the 'nuke' option in the HandyBrowser Menu or enter these commands in your terminal, and run the browser once more:
$ docker stop HandyBrowserHNSD
$ docker rm HandyBrowserHNSD
$ docker image rm handybrowserhnsd
  • To SSH into your docker container: docker exec -it HandyBrowserHNSD bash

Project Roadmap [Donation Driven Development]

  1. Build-in WebRTC Video/Audio chat + Screensharing utilizing Handshake for authentication (think oAuth but over Handshake 🤯)

HandyBrowser Support Telegram/Handshake Discussion:

🤝 HandshakeTalk Telegram

Donate HNS to the HandyBrowser Team:

alt text

HNS: hs1qwfpd5ukdwdew7tn7vdgtk0luglgckp3klj44f8

BTC: bc1qk3rk4kgek0hzpgs8qj4yej9j5fs7kcnjk7kuvt

LICENSE

HandyBrowser - a Chromium Browser powered by a Handshake Resolver.

Copyright (C) 2020

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].