diff --git a/CHANGELOG.md b/CHANGELOG.md index c800d20..765fd37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ __HEAD__ +__v.3.1.0__ (13.05.2021) + +* Latency loading remains stuck fixed +* After some time SL is not working fixed +* Bypasslist for firefox not working fixed +* New server endpoint + __v.3.0.2__ (08.02.2021) * Hotfix for broken storage when updating to upper version diff --git a/VERSION b/VERSION index b502146..fd2a018 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.2 +3.1.0 diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index eed998b..49d21fd 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -9,7 +9,7 @@ "message":"contact the support department " }, "feedbackMessageFirefox_1":{ - "message":"Thank you for your feedback! We would appreciate it if rate us on " + "message":"Thank you for your feedback! We would appreciate it if you rate us on " }, "feedbackMessageFirefox_2":{ "message":"Firefox Browser Addons" @@ -21,7 +21,7 @@ "message":"contact the support department " }, "feedbackMessage_1":{ - "message":"Thank you for your feedback! We would appreciate it if rate us on " + "message":"Thank you for your feedback! We would appreciate it if you rate us on " }, "feedbackMessage_2":{ "message":"Chrome Web Store" diff --git a/src/js/chromesettings/proxy.js b/src/js/chromesettings/proxy.js index b789f69..248be9c 100644 --- a/src/js/chromesettings/proxy.js +++ b/src/js/chromesettings/proxy.js @@ -99,7 +99,6 @@ class BrowserProxy extends ChromeSetting { } } let value = {}; - if(smartlocation.getSmartLocationRules('smartLocationRules').length > 0 && smartlocation.getSmartLocationRules('checkSmartLocation')){ this.rules = userRulesSmartLoc; const pacScript = pacengine.exportPAC( diff --git a/src/js/data/regions.json b/src/js/data/regions.json index 85dee71..a6be9d2 100644 --- a/src/js/data/regions.json +++ b/src/js/data/regions.json @@ -1,290 +1,354 @@ -{ - "us_california": { - "dns": "https-us-california.privateinternetaccess.com", - "ping": "91.207.175.214", - "port": 443, - "mace": 80, - "name": "US California", - "iso": "US" - }, - "us2": { - "dns": "https-us-east.privateinternetaccess.com", - "ping": "194.59.251.3", - "port": 443, - "mace": 80, - "name": "US East", - "iso": "US" - }, - "us_chicago": { - "dns": "https-us-chicago.privateinternetaccess.com", - "ping": "104.200.153.104", - "port": 443, - "mace": 80, - "name": "US Chicago", - "iso": "US" - }, - "us_florida": { - "dns": "https-us-florida.privateinternetaccess.com", - "ping": "193.37.252.29", - "port": 443, - "mace": 80, - "name": "US Florida", - "iso": "US" - }, - "us_seattle": { - "dns": "https-us-seattle.privateinternetaccess.com", - "ping": "104.200.154.107", - "port": 443, - "mace": 80, - "name": "US Seattle", - "iso": "US" - }, - "us3": { - "dns": "https-us-west.privateinternetaccess.com", - "ping": "104.200.151.96", - "port": 443, - "mace": 80, - "name": "US West", - "iso": "US" - }, - "us_silicon_valley": { - "dns": "https-us-siliconvalley.privateinternetaccess.com", - "ping": "199.116.118.216", - "port": 443, - "mace": 80, - "name": "US Silicon Valley", - "iso": "US" - }, - "us_new_york_city": { - "dns": "https-us-newyorkcity.privateinternetaccess.com", - "ping": "107.182.230.242", - "port": 443, - "mace": 80, - "name": "US New York City", - "iso": "US" - }, - "us_washington_dc": { - "dns": "https-us-washingtondc.privateinternetaccess.com", - "ping": "70.32.0.79", - "port": 443, - "mace": 80, - "name": "US Washington DC", - "iso": "US" - }, - "us_atlanta": { - "dns": "https-us-atlanta.privateinternetaccess.com", - "ping": "66.115.168.30", - "port": 443, - "mace": 80, - "name": "US Atlanta", - "iso": "US" - }, - "us_houston": { - "dns": "https-us-houston.privateinternetaccess.com", - "ping": "205.251.148.114", - "port": 443, - "mace": 80, - "name": "US Houston", - "iso": "US" - }, - "uk": { - "dns": "https-uk-london.privateinternetaccess.com", - "ping": "185.253.98.70", - "port": 443, - "mace": 80, - "name": "UK London", - "iso": "GB" - }, - "uk_manchester": { - "dns": "https-uk-manchester.privateinternetaccess.com", - "ping": "89.238.139.59", - "port": 443, - "mace": 80, - "name": "UK Manchester", - "iso": "GB" - }, - "ca_toronto": { - "dns": "https-ca-toronto.privateinternetaccess.com", - "ping": "172.98.67.111", - "port": 443, - "mace": 80, - "name": "CA Toronto", - "iso": "CA" - }, - "ca": { - "dns": "https-ca-montreal.privateinternetaccess.com", - "ping": "199.229.249.186", - "port": 443, - "mace": 80, - "name": "CA Montreal", - "iso": "CA" - }, - "ca_vancouver": { - "dns": "https-ca-vancouver.privateinternetaccess.com", - "ping": "107.181.189.79", - "port": 443, - "mace": 80, - "name": "CA Vancouver", - "iso": "CA" - }, - "aus": { - "dns": "https-au-sydney.privateinternetaccess.com", - "ping": "137.59.252.235", - "port": 443, - "mace": 80, - "name": "AU Sydney", - "iso": "AU" - }, - "aus_melbourne": { - "dns": "https-au-melbourne.privateinternetaccess.com", - "ping": "168.1.112.93", - "port": 443, - "mace": 80, - "name": "AU Melbourne", - "iso": "AU" - }, - "germany": { - "dns": "https-de-frankfurt.privateinternetaccess.com", - "ping": "82.102.16.210", - "port": 443, - "mace": 80, - "name": "DE Frankfurt", - "iso": "DE" - }, - "nl": { - "dns": "https-nl.privateinternetaccess.com", - "ping": "109.201.138.242", - "port": 443, - "mace": 80, - "name": "Netherlands", - "iso": "NL" - }, - "sweden": { - "dns": "https-sweden.privateinternetaccess.com", - "ping": "46.246.123.166", - "port": 443, - "mace": 80, - "name": "Sweden", - "iso": "SE" - }, - "no": { - "dns": "https-no.privateinternetaccess.com", - "ping": "82.102.27.58", - "port": 443, - "mace": 80, - "name": "Norway", - "iso": "NO" - }, - "denmark": { - "dns": "https-denmark.privateinternetaccess.com", - "ping": "82.102.20.185", - "port": 443, - "mace": 80, - "name": "Denmark", - "iso": "DK" - }, - "fi": { - "dns": "https-fi.privateinternetaccess.com", - "ping": "192.40.95.20", - "port": 443, - "mace": 80, - "name": "Finland", - "iso": "FI" - }, - "france": { - "dns": "https-france.privateinternetaccess.com", - "ping": "194.187.249.188", - "port": 443, - "mace": 80, - "name": "France", - "iso": "FR" - }, - "belgium": { - "dns": "https-belgium.privateinternetaccess.com", - "ping": "77.243.191.24", - "port": 443, - "mace": 80, - "name": "Belgium", - "iso": "BE" - }, - "austria": { - "dns": "https-austria.privateinternetaccess.com", - "ping": "185.216.34.235", - "port": 443, - "mace": 80, - "name": "Austria", - "iso": "AT" - }, - "czech": { - "dns": "https-czech.privateinternetaccess.com", - "ping": "185.216.35.75", - "port": 443, - "mace": 80, - "name": "Czech Republic", - "iso": "CZ" - }, - "lu": { - "dns": "https-lu.privateinternetaccess.com", - "ping": "212.117.188.85", - "port": 443, - "mace": 80, - "name": "Luxembourg", - "iso": "LU" - }, - "spain": { - "dns": "https-spain.privateinternetaccess.com", - "ping": "185.230.124.59", - "port": 443, - "mace": 80, - "name": "Spain", - "iso": "ES" - }, - "ro": { - "dns": "https-ro.privateinternetaccess.com", - "ping": "185.210.218.106", - "port": 443, - "mace": 80, - "name": "Romania", - "iso": "RO" - }, - "poland": { - "dns": "https-poland.privateinternetaccess.com", - "ping": "185.244.214.202", - "port": 443, - "mace": 80, - "name": "Poland", - "iso": "PL" - }, - "sg": { - "dns": "https-sg.privateinternetaccess.com", - "ping": "119.81.66.212", - "port": 443, - "mace": 80, - "name": "Singapore", - "iso": "SG" - }, - "israel": { - "dns": "https-israel.privateinternetaccess.com", - "ping": "31.168.172.141", - "port": 443, - "mace": 80, - "name": "Israel", - "iso": "IL" - }, - "japan": { - "dns": "https-japan.privateinternetaccess.com", - "ping": "103.208.220.147", - "port": 443, - "mace": 80, - "name": "Japan", - "iso": "JP" - }, - "in": { - "dns": "https-in.privateinternetaccess.com", - "ping": "138.128.180.218", - "port": 443, - "mace": 80, - "name": "India", - "iso": "IN" - } -} +[ + { + "name": "GB London", + "iso": "GB", + "dns": "uk-london.http-proxy.privacy.network", + "ping": "212.102.53.139", + "port": 443, + "mace": 80 + }, + { + "name": "Belgium", + "iso": "BE", + "dns": "https-belgium.privateinternetaccess.com", + "ping": "77.243.191.24", + "port": 443, + "mace": 80 + }, + { + "name": "Luxembourg", + "iso": "LU", + "dns": "https-lu.privateinternetaccess.com", + "ping": "5.253.204.178", + "port": 443, + "mace": 80 + }, + { + "name": "Israel", + "iso": "IL", + "dns": "https-israel.privateinternetaccess.com", + "ping": "31.168.172.141", + "port": 443, + "mace": 80 + }, + { + "name": "US Dallas", + "iso": "US", + "dns": "https-us-dal.privateinternetaccess.com", + "ping": "156.146.39.70", + "port": 443, + "mace": 80 + }, + { + "name": "US Silicon Valley", + "iso": "US", + "dns": "https-us-siliconvalley.privateinternetaccess.com", + "ping": "66.115.157.218", + "port": 443, + "mace": 80 + }, + { + "name": "US Houston", + "iso": "US", + "dns": "https-us-houston.privateinternetaccess.com", + "ping": "191.96.67.250", + "port": 443, + "mace": 80 + }, + { + "name": "CA Vancouver", + "iso": "CA", + "dns": "https-ca-vancouver.privateinternetaccess.com", + "ping": "172.83.40.43", + "port": 443, + "mace": 80 + }, + { + "name": "Norway", + "iso": "NO", + "dns": "https-no.privateinternetaccess.com", + "ping": "82.102.27.58", + "port": 443, + "mace": 80 + }, + { + "name": "Ireland", + "iso": "IE", + "dns": "https-ireland.privateinternetaccess.com", + "ping": "37.120.235.182", + "port": 443, + "mace": 80 + }, + { + "name": "Romania", + "iso": "RO", + "dns": "https-ro.privateinternetaccess.com", + "ping": "185.210.218.107", + "port": 443, + "mace": 80 + }, + { + "name": "US Florida", + "iso": "US", + "dns": "https-us-florida.privateinternetaccess.com", + "ping": "193.37.252.29", + "port": 443, + "mace": 80 + }, + { + "name": "US New York City", + "iso": "US", + "dns": "https-us-nyc.privateinternetaccess.com", + "ping": "138.199.13.130", + "port": 443, + "mace": 80 + }, + { + "name": "AU Melbourne", + "iso": "AU", + "dns": "https-au-melbourne.privateinternetaccess.com", + "ping": "43.250.204.83", + "port": 443, + "mace": 80 + }, + { + "name": "Netherlands", + "iso": "NL", + "dns": "https-nl.privateinternetaccess.com", + "ping": "109.201.152.183", + "port": 443, + "mace": 80 + }, + { + "name": "US East", + "iso": "US", + "dns": "https-us-east.privateinternetaccess.com", + "ping": "194.59.251.4", + "port": 443, + "mace": 80 + }, + { + "name": "US Chicago", + "iso": "US", + "dns": "https-us-chicago.privateinternetaccess.com", + "ping": "143.244.60.130", + "port": 443, + "mace": 80 + }, + { + "name": "US Seattle", + "iso": "US", + "dns": "https-us-sea.privateinternetaccess.com", + "ping": "156.146.49.77", + "port": 443, + "mace": 80 + }, + { + "name": "DE Frankfurt", + "iso": "DE", + "dns": "https-de-frankfurt.privateinternetaccess.com", + "ping": "82.102.16.210", + "port": 443, + "mace": 80 + }, + { + "name": "US Las Vegas", + "iso": "US", + "dns": "https-us-lasvegas.privateinternetaccess.com", + "ping": "79.110.54.50", + "port": 443, + "mace": 80 + }, + { + "name": "DE Berlin", + "iso": "DE", + "dns": "https-de-berlin.privateinternetaccess.com", + "ping": "185.230.127.245", + "port": 443, + "mace": 80 + }, + { + "name": "Denmark", + "iso": "DK", + "dns": "https-denmark.privateinternetaccess.com", + "ping": "82.102.20.185", + "port": 443, + "mace": 80 + }, + { + "name": "Singapore", + "iso": "SG", + "dns": "https-sg.privateinternetaccess.com", + "ping": "156.146.56.10", + "port": 443, + "mace": 80 + }, + { + "name": "AU Sydney", + "iso": "AU", + "dns": "https-au-sydney.privateinternetaccess.com", + "ping": "118.127.60.41", + "port": 443, + "mace": 80 + }, + { + "name": "New Zealand", + "iso": "NZ", + "dns": "https-nz.privateinternetaccess.com", + "ping": "43.250.207.7", + "port": 443, + "mace": 80 + }, + { + "name": "Austria", + "iso": "AT", + "dns": "https-austria.privateinternetaccess.com", + "ping": "185.216.34.234", + "port": 443, + "mace": 80 + }, + { + "name": "Spain", + "iso": "ES", + "dns": "https-spain.privateinternetaccess.com", + "ping": "185.230.124.59", + "port": 443, + "mace": 80 + }, + { + "name": "Hungary", + "iso": "HU", + "dns": "https-hungary.privateinternetaccess.com", + "ping": "185.128.26.25", + "port": 443, + "mace": 80 + }, + { + "name": "Japan", + "iso": "JP", + "dns": "https-jp.privateinternetaccess.com", + "ping": "212.102.50.40", + "port": 443, + "mace": 80 + }, + { + "name": "US Washington DC", + "iso": "US", + "dns": "https-us-washingtondc.privateinternetaccess.com", + "ping": "70.32.0.204", + "port": 443, + "mace": 80 + }, + { + "name": "UK London", + "iso": "GB", + "dns": "https-uk-london.privateinternetaccess.com", + "ping": "138.199.28.121", + "port": 443, + "mace": 80 + }, + { + "name": "France", + "iso": "FR", + "dns": "https-france.privateinternetaccess.com", + "ping": "194.187.249.188", + "port": 443, + "mace": 80 + }, + { + "name": "Czech Republic", + "iso": "CZ", + "dns": "https-czech.privateinternetaccess.com", + "ping": "185.216.35.75", + "port": 443, + "mace": 80 + }, + { + "name": "Finland", + "iso": "FI", + "dns": "https-fi.privateinternetaccess.com", + "ping": "188.126.89.178", + "port": 443, + "mace": 80 + }, + { + "name": "Poland", + "iso": "PL", + "dns": "https-poland.privateinternetaccess.com", + "ping": "185.244.214.201", + "port": 443, + "mace": 80 + }, + { + "name": "India", + "iso": "IN", + "dns": "https-in.privateinternetaccess.com", + "ping": "45.120.139.85", + "port": 443, + "mace": 80 + }, + { + "name": "US California", + "iso": "US", + "dns": "https-us-california.privateinternetaccess.com", + "ping": "91.207.175.215", + "port": 443, + "mace": 80 + }, + { + "name": "US West", + "iso": "US", + "dns": "https-us-west.privateinternetaccess.com", + "ping": "104.200.133.194", + "port": 443, + "mace": 80 + }, + { + "name": "US Atlanta", + "iso": "US", + "dns": "https-us-atlanta.privateinternetaccess.com", + "ping": "156.146.47.76", + "port": 443, + "mace": 80 + }, + { + "name": "CA Toronto", + "iso": "CA", + "dns": "https-ca-toronto.privateinternetaccess.com", + "ping": "66.115.145.98", + "port": 443, + "mace": 80 + }, + { + "name": "UK Manchester", + "iso": "GB", + "dns": "https-uk-manchester.privateinternetaccess.com", + "ping": "89.238.139.59", + "port": 443, + "mace": 80 + }, + { + "name": "CA Montreal", + "iso": "CA", + "dns": "https-ca-montreal.privateinternetaccess.com", + "ping": "172.98.68.75", + "port": 443, + "mace": 80 + }, + { + "name": "Sweden", + "iso": "SE", + "dns": "https-sweden.privateinternetaccess.com", + "ping": "45.83.91.37", + "port": 443, + "mace": 80 + }, + { + "name": "UAE", + "iso": "AE", + "dns": "https-ae.privateinternetaccess.com", + "ping": "45.9.250.38", + "port": 443, + "mace": 80 + } +] \ No newline at end of file diff --git a/src/js/firefoxsettings/proxy.js b/src/js/firefoxsettings/proxy.js index f504904..88733ce 100644 --- a/src/js/firefoxsettings/proxy.js +++ b/src/js/firefoxsettings/proxy.js @@ -14,11 +14,12 @@ class Proxy { const region = app.util.regionlist.getSelectedRegion(); if ( !region ) return - - if (app.util.bypasslist.toArray().includes(origin)) + + const parseUrl = app.helpers.UrlParser.parse(origin); + if (app.util.bypasslist.toArray().includes(origin) + || app.util.bypasslist.toArray().includes(parseUrl.domain)) return { type: 'direct' }; //smart location proxy rule check - const proxyRule = this.changeProxyRule(this.getUserRules(requestInfo.url)); if(proxyRule){ diff --git a/src/js/util/regionlist.js b/src/js/util/regionlist.js index 3ad665e..cff849e 100644 --- a/src/js/util/regionlist.js +++ b/src/js/util/regionlist.js @@ -89,11 +89,8 @@ class RegionList { this.normalRegions = {}; // replace with new data from server - Object.keys(defaultRegions).forEach((regionID) => { - const region = RegionList.createNormalRegion( - regionID, - defaultRegions[regionID] - ); + defaultRegions.map((reg) => { + const region = RegionList.createNormalRegion(reg.name, reg); if (favoriteRegions.includes(region.id)) { region.isFavorite = true; } @@ -242,7 +239,8 @@ class RegionList { const fromStorage = this.storage.getItem(OVERRIDE_KEY); if (fromStorage) { overrideRegions = {}; - const fromStorageMap = typeof fromStorage == 'string' ? JSON.parse(fromStorage) : fromStorage; + const fromStorageMap = + typeof fromStorage == "string" ? JSON.parse(fromStorage) : fromStorage; Object.keys(fromStorageMap).forEach((id) => { overrideRegions[id] = RegionList.localize(fromStorageMap[id]); }); @@ -553,8 +551,7 @@ class RegionList { try { // get latest regions from server - const url = - "https://www.privateinternetaccess.com/api/client/services/https"; + const url = "https://serverlist.piaservers.net/proxy"; const response = await http.get(url, { timeout: 5000 }); const json = await response.json(); @@ -562,14 +559,15 @@ class RegionList { this.normalRegions = {}; // replace with new data from server - Object.keys(json).forEach((regionID) => { - const region = RegionList.createNormalRegion(regionID, json[regionID]); + json.map((reg) => { + const region = RegionList.createNormalRegion(reg.name, reg); if (favoriteRegions.includes(region.id)) { region.isFavorite = true; } this.normalRegions[region.id] = region; }); + // update bypasslist with new dns records bypasslist.updatePingGateways(); @@ -702,6 +700,7 @@ class RegionList { } static createNormalRegion(regionID, region) { + regionID = regionID.split(' ').join('_'); return RegionList.localize({ scheme: "https", id: regionID, diff --git a/src/jsx/component/RegionList.jsx b/src/jsx/component/RegionList.jsx index 801999d..5e66a6d 100644 --- a/src/jsx/component/RegionList.jsx +++ b/src/jsx/component/RegionList.jsx @@ -5,7 +5,7 @@ import RegionIso from '@component/RegionIso'; import RegionAuto from '@component/RegionAuto'; import withAppContext from '@hoc/withAppContext'; import RegionListItem from '@component/RegionListItem'; - +import * as _ from 'lodash'; class RegionList extends Component { constructor(props) { super(props); @@ -48,6 +48,7 @@ class RegionList extends Component { return isoMap; }, {}); } + componentizeRegions() { const { regions } = this.props; @@ -91,10 +92,10 @@ class RegionList extends Component { mode, regions, syncRegions, + verifyLatencyRegions, context: { theme }, } = this.props; - - + // Loading screen when between actions if (mode === 'loading') { return ( @@ -124,7 +125,7 @@ class RegionList extends Component { ); } - + verifyLatencyRegions(regions); // Render regions return (