Git Product home page Git Product logo

webclients's Introduction

Web clients

This project is a monorepo hosting the proton web clients. It includes the web applications, their dependencies & shared modules as well as all tooling surrounding development of the web clients (as well as some additional miscellaneous things).

  • Proton Mail
  • Proton Calendar
  • Proton Drive
  • Proton Account
  • Proton VPN
  • Proton Pass

Technically, this monorepo is based on Yarn 3 & Yarn Workspaces, with unified versioning for all packages inside.

Getting Started

You'll need to have the following environment to work with this project

  • Node.js LTS
  • Yarn 3
  • git

You can find more detailed version-constrains for Node.js and yarn in package.json.

# Clone the project
git clone https://github.com/ProtonMail/WebClients.git
git clone [email protected]:ProtonMail/WebClients.git

# Install all dependencies for the entire monorepo & symlink
# local dependents to one another
yarn install

# Run web clients by running proton-<package-name>
# Example: proton mail web client
yarn workspace proton-mail start

For additional details on how to interact with the monorepo, see the yarn docs for reference.

Help us to translate the project

You can learn more about it on our blog post.

License

The code and data files in this distribution are licensed under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See https://www.gnu.org/licenses/ for a copy of this license.

See LICENSE file

webclients's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webclients's Issues

Fix links to localhost version when running the dev version

  • Desktop
  • Chrome
  • Linux
  • /login
  • Free?

Description or steps to reproduce the problem

When I run the development version of Web Client and the home page opens up at http://localhost:8080/login , all the other links point to protonmail.com instead of localhost. For eg https://protonmail.com/signup

Expected Behavior

The web client should be self sufficient to run on a localhost with not external dependencies.

Actual Behavior

All links are pointed to protonmail.com TLD

Don't let free users create filters

Free users can see the filter tab and can go through the steps of creating new filters. This is a Plus feature, however, so the save button will always be greyed out.

This is not communicated to the user in any way: the button is simply not clickable. Ideally, the "Add Filter" and "Clear All" buttons should be replaced with a call to action to upgrade.

shortcut CTRL+S

Hey,
Can you implement CTRL+S to save the email please? 🐳

Security question about key exchange / Wrong model?

Hello,

Your website states:
https://protonmail.com/support/knowledge-base/how-is-the-private-key-stored/

  • How is the private key stored?
  • Your ProtonMail private key is stored encrypted on your browser using your mailbox password. It is sent to our servers in the encrypted form. The only time it is decrypted is when you correctly enter your mailbox password.
  • Your ProtonMail private key is stored encrypted on your browser using your mailbox password. It is sent to our servers in the encrypted form. The only time it is decrypted is when you correctly enter your mailbox password.

I don't understand Protonmail cypto model:

Client public key is encrypted with password. It is sent encrypted to server. Thus private key could be stolen (1) on server (2) during transmission (3) on client. Password should not be weak and you don't test password weakness. It is vulnarable to back-doors attacks.

GnuPG relies on a slightly different model. In theory, GPG private key should be created and stored on client. In the client keyring, a client GPG key is created from the public GPG key. Client encrypts message with GPG public key. Message is sent encrypted to server. So email server sees only encrypted traffic. If public key is stolen, it cannot be used to decrypt data, but only encrypt data. Furthermore, there is not private key (encrypted or not) on server. So it cannot be stolen on server.

So a better model would be (a) private GnuPG key kept secretly on client side and (b) only public GnuPG key sent to server for encryption of messages.

Could you correct my message and explain a little bit more?

