Skip to content

Commit

Permalink
v3.4.8
Browse files Browse the repository at this point in the history
  • Loading branch information
z0ccc committed Jan 5, 2023
1 parent f0d6996 commit 8e2276a
Show file tree
Hide file tree
Showing 8 changed files with 113 additions and 11 deletions.
84 changes: 84 additions & 0 deletions .gitlab/issue_templates/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,87 @@ repo: https://github.com/Windscribe/browser-extension
- [ ] checkout `master` from public repo
- [ ] overwrite all files and push to github
- [ ] tag a release with a matching version and changelog (no need to reference gitlab issue numbers, just issue descriptions)

## Full QA Checklist

Note: Keep the Dev Console open in the background and watch for any console errors. Any and all Console errors must be reported as bugs.

## 1. Update checks
Update from the previous version and verify that:
- [ ] General settings are retained.
- [ ] Blocker settings are retained.
- [ ] Privacy settings are retained.
- [ ] Whitelist is retained.
## 2. Full Browser Shutdown & Restart
- [ ] General settings are retained.
- [ ] Blocker settings are retained.
- [ ] Privacy settings are retained.
- [ ] Whitelist is retained.
## 3. Server List Updates
Server List should update when:
- [ ] Account status changes.
- [ ] loc_hash changes.
- [ ] Pro status changes.
- [ ] ALC changes.
- [ ] If new list does not contain current connect location, move up the location tree and fallback to Auto-Pilot.
## 4. Feature / Functionality Checks
- ### General:
- [ ] Auto-connect works.
- [ ] Notifications work.
- [ ] Smokewall works. - Use General > Debug Log to figure out proxy hostnames for a location. Then block said hostnames using the hosts file or using ROBERT. For example, for Chennai - Adyar, search for "proxy location: Chennai hosts:" in the Debug Log. FYI, hostnames for Chennai are "in-005.whiskergalaxy.com", "in-006.whiskergalaxy.com", and "in-007.whiskergalaxy.com". :)
- ### Blocker:
- [ ] Ad-blocker works.
- - [ ] YouTube loads + ads blocked.
- - [ ] popads.net blocked (toggling Ad Crusher should unblock).
- - [ ] Ad Crusher not breaking popular websites: load Reddit, bbc.co.uk, Wikipedia, Twitter, Amazon, [Yahoo Finance](https://finance.yahoo.com/quote/JNJ) etc.
- [ ] Tracker blocker works. Test on [nordvpn.com](https://nordvpn.com/) or [surfshark.com](https://surfshark.com/) heh.
- [ ] Malware blocker works. [Test here](https://free-softs.drtrcherbs.in).
- [ ] Social network widget blocker works. [Test here](http://wp.social-media-buttons-test.previewized.com/).
- [ ] "We use cookies" blocker works. Test on [nordvpn.com](https://nordvpn.com/).
- [ ] Advanced mode works - check if custom lists can be added, etc.
- ### Privacy:
- [ ] Cookie Monster works. Test on Bing. Perform a search, open a new tab and note how the search query persist. Close both tabs and visit Bing again. The search term must now not persist.
- [ ] Notification Blocker works. Test using [HTML5 Web Notifications](https://www.bennish.net/web-notifications.html).
- [ ] WebRTC Slayer works. [Test here](https://browserleaks.com/webrtc).
- [ ] Location Warp works. [Test here](https://browserleaks.com/javascript).
- [ ] Time Warp works. [Test here](https://browserleaks.com/javascript).
- [ ] Language Warp works. [Test here](https://browserleaks.com/javascript).
- [ ] User Agent Rotater works. [Test here](https://browserleaks.com/javascript).
- [ ] Worker Blocker works. [Test here](https://z0ccc.github.io/LocateJS/).
- ### Account:
- [ ] Edit Account works.
- [ ] E-mail linking to account works.
- ### Whitelist:
- [ ] Adding to Whitelist works.
- [ ] Editing element in Whitelist works.
- [ ] Removing from Whitelist works.
## 5. UX Tests:
- [ ] "Sign up" redirects to relevant locations on the website.
- [ ] "Forgot Password" works.
- [ ] Alphabetical / Geographical Location toggle works.
- [ ] Theme change works.
- [ ] Upgrade behaviour.
- [ ] Downgrade behaviour.
- [ ] Out of Data behaviour.
- - [ ] Upon reset after out of data, new creds are fetched upon repeated auth errors.
- [ ] Browser start with proxy enabled. Have tabs open, do a restart (normal / hard), make sure one is not asked for authentication.
- [ ] Backup API works. Test with background.html + Network. Make sure it fails over to another. hostnames = api.windscribe.com, api.staticnetcontent.com, api.whiskergalaxy.com, api.totallyacdn.com
- [ ] Double Hop Detection works.
- [ ] Auto-Pilot works.
- [ ] Favorites
- - [ ] Adding locations to favorites works.
- - [ ] Removing locations from favorites works.
- - [ ] Favorites are saved between restarts.
- - [ ] Connecting to favorite location works (and IP changes).
## 6. Other Tests:
- [ ] General UI glitches
- - [ ] View persistence.
- - [ ] Fonts.
- [ ] Extension errors
- - [ ] DevTools (background.html)
4 changes: 2 additions & 2 deletions modules/ext/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ext",
"version": "3.4.7",
"version": "3.4.8",
"private": true,
"dependencies": {
"@babel/plugin-proposal-export-default-from": "~7.8.3",
Expand Down Expand Up @@ -134,7 +134,7 @@
"web-ext": "~4.0.0",
"webpack-dev-server": "^3.11.0"
},
"uBlockVersion": "ws-v1.43.0",
"uBlockVersion": "ws-v1.44.4",
"main": "index.js",
"license": "MIT"
}
2 changes: 1 addition & 1 deletion modules/ext/public/manifest/base.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Windscribe - Free Proxy and Ad Blocker",
"short_name": "Windscribe",
"version": "3.4.7",
"version": "3.4.8",
"description": "Windscribe helps you mask your physical location, circumvent censorship, and block ads and trackers on websites you use every day",
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';",
"default_locale": "en",
Expand Down
2 changes: 2 additions & 0 deletions modules/ext/src/plugins/auth/login.js
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,8 @@ export default actions => [
actions.session.fetchFailure({
data: {
// dont allow login via email address
errorMessage:
'Please login with your username, not your email address.',
errorCode: 1997,
},
}),
Expand Down
9 changes: 9 additions & 0 deletions modules/ext/src/plugins/auth/logout.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { getDb } from 'utils/db'
import { updateFilterLists, reloadAllFilterLists } from 'plugins/ublock/utils'
import getEntries from 'plugins/lexicon'
import pushToDebugLog from 'utils/debugLogger'
import api from 'api'

/* We should remove all lists not related to windscribe. and unset all the ones that are */
const cleanupUboLists = async blockLists => {
Expand Down Expand Up @@ -85,6 +86,14 @@ export default actions => ({
}),
)

// decreases session count by 1
api.delete({
endpoint: '/Session',
params: {
session_type_id: 2,
},
})

const doNotClearOnLogout = ['expiredUsername', 'userStashes', 'bgReady']
// this is to retain error message from being logged out via invalid session
const sessionError = state.session.error
Expand Down
7 changes: 4 additions & 3 deletions modules/ext/src/plugins/proxy/activate.js
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,6 @@ export default actions => ({
dispatch(actions.proxy.assign({ status: 'connected' }))
dispatch(actions.proxyDiscovered.set(true))
}
await reApplyPublicIp()
}

const onProxySetupComplete = async () => {
Expand All @@ -239,6 +238,8 @@ export default actions => ({

// If silent mode, do not show notification and show connected status right away
if (silent) {
dispatch(actions.proxy.assign({ status: 'connected' }))

await sslCheckAndConnect()

pushToDebugLog({
Expand Down Expand Up @@ -289,7 +290,7 @@ export default actions => ({
whitelist: createWhitelist(whitelist),
})
const proxySettingAfter = await new Promise(resolve => {
browser.proxy.settings.get({}, function (details) {
browser.proxy.settings.get({}, function(details) {
resolve(details.levelOfControl)
})
})
Expand Down Expand Up @@ -441,7 +442,7 @@ export default actions => ({
if (IS_CHROME) {
//check if controlled by another extension
const proxySetting = await new Promise(resolve => {
browser.proxy.settings.get({}, function (details) {
browser.proxy.settings.get({}, function(details) {
resolve(details.levelOfControl)
})
})
Expand Down
14 changes: 10 additions & 4 deletions modules/ext/src/utils/public-ip.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
import api from 'api'

export default async () => {
const noIp = '---.---.---.---'
const { workingApi } = api.getConfig()

if (workingApi) {
const controller = new AbortController()
setTimeout(() => controller.abort(), 3000)
const timeoutId = setTimeout(() => controller.abort(), 3000)

return await fetch(`https://checkip${workingApi}`, {
const res = await fetch(`https://checkip${workingApi}`, {
signal: controller.signal,
})
.then(r => r.text())
.catch(() => '---.---.---.---')
.catch(() => noIp)

clearTimeout(timeoutId)

return res
}
return '---.---.---.---'
return noIp
}
2 changes: 1 addition & 1 deletion modules/ext/src/views/Main/ProxyControls/IPAddress.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ export default memo(({ showIpCopiedAlert, setIpCopiedAlert }) => {
text-overflow: ellipsis;
cursor: ${status === 'error' ? 'default' : 'pointer'};
${isIpBlurred && `text-shadow: 0px 0px 6px rgba(255,255,255,0.5);`}
width: 140px;
max-width: 140px;
`}
fontSize={0}
notranslate="true"
Expand Down

0 comments on commit 8e2276a

Please sign in to comment.