Giter VIP home page Giter VIP logo

buttercup-browser-extension's Introduction


Buttercup for Browsers


Buttercup Browser Extension

Buttercup credentials manager extension for the browser.

Buttercup Tests status Chrome version Chrome users Firefox version Firefox users Chat securely on Keybase

About

This browser extension allows users to interface with password archives authored by the Buttercup password manager (it requires v2.26 and later of the desktop application to be installed to function).

The extension makes secured requests to the desktop application for information within its unlocked vaults, and makes those credentials available within the browser. It is also able to save new logins from the browser extension as they're recognised. Besides a username and password, the extension can also enter OTP codes when required.

Forms & Logins

Buttercup for Browsers auto-detects some login forms and login inputs, allowing the user to auto-fill them at their discretion. This extension uses Locust under the hood to detect forms and inputs (any issues with detecting forms and inputs should be opened there).

Supported browsers

Chrome, Firefox, Edge (version 79+) and Brave are supported.

Some browsers, such as Brave for example, will be able to install Buttercup via the Google Chrome web store.

Other browsers will be supported in order of request/popularity. Issues created for unsupported browsers, or for browsers not on the roadmap, may be closed without warning.

Opera is not supported due to their incredibly slow and unreliable release process. We will not be adding support for Opera.

Integrated platforms

The extension allows for connections to several services, such as Dropbox and Google Drive. The extension supports whatever platforms the desktop application does, including local vaults.

Supported platforms

The browsers listed above, running on Windows, Mac or Linux on a desktop platform. This extension is not supported on any mobile or tablet devices.

Usage

The browser extension can be controlled from the popup menu, which is launched by pressing the Buttercup button in the browser menu. This menu displays a list of archives as well as settings and other items.

When viewing pages that contain login forms, Buttercup can assist logging in when you interact with the login buttons (displayed beside detected login inputs).

Buttercup can also remember new logins, which are detected as they occur.

You can block Buttercup from detecting forms and inputs by applying the attribute data-bcupignore=true:

<input type="email" data-bcupignore="true" />

Development

Development of features and bugfixes is supported in the following environment:

  • NodeJS version 20 (latest minor version)
  • Linux / Mac
  • Tested in at least Chrome / Firefox

To set up your development environment:

  • Clone this repo
  • Ensure API keys are available (Google Drive)
  • Execute npm install inside the project directory
  • Run npm run dev:chrome or similar
  • Load the unpacked dist folder in your browser addons

Chrome

Run the following to develop the extension:

  1. Execute npm run dev:chrome to build and watch the project (to build production code, execute npm run build)
  2. Go to chrome://extensions and enable "Developer mode"
  3. Select the new button "Load unpacked", then select the ./dist directory built on step 1

Firefox

Run the following to develop the extension:

  • Execute npm run dev:firefox to build and watch the project (to build production code, execute npm run release)

Releasing

To build release-ready zip archives, run the command npm run release after having set up the development environment. The archives will be written to release/(browser) where (browser) is the browser type. Archives named extension.zip contain the built extension sourcecode and source.zip contains the raw source.

Adding to Chrome

You can load an unpacked extension in Chrome by navigating to chrome://extensions/. Simply locate the project's directory and use dist/ as the extension directory.

Adding to Firefox

You can load an unpacked extension in Firefox by navigating to about:debugging. Click "Load Temporary Add-on" and locate the project's directory, using dist/ as the extension directory.

buttercup-browser-extension's People

Contributors

5k9m avatar agios avatar alxwrd avatar devlanda avatar gordroid avatar hardgroi avatar karatsuba avatar neojp avatar oxalin avatar perry-mitchell avatar pirgosth avatar sallar avatar tasos-ale avatar ttamminen avatar yedidyar 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

buttercup-browser-extension's Issues

Dropbox production approval

Dropbox need the following for production use:

  • Copy of the extension to test with
  • Way to create new archives

Needs mostly complete extension to be published.

Removing `console.log`s

There are a couple of console.logs made by the extension that are annoying for those who want to use dev tools for debugging their own work, especially this one which shows up when a login form appears on the page.

Closing popup in-page is difficult

Closing the in-page credential chooser doesn't always work (addons.mozilla.org for example). Sometimes many clicks are required.

This could be improved by adding a transparent div covering the whole page behind the popup which, when clicked, closes the popup.

Popup save-next

When showing the popup, add support for save-next (via the second button).

Saving the next login will force a new tab once the form is submitted, prompting for saving.

image

Fix linting errors

There's a huge number of linting errors. Fix these and or update the rules to something sensible.

Removing archives

Add support for removing archives. This should be completed in the archive list menu in #21

Local archive through HTML5 Filesystem API

Can I add a local archive? Dropbox, Owncloud and Webdav do not satisfy my needs.

Right now I fixed it by using my local webserver. I created a Virtual Host. Then I selected WebDav, added the Virtual Host's domain as WebDav url. So now I do not need to move out of my LAN.

So what I think is missing, is a fourth option called Local. It should be possible to use HTML5's Filesystem API.

Edge support

Convert the extension so that it supports MS Edge.

Port to firefox

Check what is needed to get this working in Firefox, latest versions.

Archive list in setup pages

When configuring the extension using the setup pages, a list of archives should be present to allow for the following tasks:

  • Renaming archives
  • Deleting (removing) archives

Right now it's a bit bare:
image

Improve saving credentials

The saved credentials when adding a new login needs to work better. The adding of the login URL and creds needs to be more robust.

Add linting

Code needs to be linted. Add travis test.

Can't unlock archives

Hi, first of all, thanks for Buttercup, overall looking very good so far :)
I have a problem with the Chrome extension though, if an archive is locked, nothing happens if I click the Buttercup Icon in the browser bar, so I'm not able to unlock my archive.
Somehow it worked after a while yesterday, but today I've clicked on the "lock" icon for testing and now I can't unlock it again since the "flowout" with the archive doesn't show up on click :(
Any idea what might be the problem?
image
Workaround: Disabling and enabling it again seems to help, at least once :)

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.