Furthermore (but don't answer), when you create a private key, we are not sure that is part of a bigger keyring with a master GPG key, which would allow to decrypt all traffic. We can only trust you are good guys. Also you may be vulnerable to man-in-the-middle attacks.

Personally, I would prefer a knowledge base showing also possible weakness, not only trying to convince people in using Protonmail, saying it is "rock-secure".

I will try and use Protonmail for fun, but will not recommend it serious clients unless you explain better the encryption protocol. I must be wrong somewhere, please correct me.

npm install exits on node-sass installation

I tried to install and run the WebClient, but it seems some font-awesome file is missing. Is this a bug or do I need to install the font-awesome file manually?

~/WebClient# npm start

> [email protected] start /root/WebClient
> grunt watch --api=dev

Running "notify_hooks" task

Running "ngconstant:dev" (ngconstant) task
Creating module proton.config at src/app/config.js...OK

Running "clean:build" (clean) task
>> 1 path cleaned.

Running "html2js:app" (html2js) task
Successfully converted 191 html templates to js.

Running "sass:build" (sass) task
>> Error: File to import not found or unreadable: ../../vendor/components-font-awesome/scss/font-awesome
>>        Parent style sheet: /root/WebClient/src/sass/_icons.scss
>>         on line 1 of src/sass/_icons.scss
>> >> @import "../../vendor/components-font-awesome/scss/font-awesome";
>>    ^
Warning:  Use --force to continue.

Aborted due to warnings.

npm ERR! Linux 4.4.0-83-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
npm ERR! node v6.11.1
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: `grunt watch --api=dev`
npm ERR! Exit status 6

Expand all

I see that ProtonMail now has conversation view, the first such client besides Gmail I am aware of.

Also similar to Gmail is all messages are collapsed except for unread.

However Gmail has an "Expand all" button, and ProtonMail appears to lack this. So if you wish to reread the entire conversation, you have to click every message that has already been read.

Notification icon (blue circle near favicon) poping for nothing

  • Which browser? Chromium 55
  • Which OS? Debian 9.0
  • Which layout mode? Column mode
  • Which threading mode? Message mode
  • Can you reproduce the problem each time? Yes
  • Which url? https://mail.protonmail.com/inbox

What steps will reproduce the problem?

    1. Login
    1. Get away from protonmail leaving the tab open, wait…
    1. Get a blue circle near the protonmail favicon telling "Hey there's something new here".

What is the expected result?

Something new, like a new mail þ

What happens instead?

Got nothing to read :( Like an hourly reminder that I have no friends :,(

Please provide any additional information below. Attach a screenshot if possible.

It may be induced by mails received but skipping inbox (but labelled), but I'm still not sure (I'm not monitoring it closely enough).

Optimization - Conversation

Yahallo x)

When i have a conversation with more than 7 nay 10 emails (ah, also, my PC is old...), the loading is soooo long...
So, it's because all emails are decrypted in the same time ?

We cannot decrypt the email(s) that we selected to optimize the performances ?
🐳

Unsuitable resolution declared for angular

  • Browser: Chrome 56.0.2924.87
  • OS: Windows 10 x64
  • Can you reproduce the problem each time? Yes

What steps will reproduce the problem?

    1. Clone the Repo
    1. npm install followed by bower install

Please provide any additional information below. Attach a screenshot if possible.

  • Bower version: 1.8.0

capture

Question : PKP

Hey 🐳,
HPKP is disabled, will you enable it ?

capture du 2016-08-26 23 06 01

Source : SSLlabs

Possibility of packing web-app as electron desktop mail client

  • Which browser?
  • Which OS? Windows / Mac OS / Linux
  • Which layout mode? Column mode / Row mode
  • Which threading mode? Conversation mode
  • Can you reproduce the problem each time? Yes
  • Which url?

What is the expected result?

Packing the web-app as desktop mail client

docker fails at the npm install step

Description or steps to reproduce the problem

make start

Expected Behavior

Get access to the web app.

Actual Behavior

I get a node error:

 ~/f/WebClient   public  make start
./bin/crun-node npm install --unsafe-perm --loglevel warn --no-bin-links
Resolving node version...
Error: No such image or container: node:5.11.1
Pulling node:5.11.1 image...
5.11.1: Pulling from library/node

5c90d4a2d1a8: Pull complete 
ab30c63719b1: Pull complete 
c6072700a242: Pull complete 
abb742d515b4: Pull complete 
22efa86cdb65: Pull complete 
6950894a9fa1: Pull complete 
Digest: sha256:d297df3a72889ca35fbf6f237a2c25dfa1c874cdcea332adc7a7a7fa8a955da6
Status: Downloaded newer image for node:5.11.1
+ docker run -v /home/pierre/f/WebClient:/home/pierre/f/WebClient -v /tmp:/tmp -v /var/run/docker.sock:/var/run/docker.sock -e HOME=/home/pierre/f/WebClient -w /home/pierre/f/WebClient -e PATH=./node_modules/.bin/:./node_modules/grunt-cli/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --rm -ti --sig-proxy=true node:5.11.1 npm install --unsafe-perm --loglevel warn --no-bin-links
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated [email protected]: Deprecated, use jstransformer
npm ERR! Linux 4.4.0-45-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--unsafe-perm" "--loglevel" "warn" "--no-bin-links"
npm ERR! node v5.11.1
npm ERR! npm  v3.8.6

npm ERR! Maximum call stack size exceeded
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /home/pierre/f/WebClient/npm-debug.log
Makefile:8: recipe for target 'npm-install' failed
make: *** [npm-install] Error 1

Here are more details from the npm-debug.log:

70003 silly build [email protected]
70004 verbose stack RangeError: Maximum call stack size exceeded
70004 verbose stack     at emitThree (events.js:110:13)
70004 verbose stack     at emit (events.js:188:7)
70004 verbose stack     at null.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
70004 verbose stack     at emitThree (events.js:110:13)
70004 verbose stack     at emit (events.js:188:7)
70004 verbose stack     at null.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
70004 verbose stack     at emitThree (events.js:110:13)
70004 verbose stack     at emit (events.js:188:7)
70004 verbose stack     at null.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
70004 verbose stack     at emitThree (events.js:110:13)
70004 verbose stack     at emit (events.js:188:7)
70005 verbose cwd /home/pierre/f/WebClient
70006 error Linux 4.4.0-45-generic
70007 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--unsafe-perm" "--loglevel" "warn" "--no-bin-links"
70008 error node v5.11.1
70009 error npm  v3.8.6
70010 error Maximum call stack size exceeded
70011 error If you need help, you may report this error at:
70011 error     <https://github.com/npm/npm/issues>
70012 verbose exit [ 1, true ]

Consider adding an opaque background to the favicon.

The favicon for both the main website (protonmail.com) and the web mail client (mail.protonmail.com) are currently a dark color on a transparent background. This makes it hard to see the icon when the browser is using a dark UI theme. If the favicon were edited to use an opaque (or even translucent) background color, it would assure sufficient contrast to be visible on all web browsers.

I see this same issue when testing in both Firefox Beta 54.0b2 and Google Chrome Beta 58.0.3029.81, on Fedora 25 Workstation x86_64.

screenshot from 2017-04-27 16-57-29

screenshot from 2017-04-27 16-30-59

Start app in docker container, permission denied

make start

./bin/crun-node npm install --unsafe-perm --loglevel warn --no-bin-links

  • docker run -v /home/user/git/WebClient:/home/user/git/WebClient -v /tmp:/tmp -v /var/run/docker.sock:/var/run/docker.sock -e HOME=/home/user/git/WebClient -w /home/user/git/WebClient -e PATH=./node_modules/.bin/:./node_modules/grunt-cli/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --rm -ti --sig-proxy=true node:5.11.1 npm install --unsafe-perm --loglevel warn --no-bin-links
    Error: EACCES: permission denied, scandir '/home/user/git/WebClient'
    at Error (native)
    Error: EACCES: permission denied, open 'npm-debug.log.896050243'
    at Error (native)

DOCKER_OPTS="-p 8080:8080" bin/crun-node npm start

  • docker run -v /home/user/git/WebClient:/home/user/git/WebClient -v /tmp:/tmp -v /var/run/docker.sock:/var/run/docker.sock -e HOME=/home/user/git/WebClient -w /home/user/git/WebClient -e PATH=./node_modules/.bin/:./node_modules/grunt-cli/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -p 8080:8080 --rm -ti --sig-proxy=true node:5.11.1 npm start
    Error: EACCES: permission denied, scandir '/home/user/git/WebClient'
    at Error (native)
    Error: EACCES: permission denied, open 'npm-debug.log.896050243'
    at Error (native)

It's my user directory, so why would I be getting permission denied?

Star/Unstar Toggle Location

The star/unstar toggle is located right where a right-handed person touches to open an email. How about relocating it under the date?

NPM install fails

I tried to install the ProtonMail Webinterface.
Sadly when I do: sudo npm install I always get:

git clone --template=/root/.npm/_git-remotes/_templates --mirror ssh://[email protected]/bartbutler/angular-gettext-tools.git /root/.npm/_git-remotes/ssh-git-github-com-bartbutler-angular-gettext-tools-git-c40c6a4

I tried changing this to https:// in the package.json since manual https checkout works but ssh:// does not. Sadly it still tries using ssh ...

So I just uncommented that package and it installed just fine.

Now I do: npm start and this results in the following:

> protonmail-web@ start /var/www/mail.yatekii.ch/WebClient
> grunt watch --api=dev

Running "notify_hooks" task

Running "ngconstant:dev" (ngconstant) task
Creating module proton.config at src/app/config.js...OK
Warning: Task "nggettext_extract" not found. Use --force to continue.

Aborted due to warnings.

npm ERR! Linux 4.1.15-gentoo-r1-xxxx-grs-ipv6-64
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "start"
npm ERR! node v0.12.6
npm ERR! npm  v2.11.2
npm ERR! code ELIFECYCLE
npm ERR! protonmail-web@ start: `grunt watch --api=dev`
npm ERR! Exit status 3
npm ERR! 
npm ERR! Failed at the protonmail-web@ start script 'grunt watch --api=dev'.
npm ERR! This is most likely a problem with the protonmail-web package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     grunt watch --api=dev
npm ERR! You can get their info via:
npm ERR!     npm owner ls protonmail-web
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /var/www/mail.yatekii.ch/WebClient/npm-debug.log

And here is a cat of the .log:

nebuchadnezar WebClient # cat /var/www/mail.yatekii.ch/WebClient/npm-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info prestart protonmail-web@
6 info start protonmail-web@
7 verbose unsafe-perm in lifecycle true
8 info protonmail-web@ Failed to exec start script
9 verbose stack Error: protonmail-web@ start: `grunt watch --api=dev`
9 verbose stack Exit status 3
9 verbose stack     at EventEmitter.<anonymous> (/usr/lib64/node_modules/npm/lib/utils/lifecycle.js:213:16)
9 verbose stack     at EventEmitter.emit (events.js:110:17)
9 verbose stack     at ChildProcess.<anonymous> (/usr/lib64/node_modules/npm/lib/utils/spawn.js:24:14)
9 verbose stack     at ChildProcess.emit (events.js:110:17)
9 verbose stack     at maybeClose (child_process.js:1015:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
10 verbose pkgid protonmail-web@
11 verbose cwd /var/www/mail.yatekii.ch/WebClient
12 error Linux 4.1.15-gentoo-r1-xxxx-grs-ipv6-64
13 error argv "/usr/bin/node" "/usr/bin/npm" "start"
14 error node v0.12.6
15 error npm  v2.11.2
16 error code ELIFECYCLE
17 error protonmail-web@ start: `grunt watch --api=dev`
17 error Exit status 3
18 error Failed at the protonmail-web@ start script 'grunt watch --api=dev'.
18 error This is most likely a problem with the protonmail-web package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error     grunt watch --api=dev
18 error You can get their info via:
18 error     npm owner ls protonmail-web
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]

So I actually have no clue what fails. Appart from node being the biggest mess I have ever seen ;)

