Giter Club home page Giter Club logo

browser-base's Introduction

Wexond Browser Base

Actions Status Downloads FOSSA Status PayPal Discord

Wexond Base is a modern web browser, built on top of modern web technologies such as Electron and React, that can also be used as a framework to create a custom web browser (see the License section).

Table of Contents:

Motivation

Compiling and editing Chromium directly may be challenging and time consuming, so we decided to build Wexond with modern web technologies. Hence, the development effort and time is greatly reduced. Either way Firefox is based on Web Components and Chrome implements new dialogs in WebUI (which essentially is hosted in WebContents).

Features

  • Wexond Shield - Browse the web without any ads and don't let websites to track you. Thanks to the Wexond Shield powered by Cliqz, websites can load even 8 times faster!
  • Chromium without Google services and low resources usage - Since Wexond uses Electron under the hood which is based on only several and the most important Chromium components, it's not bloated with redundant Google tracking services and others.
  • Fast and fluent UI - The animations are really smooth and their timings are perfectly balanced.
  • Highly customizable new tab page - Customize almost an every aspect of the new tab page!
  • Customizable browser UI - Choose whether Wexond should have compact or normal UI.
  • Tab groups - Easily group tabs, so it's hard to get lost.
  • Scrollable tabs
  • Partial support for Chrome extensions - Install some extensions directly from Chrome Web Store* (see #110) (WIP)

Other basic features

  • Downloads popup with currently downloaded items (download manager WebUI page is WIP)
  • History manager
  • Bookmarks bar & manager
  • Settings
  • Find in page
  • Dark and light theme
  • Omnibox with autocomplete algorithm similar to Chromium
  • State of the art tab system

Screenshots

image

UI normal variant: image

UI compact variant: image image

Downloads

Contributing

If you have found any bugs or just want to see some new features in Wexond, feel free to open an issue. Every suggestion is very valuable for us, as they help us improve the browsing experience. Also, please don't hesitate to open a pull request. This is really important to us and for the further development of this project.

By opening a pull request, you agree to the conditions of the Contributor License Agreement.

Development

Running

Before running Wexond, please ensure you have latest Node.js and Yarn installed on your machine.

Windows

Make sure you have build tools installed. You can install them by running this command as administrator:

$ npm i -g windows-build-tools
$ yarn # Install needed depedencies.
$ yarn rebuild # Rebuild native modules using Electron headers.
$ yarn dev # Run Wexond in development mode

More commands

$ yarn compile-win32 # Package Wexond for Windows
$ yarn compile-linux # Package Wexond for Linux
$ yarn compile-darwin # Package Wexond for macOS
$ yarn lint # Runs linter
$ yarn lint-fix # Runs linter and automatically applies fixes

More commands can be found in package.json.

Documentation

Guides and the API reference are located in docs directory.

License

Usage of this project code and assets is disallowed.

By sending a Pull Request, you agree that your code may be relicensed or sublicensed.

browser-base's People

Contributors

akeemmclennon avatar blobcodes avatar boldwade avatar ctreadw6 avatar dependabot[bot] avatar eli0shin avatar fossabot avatar fyers avatar github-actions[bot] avatar kierandrewett avatar manfromarce avatar microchipq avatar remusao avatar sentialx avatar sovlookup avatar sreco avatar xnerhu avatar yousefsami avatar zalnars avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

browser-base's Issues

Possible EventEmitter memory leak detected.

I have this issue.

Im running it on OS X , using 2 terminals .. one to run "yarn watch" and other with "yarn start"
Problem happens when you close all tabs

(node:3564) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 get-tab-by-web-contents-id listeners added. Use emitter.setMaxListeners() to increase limit
(node:3564) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 get-tab-by-web-contents-id listeners added. Use emitter.setMaxListeners() to increase limit
(node:3564) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 get-tab-by-web-contents-id listeners added. Use emitter.setMaxListeners() to increase limit
(node:3564) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 get-tab-by-web-contents-id listeners added. Use emitter.setMaxListeners() to increase limit
(node:3564) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 get-tab-by-web-contents-id listeners added. Use emitter.setMaxListeners() to increase limit
[3598:0916/133543.638399:ERROR:adm_helpers.cc(62)] Failed to query stereo recording.
(node:3564) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 get-tab-by-web-contents-id listeners added. Use emitter.setMaxListeners() to increase limit
(node:3564) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 get-tab-by-web-contents-id listeners added. Use emitter.setMaxListeners() to increase limit

Dark Mode

Would love to see Wexond in Dark Mode 🌚 🌙

Add settings.

Add settings. Please give me your suggested settings below. The accepted settings will be listed here:

TODO:
[-] Change home page.
[-] Change search engine
[-] Disable colored tabs.

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didn’t receive a CI status on the greenkeeper/initial branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper App’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.

Always-on-top Support

Is your feature request related to a problem? Please describe.
When watching a YouTube video or keeping a recipe open, I'd like the window to stay on top of other windows currently being shown.

Describe the solution you'd like
A menu-bar toggle for a window to "pin" it or make it be always-on-top

Describe alternatives you've considered
No other alternatives

Settings and extensions not showing.

When I opened Wexond for the first time, I immediately wanted to install the µblock extension. I clicked on the little hamburger menu button on the top right to open the menu, I clicked on the Extensions tab but nothing showed up and it was completely empty. Then I went to the Settings tab but that was also completely blank.

I already reinstalled Wexond to see if that had any effect and I also tried running Wexond with administrator privileges. Wexond was installed in AppData > Local > Programs > wexond.

schermopname 14
schermopname 15

OS: Windows 10 version 1803 (build 17134)
Wexond version: 1.0.0-beta.1

Add history.

Add history with recently visited websites, some statistics etc.

Can't access settings pane on Linux

Expected behavior

I would expect that you can access the settings pane when you click on 'Settings' in the context menu, but it produces the exception in the terminal pasted below.

Actual behavior

Just get a console error and a stack trace.

Steps to reproduce the problem

Open up the browser, go to context menu, click on settings, get this stack trace in the terminal:

Checking for update
Error: Error: ENOENT: no such file or directory, open '/opt/Wexond/resources/app-update.yml'
    at /opt/Wexond/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:391:27
    at Generator.next (<anonymous>)
From previous event:
    at AppImageUpdater.loadUpdateConfig (/opt/Wexond/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:555:7)
    at Lazy.AppUpdater.configOnDisk (/opt/Wexond/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:134:43)
    at Lazy.get value [as value] (/opt/Wexond/resources/app.asar/node_modules/lazy-val/src/main.ts:18:23)
    at /opt/Wexond/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:298:46
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at AppImageUpdater.getUpdateInfo (/opt/Wexond/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:460:7)
    at /opt/Wexond/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:308:35
    at Generator.next (<anonymous>)
From previous event:
    at AppImageUpdater.doCheckForUpdates (/opt/Wexond/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:502:7)
    at /opt/Wexond/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:279:25
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at AppImageUpdater._checkForUpdates (/opt/Wexond/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:433:7)
    at AppImageUpdater.checkForUpdates (/opt/Wexond/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:217:35)
    at EventEmitter.ipcMain.on.e (/opt/Wexond/resources/app.asar/src/main/index.js:119:15)
    at emitOne (events.js:116:13)
    at EventEmitter.emit (events.js:211:7)
    at WebContents.<anonymous> (/opt/Wexond/resources/electron.asar/browser/api/web-contents.js:286:13)
    at emitTwo (events.js:126:13)
    at WebContents.emit (events.js:214:7)

Specifications

  • Version: 1.0.0-beta.1
  • OS: elementary OS 0.4.1

Use alternative method for browser context menu.

Use alternative method for browser context menu, because creating another window is buggy. Instead create menu inside the browser. This will fix #7 and it will allow to upgrade Electron to the newest version.

Screenshot:
screen

Using Debian 8 Jessie with Gnome 3.14 and NVIDIA closed drivers.

Add bookmarks.

Add bookmarks icon to systembar that opens list with all bookmarks instead of additional bar. Add bookmarks manager.

Add support for Chrome APIs

Extensions system is moved to a separate package: https://github.com/sentialx/electron-extensions

Currently supported APIs:

What should be in a new tab page?

What should be in a new tab page? Please give me your suggestions below. I'm wondering if add bookmarks cards or recently visited websites or something different.

Pages are reloading when reordering tabs

When reordering tabs, the webviews are reloading.

How to reproduce?

  1. Add two tabs.
  2. Open devtools and go to pages. Expand one of these pages.
    screen1
  3. Reorder those two tabs.
  4. Open devtools again and you will see that these pages were collapsed, that means that these pages were reloaded. You can notice that the guestinstance of webviews are different.

In addition when you can't add new tabs after reordering tabs.

Portable package for x64 win

Expected behavior

Please provide a zip file instead of an EXE file

Actual behavior

All data should be saved within app directory

Steps to reproduce the problem

Specifications

  • Version:
  • OS:

HTML files support

I'd like to see HTML local files support and other multimedia files like in Chrome

No icon on Ubuntu

Describe the bug
There is no icon to the app. Running on Ubuntu 16.04

To Reproduce
Steps to reproduce the behavior:

  1. Install the .deb on Ubuntu
  2. Do a search or start the app

Screenshots
image

Desktop:

  • OS: Ubuntu 16.04

Basic Auth

Is your feature request related to a problem? Please describe.
I have some pages that need Basic Auth,and Basic Auth need prompt, but electron not support;

Context menu is wrongly positioned

Self-explanatory.
peek 2017-04-26 12-49

As you can see it's working for the first click(if you're in a high position) but then it doesn't work at all in other positions

