Closed petemill closed 5 years ago
Added unit tests because time and math...
Un-marking as WIP now since all features are now implemented. I still want to take another look at the code tomorrow as well as add test plans here and possibly a couple more unit tests and a way to manually test.
Fresh profile - I'm getting the fireworks ☹️ Which means I can't use the browser (during the 10 day period). Also, check for update happens (at least when running from source) and fails, showing a 2nd bar
i doubt anyone will bother to do this, but just noting that someone can avoid Brave getting into the unusable state by setting their clock back
Yeah @diracdeltas there are a couple ways to get around it (e.g. adjust the state file to put a deprecation date in the future, open the console and change window.location, build from source...), but the aim is to make it extremely obvious and pressured, not necessarily to be 100% secure AFAIK. If anyone has a different opinion then lmk.
Test Plan added. I'm done unless I get any further feedback @bsclifton
Couple of quick notes before reviewing 😄
I did the following:
0.26.x
branch0.25.x
master
We'll want to make this version 0.27.x
. I'll review what we have here and then create a commit with that version
macOS and Linux builds available here: https://github.com/brave/browser-laptop/releases
Didn't get a chance to fully test/review yet- also need to sort out issues with signing on Windows build servers
GitHub shows insecure icon,when opening the rev version from about:brave
However opening support page from Learn more...
shows secure connection for support.brave.com
Context menu should probably be removed once the 10 days limit is reached. You can still continue to browse using the search functionality. Two options
Search
option in context menuI'd vote for option1 which makes it more hard to use the browser and forces to switch to bc
Disable payment optin message if user has not opted into payments
Edit: Remove/hide Payments/Sync options in about:preferences
if user has not opted in payments or created a sync chain
Setting system to an older date still give the browser to show X days left deprecation message and make it fully useable. Once the 10 days are completed irrespective of user manually setting system date to an older date, it should still show that browser has completed the 10 days grace period of usage from upgrade to 0.27.0
and make it useless.
Pushed some updates:
RE: the context menu- that is a good catch. But I think we're fine not fixing it. It's an edge case and would be a painfully inefficient way to use the browser in a daily driver context
Setting system to an older date still give the browser to show X days left deprecation message and make it fully useable. Once the 10 days are completed irrespective of user manually setting system date to an older date, it should still show that browser has completed the 10 days grace period of usage from upgrade to
0.27.0
and make it useless.
We’re not trying to make it securely impossible to browse any pages. Rather we are just disabling the obvious UX. After all, if someone really wanted to keep using this version, they could run from source, update the state JSON file with a different deprecatedOn date, or download an older release and disable connection to update server. There’s a line but I think we decided that the obvious functionality to disable is the address bar, tab restore on startup, and links from other apps. The other side of that line would be usage scenarios that are just too painful for someone to keep using this version as their main browser, like running with a clock that’s always in the past.
After 10 days user can still access Bookmarks, should it be allowed?
User can still pin the websites into Payments which are bookmarked.
Just pushed functionality which blocks bookmarks bar items from opening content, when obsolete. Stopped short of blocking context menu on bookmarks page as I did not want to add more risk to normal website operations for downloading the latest version.
Observations on 0.27.2
Looks good
Looks good
Looks good
Looks good
Looks good
Looks good
Looks good
Looks good
Looks good
After 10 days user can still access the sites and links ( step 5 and 7). Is that ok? should we allow this?
@GeetaSarvadnya yup- that is OK, IMO 😄Eventually sites in AC will drop off and that is a pretty painful way to experience the internet
The context menu is something @srirambv noted too - I think it's OK, as browsing via context menu is definitely a bad experience
Thanks for testing so quickly and great job being so thorough! 😄
Mentioned in channel, but will document here as well:
2.c) NTP always displays obsoletion UI and prompts to either 2.c.i)launch or 2.c.ii) install brave-core
If user has 'A new tab shows' set to something other than 'Dashboard', the fireworks/obsoletion UI will not display after 10 days. We should probably force new tab page to show dashboard with warning message prior to 10 days.
mentioned in channel, will document here as well: In the following scenario I'm not getting the "fireworks" NTP. Here are my steps:
Verified both scenarios which @LaurenWags mentioned on version 0.27.3 both scenarios working fine on windows
Scenario1: https://github.com/brave/browser-laptop/pull/15349#issuecomment-481860953
Scenario2: https://github.com/brave/browser-laptop/pull/15349#issuecomment-481884322
0.27.3 looks good on macOS
0.27.3 looks good on Windows 10 x64
Minor issues found:
Launch the new Brave
. Browser restart fixes the issue.Launch the new Brave
is not visible on the viewport. the user has to scroll
Verification PASSED on macOS 10.14.4 x64
using the following build:
Brave: 0.27.3
rev: 2df8cb101008dce51a22fe652dcf22b00c21f62e
Muon: 8.1.8
libchromiumcontent: 69.0.3497.100
Went through the following cases:
Dashboard
is selected as the default choice and cannot be changed once updated to 0.27.3 CR: 69.0.3497.100
0.25.304 CR: 69.0.3497.100
--> 0.27.3 CR: 69.0.3497.100
worked without any issues.@bsclifton @rebron looks like we're in good shape for the Monday release:
However, as mentioned under Slack, there's no way we'll be able to upgrade Linux as the repo and snaps have been converted to b-c
.
@GeetaSarvadnya @LaurenWags @btlechowski @srirambv thanks for your all hard work and thoroughness!
Submitter Checklist:
git rebase -i
to squash commits (if needed).Test Plan:
1
From fresh profile or any profile which has not run with this code yet:
2
Using profile from 1), either adjust clock forward 10 days, or
deprecatedOn
time in profile state file back at least 10 days3
There is no option to update the browser, nor is there any message saying that there are no new updates to the browser.
Reviewer Checklist:
Tests