I hope I am allowed to ask her :S

Thanks for any help!

Cannot scroll long non-responsive HTML mails horizontally

  • Which browser? Chrome / Firefox / Safari / Opera
  • Which OS? Windows / Mac OS / Linux / iOS / Android
  • Which layout mode? Column mode / Row mode
  • Which threading mode? Conversation mode / Message mode
  • Can you reproduce the problem each time? Yes / No
  • Which url? Inbox

What steps will reproduce the problem?

Opening a message that isn't using responsive layout and viewing it on a monitor that doesn't have big enough resolution to show it (1280x800).

What is the expected result?

A floating horizontal scrollbar should appear at the bottom of the window.

What happens instead?

The horizontal scrollbar only appears when I scroll the end of the message. The mail (part of it) is unreadable this way.

Additional information

I have to switch to row mode when this happen, so I can see the whole message that way. I've never got a non-responsive HTML email that wouldn't fit the screen in row view, however, I'm not the only one for I report this issue but all PM users, and there are also worse resolutions and silly email senders in the world who still don't use responsive themes.
When a too wide non-responsive email loads, maybe a hint (flashing it or something) for clicking on the row view button is enough and would help new users.

Can't connect to backend in dev mode

What steps will reproduce the problem?

    1. Run npm start
    1. open localhost:8080
    1. log in