Tested on ubuntu 16.04 with electron 1.4.16

Add context menu

Add context menu. I need your suggestions how the menu can look like.

broken links

the screens are broken. the docs link takes you to the main github repo page and the downloads takes you to releases but there are no releases :(

Bug after upgrading to electron 3.0.0

Describe the bug

  • After upgrading it to 3.0.0 the webview is blank after typing the url.

To Reproduce
Steps to reproduce the behavior:

  1. Type Url
  2. webview is blank

Expected behavior

  • Webpage should be loaded

Screenshots
screen shot 2018-10-09 at 4 09 54 pm

Desktop (please complete the following information):

  • OS: MacOS
  • Browser: Chrome
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Program doesn't create its folder and .config files

I tried running

npm run watch
npm start

On first attempt, npm start resulted in:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: ENOENT: no such file or directory, mkdir '/home/pzmarzly/.wexond/plugins'
    at fs.mkdirSync (fs.js:885:18)
    at eval (webpack-internal:///./src/main/index.ts:31:57)
    at Module../src/main/index.ts (/home/pzmarzly/wexond/main.js:2082:1)
    at __webpack_require__ (/home/pzmarzly/wexond/main.js:20:30)
    at /home/pzmarzly/wexond/main.js:84:18
    at Object.<anonymous> (/home/pzmarzly/wexond/main.js:87:10)
    at Object.<anonymous> (/home/pzmarzly/wexond/main.js:2331:3)
    at Module._compile (module.js:642:30)
    at Object.Module._extensions..js (module.js:653:10)
    at Module.load (module.js:561:32)

(probably mkdir being non-recursive). But the directories were created, and every next attempt ended with:

screenshot from 2018-08-12 16-26-34

A JavaScript error occurred in the main process
Uncaught Exception:
Error: ENOENT: no such file or directory, open '/home/$USER/.config/wexond/window-data.json'

OS: Manjaro + Cinnamon DE

AppImage of 1.0.0-beta-1 does not start

Expected behavior

Application launches when opened

Actual behavior

Application does not launch, with the following output:

[kilian:~]$ ./wexond-1.0.0-beta.1-x86_64.AppImage 
module.js:545
    throw err;
    ^

Error: Cannot find module '/tmp/.mount_wexondJXMDmM/resources/electron.asar/browser/init.js'
    at Function.Module._resolveFilename (module.js:543:15)
    at Function.Module._load (module.js:473:25)
    at Function.Module.runMain (module.js:683:10)
    at startup (bootstrap_node.js:196:16)
    at bootstrap_node.js:622:3

Steps to reproduce the problem

Start the AppImage

Specifications

  • Version: Appimage x64
  • OS: Ubuntu 16.04

Fix context menu transparency on Linux

@matikorzenio

Menu on Linux has got white background, but it should be transparent. Transparency works well in Electron 1.4.14, but in higher versions it doesn't work.

Error while running command yarn run watch:app

ERROR in ./src/components/AddressBar/index.jsx
Module not found: Error: Can't resolve '../../defaults/wexond-urls' in '/home/impadmin/projects/wexond/src/components/AddressBar'
@ ./src/components/AddressBar/index.jsx 3:0-52
@ ./src/components/Bar/index.jsx
@ ./src/components/App/index.jsx
@ ./src/bootstrap.jsx

ERROR in ./src/components/Tab/index.jsx
Module not found: Error: Can't resolve '../../defaults/wexond-urls' in '/home/impadmin/projects/wexond/src/components/Tab'
@ ./src/components/Tab/index.jsx 10:0-52
@ ./src/components/Tabs/index.jsx
@ ./src/components/App/index.jsx
@ ./src/bootstrap.jsx

ERROR in ./node_modules/css-loader?{"sourceMap":true}!./node_modules/sass-loader/lib/loader.js?{"sourceMap":true}!./src/app.scss
Module not found: Error: Can't resolve './images/Bar/wexond.png' in '/home/impadmin/projects/wexond/src'
@ ./node_modules/css-loader?{"sourceMap":true}!./node_modules/sass-loader/lib/loader.js?{"sourceMap":true}!./src/app.scss 6:8049-8083
@ ./src/app.scss
@ ./src/bootstrap.jsx

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.