browserpass / browserpass-legacy

Legacy Browserpass repo, development is now happening at:
https://github.com/browserpass/browserpass-extension
MIT License
1k stars 80 forks source link

Error "Native host has exited" since 2.0.12 --> update host app! #218

Closed maximbaz closed 6 years ago

maximbaz commented 6 years ago

2.0.12 introduced a breaking change, browser extension is not compatible with previous versions of the host app. Sorry for the inconvenience, please upgrade the host app 🙂

It is generally expected that users keep the versions in sync, but since browser extension auto-updates, such a breaking change will come as a surprise.

raxod502 commented 6 years ago

How about making the browser extension check the version of the host app, and display an error message

Host app is out of date (version 2.0.11), please install version 2.0.12

rather than

Native host has exited

? Although it's still not ideal that the auto-updates cause breakage, I think this would eliminate any confusion.

maximbaz commented 6 years ago

Good idea, reporting meaningful errors is in general something I want very much (#164), however it's not trivial to implement 😞

On the other hand you inspired me with #219, this should be a relatively cheap way to notify users of major changes.

erayd commented 6 years ago

@maximbaz

Good idea, reporting meaningful errors is in general something I want very much (#164), however it's not trivial to implement. On the other hand you inspired me with #219, this should be a relatively cheap way to notify users of major changes

I'm concerned that #219 isn't sufficient - many users will just close the notification without reading it. It makes more sense IMO to provide a relevant message at the point the user just experienced something go wrong, when they're more likely to pay attention to such things.

Why not have the host app support a 'get version' call. That way, if you get an error, you can check the version of the host app in the error handling code. If it's a version mismatch causing the problem, then you can tell the user that, without needing to solve #164. This would have avoided the confusion caused by the 2.0.12 release.

Once #164 is sorted at some later date, you can change this behavior as needed.

maximbaz commented 6 years ago

I'm not saying that this is a bad idea (and I'm adding this entire idea to #164), but keep in mind that breaking changes are a rare event - this is the first one actually in the history of "community" version. In most cases, when a user experiences an issue, it is not because of the version mismatch.

P.S. it is also a bit tricky, because sometimes there are no changes to the host app and it is actually expected that a newer version of browser extension is working with an older version of the host app. For example, v2.0.10 and v2.0.11 did not have any changes to the host app and were working fine with v2.0.9 of the host app.

tiramiseb commented 6 years ago

Hello,

My two cents : you may implement a "protocol version" which would evolve independently. So v2.0.9 to v2.0.11 would use the same "protocol version", but 2.0.12 would use a different "protocol version"...

tiramiseb commented 6 years ago

Regarding update of the host app, keep in mind that some people use the distribution's version, which could be a few days late. So I think a comprehensive warning is important. ... maybe even some place in the code where the distribution maintainer could change a default notice, like changing "please update the host app version" to "please upgrade the Debian package", so that you are not bothered with such problems.

I'm using NixOS and first I wondered if I had a problem like #175, then after searching I realized it was not related to NixOS directly... Yes, I could have checked https://github.com/dannyvankooten/browserpass/issues first. But we are not logical everyday, we are humans ;)

Oh, and by the way : you could also implement a fallback, where such a problem would trigger a "legacy" code, using the previous protocol version. But I completely understand how it can be difficult, I already tried (and failed) to do so on another project, years ago...

Cogitri commented 6 years ago

Sorry if I missed something about your versioning policy, but I feel like version x introduced a breaking change should result in at least the micro version to be increased, as of sematic versioning

maximbaz commented 6 years ago

Very good point, I should have done that...

razic commented 5 years ago

tips for windows users:

change

C:\Program Files\Browserpass\browserpass-windows64.exe

to

C:\\Program Files\\Browserpass\\browserpass-windows64.exe

i would say this should be pointed out better in the readme, but ideally the entire installation process on windows would be on par with the rest of the oses in terms of automation. at some point it might be cool to have gui installers for the native hosts.;

@maximbaz finally my only gripe ui wise so far is the white border on the top and bottom, which are not even the same width... really irks me every time i open it. the borders on the side look great, but would be nice to be consistent here.

image

maximbaz commented 5 years ago

Thanks @razic, I have included your hints in the README: https://github.com/browserpass/browserpass-native/commit/6d5b5d5cc2874831510bb271f00c0af1842c74dd

I agree that an automated installation would be very nice to have, but since no maintainer uses Windows, there's nobody to work on this. A community help is very welcome, if someone wants to help, create a new issue in browserpass-native and we will discuss details!

Wow these white borders is definitely something I have not seen yet, I will try to figure out what we can do about them.

maximbaz commented 5 years ago

@razic quick googling shows that many extensions suffer the same fate on Windows, however turns out in the next version of Chrome this has been fixed! See the link below, it also links to pre-compiled binaries for Chromium 74 if you want to try now.

https://bugs.chromium.org/p/chromium/issues/detail?id=750419#c17

razic commented 5 years ago

@maximbaz lol not sure how this comment ended up on this thread, i totally meant to put it on the v3 feedback issue 🤦‍♂️ thanks for finding that border issue. chrome 74 is still beta so i'll wait until it they release the stable build. i'll deal with the borders for now ;p i opened https://github.com/browserpass/browserpass-native/issues/48