What is the expected result?

Be able to log in

What happens instead?

Error message : A new version of ProtonMail is available. Please refresh this page and then logout and log back in to automatically update.

Please provide any additional information below. Attach a screenshot if possible.

I'm on the master branch and up-to-date. I guess the client is behind the api version. I would like to contribute to PM, but I'm unable...

Kabyle localization

Please would you like consider the kab localization with the next release? The translations of the web client and the related strings are complete

[Suggestion] Block embedded images in spam folder by default

What steps will reproduce the problem?

    1. Receive an email in the spam folder.
    1. Open it to read.
    1. Email auto-loads embedded images. (If enabled.)

What is the expected result?

Emails in spam folder should ask to show images. Even if you embedded images are enabled for your inbox.

Images sometimes secretively used to track "read receipts" or if the recipient has opened the email. Thus, betraying your privacy. If an email does not make it past the spam filter, then it should not be allowed to auto-load images. Unless the user allows it temporarily. (Show the option to enable images for this single email.)

To get around this, I have to change ProtonMail settings to check whats in my spam folder. Settings > Account > Email Content. And then turn it back on after I'm done. And that's annoying.

What happens instead?

Opening a spam email in spam folder should ask to display images. (Even if you enabled them for all emails like your inbox). This is because I may not trust emails in my spam folder right away.

feat/split branch?

  • Which browser (+ version) ? Chrome / Firefox / Safari / Opera
  • Which OS (+ version)? Mac OS
  • Which layout mode? Column mode / Row mode
  • Which threading mode? Conversation mode / Message mode
  • Can you reproduce the problem each time? Yes / No
  • Which url?

What steps will reproduce the problem?

    1. npm install

What is the expected result?

installation by NPM

What happens instead?

Gives error:

npm ERR! code 1
npm ERR! Command failed: /usr/bin/git checkout feat/split
npm ERR! error: pathspec 'feat/split' did not match any file(s) known to git.

Please provide any additional information below. Attach a screenshot if possible.

Infinite scroll not fetching more messages

  • Version 57.0.2987.98 built on Debian 9.0, running on Debian 9.0 (64-bit)
  • Column mode
  • Message mode
  • Can you reproduce the problem each time? Yes
  • Which url? https://mail.protonmail.com/

What steps will reproduce the problem?

    1. Log in to mail.protonmail.com
    1. Look at the number of messages near a label or a folder in my case "python-ideas (431)", or "spam (999+).
    1. Go to the given label or folder
    1. In my case, the number of messages displayed is far less than the number of messages advertised, like, ~50.

What is the expected result?

I expect the interface to lazily load as I scroll, an "infinite scroll", so I can find very old mails without having to use the search engine, just by scrolling.

What happens instead?

No new mails are displayed, so I can see only about 50 emails, there should be more.

Selectable email address label

In the compose email panel, it would be really helpful to let the user select, copy, delete easily the email address in the TO CC BCC fields just like that.

  • Which browser? Chrome / Firefox
  • Which OS? Linux
  • Which layout mode? Column mode
  • Which threading mode? Conversation mode / Message mode
  • Can you reproduce the problem each time? Yes

What steps will reproduce the problem?

    1. Compose a message, add one or many recipient
    1. Try to copy recipient’s email in the TO field, both with the cursor and keyboard only.

What is the expected result?

Like some web mail clients, a double click on the recipient’s name + email label could turn it into raw text, just like this script behave.

What happens instead?

It is really painful to select the address label’s content with the mouse’s cursor or the keyboard (shift + ⬅️ or shift + ➡️ ). It is consequently really difficult to copy an already written address. Double clicking on an address label does not select the address, and with my configuration, it loses the selection right after the selection, unlike in any text field.

Self hosting

Hi,
I want to use ProtonMail web client as webmail client for my own SMTP and IMAP server (which are working fine and easily connects with all the stander mail clients) .
if you could point me to right config file or doc which explains how should I go about this will be really nice.

Possible integration with OnlyKey

Hi,

We have a complimentary product OnlyKey that would allow users to keep their keys offline in a token. This allows doing private key operations without the private key needing to be exposed on the system. This is a recently introduced feature and now we are looking to integrate with PGP solutions like the Protonmail webclient. Essentially, this would be a minor edit for the app to support OnlyKey. The user could select to do private key operations via the key stored on OnlyKey and then the request is sent via USB HID so it is universally supported on Windows, Mac, Linux, Android. Lets talk if your interested. Here is video that demonstrates the feature

Using `j` and `k` to navigate the row view email list

Currently, it is possible to navigate up and down the column view email list using j and k, if an email message is open.

In the row view, it is possible to open an email and then navigate to next and previous email with j and k. However, it is not possible to navigate up and down the list of emails in row view.

I think it would be great to be able to navigate the row view email list with j and k, in addition to using the arrow keys, and I wonder if this feature could be added to protonmail.

See the ProtonMail email address easily

I was looking for the exact email address of my ProtonMail account, and the only way I found to get it is to click on the user icon in the top tool-bar of the web interface (on desktop Linux, with Firefox 54), but unfortunately the email address is truncated...

I think it would be better to make the thing that appears when we click on our user name in the tool-bar bigger so that the email address is not truncated. Or at least there should be an option to expand it if the address happens to be really too long (mine is quite short but was truncated).

capture du 2017-06-20 12-43-49

So, make this bigger so that we see the entire email address:
capture du 2017-06-20 12-44-17

And if it's really too long, truncate it but put something like this to expand it if we want to:
capture du 2017-06-20 12-44-52

Source code seems hardcoded towards existing online service

I'm ditching gmail and need a webmail service on my VPS. I just stumbled upon protonmail today, while looking for candidates to evaluate. Naturally I'd like to minimize the time spent with each solution to sort out the good and the bad.

Problem: When trying the quick try-out way: npm install && npm start, it's possible to create accounts from the app, but they seem to work towards the official online service of the company behind the product.

I thought I'd ask quickly before spending time on reviewing the source code, since I have a long list of candidates to sift through.

Is this only superficial (in the UI, and the "user name taken" lookup)? Or does it actually create an account on the existing service rather than on my own box?

Long delay

Yahallo, 🐳

When i switch tab to a random website, it's fast. But, when i switch to the mail.protonmail.ch tab, is long (2,3 seconds). I cant give more details... It's all.

On Chromium, it works normally.

I'm on Firefox, 47.0.1, Debian Jessie Update 5.

Empty spam/trash hotkeys

I am looking to add hotkeys and therefore commands for emptying the trash and spam folders. Is this something that is already being undertaken? I couldn't find an issue for it.

I believe that this should be possible no matter the current view, and not just only when either folder is in view.

please close

I opened an issue here by mistake, please close this one :)

Escape doesn't close Compose when cursor is in to/from/subject field.

  • Which browser? Chrome
  • Which OS? Linux
  • Which layout mode? Column mode
  • Which threading mode? Conversation mode
  • Can you reproduce the problem each time? Yes
  • Which url? https://mail.protonmail.com/inbox

What steps will reproduce the problem?

  1. Press "c"
  2. Press "Escape"

What is the expected result?

Compose modal should close.

What happens instead?

Nothing happens.

Please provide any additional information below. Attach a screenshot if possible.

Escape doesn't close Compose when cursor is in to/from/subject field.
Escape only closes the Compose modal when the cursor is in the body field.

Add LibreJS Support

It would be nice if you could add the licenses to the JavaScript so that it can run with the LibreJS Firefox browser extension enabled. Here is more information about how to do this: https://www.gnu.org/software/librejs/free-your-javascript.html.

  • Which browser? Firefox

What steps will reproduce the problem?

    1. Install LibreJs
    1. Navigate to https://protonmail.com/signup
    1. Notice the message "Javascript is required to sign up. Please enable Javascript and reload this page."

What is the expected result?

The page should work normally and show a form to sign up.

What happens instead?

The JavaScript gets blocked because LibreJs cannot find any free software licenses for the JavaScript.

ReferenceError: i18nLoader is not defined

  • Which browser (+ version) ? Any.
  • Which OS (+ version)? Linux, Ubuntu 16.04 LTS.
  • Can you reproduce the problem each time? Yes

What steps will reproduce the problem?

    1. npm install
    1. npm start

What is the expected result?

Installing the npm packages and starting the project

What happens instead?

Not installing all packages, and fails to start.

Please provide any additional information below. Attach a screenshot if possible.

root@ubuntu-s-1vcpu-3gb-nyc3-01:~/mail/WebClient# npm start

> [email protected] start /root/mail/WebClient
> grunt watch

Loading "Gruntfile.js" tasks...ERROR
>> ReferenceError: i18nLoader is not defined
Warning: Task "watch" not found. Use --force to continue.

Aborted due to warnings.
npm ERR! code ELIFECYCLE
npm ERR! errno 3
npm ERR! [email protected] start: `grunt watch`
npm ERR! Exit status 3
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-11-23T07_44_06_135Z-debug.log

unable to read node_modules/pt.blobjs

  • Which browser (+ version) ? Chrome / Firefox / Safari / Opera
  • Which OS (+ version)? Mac OS
  • Which layout mode? Column mode / Row mode
  • Which threading mode? Conversation mode / Message mode
  • Can you reproduce the problem each time? Yes
  • Which url?

What steps will reproduce the problem?

    1. git pull
    1. npm install
    1. npm start

What is the expected result?

it should be working?

What happens instead?

does not work;

> [email protected] start /path/to/WebClient
> grunt watch --api=dev

Running "notify_hooks" task

Running "ngconstant:dev" (ngconstant) task
Creating module proton.config at src/app/config.js...OK

Running "clean:build" (clean) task
>> 1 path cleaned.

Running "html2js:app" (html2js) task
Successfully converted 231 html templates to js.

Running "sass:build" (sass) task

Running "concat:build_css" (concat) task

Running "postcss:dist" (postcss) task
>> 2 processed stylesheets created.

Running "copy:build_app_assets" (copy) task
Created 16 directories, copied 142 files

Running "copy:build_appjs" (copy) task
Copied 545 files

Running "concat:build_js" (concat) task

Running "copy:build_vendorjs" (copy) task
Warning: Unable to read "node_modules/pt.blobjs/Blob.js" file (Error code: ENOENT). Use --force to continue.

Please provide any additional information below. Attach a screenshot if possible.

I check the pt.blobjs in node_modules, there is no module directory there. There is nothing on package.json about it either. So it is missing somewhere somehow. Maybe we don't even need it but what should I do?

[workflow] Dangerously easy to accidentally break Encrypt for non-ProtonMail users workflow

  • Which browser (+ version) ? All
  • Which OS (+ version)? All
  • Which layout mode? All
  • Which threading mode? All
  • Can you reproduce the problem each time? Yes
  • Which url? protonmail.com

What steps will reproduce the problem?

    1. Create a new message in protonmail. Set a password with the "Encrypt for non-ProtonMail users" feature, and send it to an unencrypted email address
    1. Open the mail on the unencrypted email address. Follow the link and use the password, reply to the mail in a secure manner.
    1. Open the secure reply in proton mail, type a response. Do not set a new "Encrypt for non-ProtonMail users" password.
    1. Send the response. Observe that protonmail does not prompt you to input a new password, or remind you that you are responding to a formerly encrypted chain.
    1. Open the response on the unencrypted mail client. Observe that the entire email chain is available in plain text.

What is the expected result?

I would expect protonmail to loudly warn me that I'm replying to an encrypted response in an insecure manner, and explicitly force me to either set a password or override the warning with an "I know what I'm doing" confirmation.

I might also expect protonmail to remove the tail of the email chain and send only my most recent response, protecting the formerly encrypted part of the chain.

What happens instead?

Protonmail dumps the entire history of the email thread out in an irrevocably insecure manner without any kind of warning.

This is a surprising workflow, and it is most likely to cause havok when I am responding to a mail thread I haven't looked at in a while. It would be all to easy for me to simply forget to click that tiny button in the corner, and if I do forget, I might as well not be using proton mail.

Deploy on own server

How can I deploy ProtonMail on my own server for my family?

I know technically this isn't quite the right place but I cannot find the main GitHub project. :\

Thanks guys!

Add 2 factor authentication

As a user, I would like to be able to enable 2 factor authentication to my protonmail account.

When 2 factor authentication is enabled, then upon logging into my protonmail account, I should/must be asked for second factor authentication with SassPass/ G authenticator mobile apps.

As a user, when I change any settings such as password etc in protonmail account then I should be asked for 2nd factor authentication. I should not be able to change any of my details without properly get authenticated via 2 factor authentication.

Add view with starred messages at the top

It would be great to have configurable sections in the inbox. For example, first a group of starred messages, then the rest of messages. It would be easier to not forget treating the starred messages.

Cannot use hotkeys like 'a' for Archive while message is being viewed

  • Which browser? Chrome
  • Which OS? Mac OS
  • Which layout mode? Column mode
  • Which threading mode? Conversation mode
  • Can you reproduce the problem each time? Yes
  • Which url? /inbox/somereallylongbase64likestring

What steps will reproduce the problem?

    1. Go to inbox that has mail
    1. Hit enter to read a mail
    1. Try to archive with a

What is the expected result?

Message is archived

What happens instead?

Nothing. I have to hit esc before a. Even x to select doesn't let me archive after I've started reading a mail.

Please provide any additional information below. Attach a screenshot if possible.

If, instead of hitting enter to read the message, I click the message to read it, I can use a to archive.

<noscript> Does not show when JavaScript is disabled

  • Which browser? Firefox v52 (32bit)
  • Which OS? Windows 10
  • Which layout mode? Not Applicable
  • Which threading mode? Not Applicable
  • Can you reproduce the problem each time? Yes
  • Which url? https://mail.protonmail.com/

What steps will reproduce the problem?

What is the expected result?

<noscript> tag should appear.

What happens instead?

<noscript> tag is covered up and not visible.

Please provide any additional information below. Attach a screenshot if possible.

<!-- No Script message -->
<div id="loading_pm">
    <noscript style="padding: 2rem; display:block; text-align: center; color: #fff">ProtonMail requires Javascript. Enable Javascript and reload this page to continue.</noscript>
</div>

ProtonMail without JavaScript Enabled

Compose message UX issue

  • Firefox / chrome
  • Android
  • Column mode / Row mode
  • Compose Message mode
  • Can you reproduce the problem each time? Yes

What steps will reproduce the problem?

While composing a message, The below menu bar occupies the message area. This makes composing message a hassle.

What is the expected result?

The bottom menu should not cover the message area.

Screenshot

2017_10_16_11_38_46.png

Convert plain text links to real links automatically

Some sites send links in HTML formatted mail without marking them as such.

Example :

Hello,<br>
<br>
Here is the link.<br>
<br>
https://www.example.com/interesting.html<br>
<br>

Gmail detects and converts them automatically to clickable links.

It would be great if ProtonMail could provide similar function.

Conversations grouped by subject line only

  • Which browser (+ version) ? Chrome 61.0.3163.100
  • Which OS (+ version)? Mac OS 10.12.6
  • Which layout mode? Not sure
  • Which threading mode? Conversation mode
  • Can you reproduce the problem each time? Yes
  • Which url? https://mail.protonmail.com/inbox

What steps will reproduce the problem?

    1. Send a message to person A with subject X
    1. Send a message to person B with subject X
    1. Have both A and B respond
    1. In the webmail UI, both conversations are grouped under the same conversation.

What is the expected result?

The two conversations should be grouped separately. Convsersations should be grouped by set of participants and subject, not subject alone.

What happens instead?

In the webmail UI, both conversations are grouped under the same conversation.

Please provide any additional information below. Attach a screenshot if possible.

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.