Skip to content

Commit e24f7ba

Browse files
Merge branch 'release/1.25.0'
2 parents 2a7efc9 + 97aa924 commit e24f7ba

File tree

177 files changed

+5518
-1221
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

177 files changed

+5518
-1221
lines changed

COPYING.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ ProtonVPN Windows app includes the following 3rd party software:
5252
| [The MIT License](https://github.com/davideicardi/DynamicExpresso/blob/master/LICENSE).
5353
* [FontAwesome.WPF](https://github.com/charri/Font-Awesome-WPF/) by charri
5454
| [The MIT License](https://github.com/charri/Font-Awesome-WPF/blob/master/LICENSE).
55+
* [Gu.Wpf.Adorners](https://github.com/GuOrg/Gu.Wpf.Adorners) by Johan Larsson
56+
| [The MIT License](https://github.com/GuOrg/Gu.Wpf.Adorners/blob/master/LICENSE).
5557
* [MvvmLightLibsStd10](http://www.mvvmlight.net/) by Laurent Bugnion (GalaSoft)
5658
| [The MIT License](https://github.com/lbugnion/mvvmlight/blob/master/LICENSE).
5759
* [Newtonsoft.Json](https://www.newtonsoft.com/json) by James Newton-King
@@ -83,4 +85,6 @@ ProtonVPN Windows app includes the following 3rd party software:
8385
* [System.Buffers](https://dot.net) by Microsoft
8486
| [The MIT License](https://github.com/dotnet/corefx/blob/master/LICENSE.TXT).
8587
* [System.Collections.Immutable](https://dot.net) by Microsoft
86-
| [The MIT License](https://github.com/dotnet/corefx/blob/master/LICENSE.TXT).
88+
| [The MIT License](https://github.com/dotnet/corefx/blob/master/LICENSE.TXT).
89+
* [WpfScreenHelper](https://github.com/micdenny/WpfScreenHelper) by Michael Denny
90+
| [The MIT License](https://github.com/micdenny/WpfScreenHelper/blob/master/LICENSE).

Setup/ProtonVPN.aip

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@
103103
<ROW Component="GalaSoft.MvvmLight.dll" ComponentId="{50FA9CA8-4DD4-4068-A0D8-D2C1D9D42947}" Directory_="APPDIR" Attributes="0" KeyPath="GalaSoft.MvvmLight.dll"/>
104104
<ROW Component="GoSrp.dll" ComponentId="{3DB767E8-ACF9-459F-A509-F57E76FBA633}" Directory_="x64_Dir" Attributes="256" KeyPath="GoSrp.dll"/>
105105
<ROW Component="GoSrp.dll_1" ComponentId="{89CC2AA9-0000-4E4B-9D5A-43ACC1B1D1E3}" Directory_="x86_Dir" Attributes="0" KeyPath="GoSrp.dll_1"/>
106+
<ROW Component="Gu.Wpf.Adorners.dll" ComponentId="{01DC8E24-C053-41CC-A726-5F4729DE78DD}" Directory_="APPDIR" Attributes="0" KeyPath="Gu.Wpf.Adorners.dll"/>
106107
<ROW Component="GuestHoleServers.json" ComponentId="{C5ACA4D0-1647-4D3A-B9CD-9FE054A81588}" Directory_="ProtonVPN_1_Dir" Attributes="0" KeyPath="GuestHoleServers.json" Type="0"/>
107108
<ROW Component="LocalAgent.dll" ComponentId="{25183BB4-5B07-43F9-8BEB-D58230BAEB78}" Directory_="bit_Dir" Attributes="0" KeyPath="LocalAgent.dll"/>
108109
<ROW Component="LocalAgent.dll_1" ComponentId="{73CCCE7C-D519-40C3-8AAA-FB879005DFA4}" Directory_="bit_1_Dir" Attributes="256" KeyPath="LocalAgent.dll_1"/>
@@ -165,6 +166,7 @@
165166
<ROW Component="TapInstaller.dll" ComponentId="{6C0E1AC7-D393-43D7-8842-549A396829EB}" Directory_="APPDIR" Attributes="0" KeyPath="TapInstaller.dll"/>
166167
<ROW Component="WebView2Loader.dll_1" ComponentId="{2EA095EA-C501-4A0B-B50D-FFF6383F6077}" Directory_="native_1_Dir" Attributes="256" KeyPath="WebView2Loader.dll_1"/>
167168
<ROW Component="WebView2Loader.dll_2" ComponentId="{7B52FD4C-77FC-441E-830E-31363BA5A2A6}" Directory_="native_2_Dir" Attributes="0" KeyPath="WebView2Loader.dll_2"/>
169+
<ROW Component="WpfScreenHelper.dll" ComponentId="{D9BC0004-B4FA-4D5B-B94A-1F8525D2E2FA}" Directory_="APPDIR" Attributes="0" KeyPath="WpfScreenHelper.dll"/>
168170
<ROW Component="config.ovpn" ComponentId="{0B387BF9-0755-4C70-81A5-48180795855C}" Directory_="Binaries_Dir" Attributes="0" KeyPath="config.ovpn" Type="0"/>
169171
<ROW Component="libcrypto1_1.dll" ComponentId="{F5111CFC-D038-4A4A-927B-F4FA1D0463C9}" Directory_="bit_Dir" Attributes="0" KeyPath="libcrypto1_1.dll"/>
170172
<ROW Component="libcrypto1_1x64.dll" ComponentId="{9BA46CFB-D246-4182-9AFB-3CA5D2A29D53}" Directory_="bit_1_Dir" Attributes="256" KeyPath="libcrypto1_1x64.dll"/>
@@ -285,6 +287,8 @@
285287
<ROW File="wireguard.dll" Component_="wireguard.dll" FileName="WIREGU~1.DLL|wireguard.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\src\ProtonVPN.Vpn\Resources\64-bit\wireguard.dll" SelfReg="false"/>
286288
<ROW File="wireguard.dll_1" Component_="wireguard.dll_1" FileName="WIREGU~1.DLL|wireguard.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\src\ProtonVPN.Vpn\Resources\32-bit\wireguard.dll" SelfReg="false"/>
287289
<ROW File="ProtonVPN.WireGuardDriver.dll" Component_="ProtonVPN.WireGuardDriver.dll" FileName="PROTO~13.DLL|ProtonVPN.WireGuardDriver.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\src\bin\ProtonVPN.WireGuardDriver.dll" SelfReg="false"/>
290+
<ROW File="Gu.Wpf.Adorners.dll" Component_="Gu.Wpf.Adorners.dll" FileName="GUWPFA~1.DLL|Gu.Wpf.Adorners.dll" Attributes="0" SourcePath="..\src\bin\Gu.Wpf.Adorners.dll" SelfReg="false"/>
291+
<ROW File="WpfScreenHelper.dll" Component_="WpfScreenHelper.dll" FileName="WPFSCR~1.DLL|WpfScreenHelper.dll" Attributes="0" SourcePath="..\src\bin\WpfScreenHelper.dll" SelfReg="false"/>
288292
</COMPONENT>
289293
<COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent">
290294
<ROW RemoveFile="_" Condition="(AI_CLEAN_RESOURCES_UNINSTALL = &quot;1&quot;) AND (NOT UPGRADINGPRODUCTCODE)" Options="3"/>
@@ -658,6 +662,8 @@
658662
<ROW Feature_="MainFeature" Component_="wireguard.dll"/>
659663
<ROW Feature_="MainFeature" Component_="wireguard.dll_1"/>
660664
<ROW Feature_="MainFeature" Component_="ProtonVPN.WireGuardDriver.dll"/>
665+
<ROW Feature_="MainFeature" Component_="Gu.Wpf.Adorners.dll"/>
666+
<ROW Feature_="MainFeature" Component_="WpfScreenHelper.dll"/>
661667
</COMPONENT>
662668
<COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent">
663669
<ROW Name="protonvpn.exe" SourcePath="images\protonvpn.ico" Index="0"/>

src/GlobalAssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
[assembly: AssemblyConfiguration("")]
1010
[assembly: AssemblyCompany("")]
1111
[assembly: AssemblyProduct("ProtonVPN")]
12-
[assembly: AssemblyCopyright("Copyright © 2021 Proton Technologies AG")]
12+
[assembly: AssemblyCopyright("Copyright © 2021 Proton Technologies AG")]
1313
[assembly: AssemblyTrademark("")]
1414
[assembly: AssemblyCulture("")]
1515

16-
[assembly: AssemblyVersion("1.24.2.0")]
17-
[assembly: AssemblyFileVersion("1.24.2.0")]
16+
[assembly: AssemblyVersion("1.25.0.0")]
17+
[assembly: AssemblyFileVersion("1.25.0.0")]
1818
[assembly: ComVisible(false)]
1919
[assembly: AssemblyInformationalVersion("$AssemblyVersion")]

src/ProtonVPN.App/About/UpdateViewModel.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2020 Proton Technologies AG
2+
* Copyright (c) 2021 Proton Technologies AG
33
*
44
* This file is part of ProtonVPN.
55
*
@@ -23,14 +23,13 @@
2323
using System.Windows;
2424
using System.Windows.Input;
2525
using GalaSoft.MvvmLight.Command;
26-
using ProtonVPN.BugReporting.Diagnostic;
2726
using ProtonVPN.Common.KillSwitch;
2827
using ProtonVPN.Common.OS.Processes;
2928
using ProtonVPN.Common.Vpn;
3029
using ProtonVPN.Core.Modals;
3130
using ProtonVPN.Core.MVVM;
31+
using ProtonVPN.Core.OS;
3232
using ProtonVPN.Core.Service.Settings;
33-
using ProtonVPN.Core.Service.Vpn;
3433
using ProtonVPN.Core.Settings;
3534
using ProtonVPN.Core.Update;
3635
using ProtonVPN.Core.Vpn;
@@ -45,7 +44,6 @@ public class UpdateViewModel : ViewModel, IUpdateStateAware, IVpnStateAware
4544
private readonly IOsProcesses _osProcesses;
4645
private readonly IModals _modals;
4746
private readonly IAppSettings _appSettings;
48-
private readonly IVpnServiceManager _vpnServiceManager;
4947
private readonly ISystemState _systemState;
5048
private readonly ISettingsServiceClientManager _settingsServiceClientManager;
5149

@@ -57,15 +55,13 @@ public UpdateViewModel(
5755
IOsProcesses osProcesses,
5856
IModals modals,
5957
IAppSettings appSettings,
60-
IVpnServiceManager vpnServiceManager,
6158
ISystemState systemState,
6259
ISettingsServiceClientManager settingsServiceClientManager)
6360
{
6461
_dialogs = dialogs;
6562
_osProcesses = osProcesses;
6663
_modals = modals;
6764
_appSettings = appSettings;
68-
_vpnServiceManager = vpnServiceManager;
6965
_systemState = systemState;
7066
_settingsServiceClientManager = settingsServiceClientManager;
7167

src/ProtonVPN.App/App.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,9 @@
361361
<setting name="HardwareAccelerationEnabled" serializeAs="String">
362362
<value>True</value>
363363
</setting>
364+
<setting name="UserReportAnIssueFormData" serializeAs="String">
365+
<value />
366+
</setting>
364367
</ProtonVPN.Properties.Settings>
365368
</userSettings>
366369

src/ProtonVPN.App/App.xaml.cs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2020 Proton Technologies AG
2+
* Copyright (c) 2021 Proton Technologies AG
33
*
44
* This file is part of ProtonVPN.
55
*
@@ -25,7 +25,6 @@
2525
using System.Threading.Tasks;
2626
using System.Windows;
2727
using Microsoft.Toolkit.Uwp.Notifications;
28-
using ProtonVPN.Common.Cli;
2928
using ProtonVPN.Common.Configuration;
3029
using ProtonVPN.Common.CrashReporting;
3130
using ProtonVPN.Common.Extensions;
@@ -83,8 +82,6 @@ private static async Task Run(string[] args)
8382
_bootstrapper = new Bootstrapper(args);
8483
_bootstrapper.Initialize();
8584

86-
HandleIntentionalCrash(app, args);
87-
8885
app.Run();
8986
}
9087
}
@@ -150,15 +147,6 @@ private static Common.Configuration.Config GetConfig()
150147
return config;
151148
}
152149

153-
private static void HandleIntentionalCrash(Application app, string[] args)
154-
{
155-
var option = new CommandLineOption("crash", args);
156-
if (!option.Exists())
157-
return;
158-
159-
app.Deactivated += (sender, ea) => throw new StackOverflowException("Intentional crash test");
160-
}
161-
162150
private static void SetDllDirectories()
163151
{
164152
Kernel32.SetDefaultDllDirectories(Kernel32.SetDefaultDllDirectoriesFlags.LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2021 Proton Technologies AG
3+
*
4+
* This file is part of ProtonVPN.
5+
*
6+
* ProtonVPN is free software: you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License as published by
8+
* the Free Software Foundation, either version 3 of the License, or
9+
* (at your option) any later version.
10+
*
11+
* ProtonVPN is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
* GNU General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU General Public License
17+
* along with ProtonVPN. If not, see <https://www.gnu.org/licenses/>.
18+
*/
19+
20+
namespace ProtonVPN.BugReporting.Actions
21+
{
22+
public abstract class CategoryAction
23+
{
24+
public string Category { get; }
25+
26+
protected CategoryAction(string category)
27+
{
28+
Category = category;
29+
}
30+
}
31+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright (c) 2021 Proton Technologies AG
3+
*
4+
* This file is part of ProtonVPN.
5+
*
6+
* ProtonVPN is free software: you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License as published by
8+
* the Free Software Foundation, either version 3 of the License, or
9+
* (at your option) any later version.
10+
*
11+
* ProtonVPN is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
* GNU General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU General Public License
17+
* along with ProtonVPN. If not, see <https://www.gnu.org/licenses/>.
18+
*/
19+
20+
namespace ProtonVPN.BugReporting.Actions
21+
{
22+
public class FillTheFormAction : CategoryAction
23+
{
24+
public FillTheFormAction(string category) : base(category)
25+
{
26+
}
27+
}
28+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright (c) 2021 Proton Technologies AG
3+
*
4+
* This file is part of ProtonVPN.
5+
*
6+
* ProtonVPN is free software: you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License as published by
8+
* the Free Software Foundation, either version 3 of the License, or
9+
* (at your option) any later version.
10+
*
11+
* ProtonVPN is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
* GNU General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU General Public License
17+
* along with ProtonVPN. If not, see <https://www.gnu.org/licenses/>.
18+
*/
19+
20+
21+
namespace ProtonVPN.BugReporting.Actions
22+
{
23+
public class FinishReportAction
24+
{
25+
}
26+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2021 Proton Technologies AG
3+
*
4+
* This file is part of ProtonVPN.
5+
*
6+
* ProtonVPN is free software: you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License as published by
8+
* the Free Software Foundation, either version 3 of the License, or
9+
* (at your option) any later version.
10+
*
11+
* ProtonVPN is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
* GNU General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU General Public License
17+
* along with ProtonVPN. If not, see <https://www.gnu.org/licenses/>.
18+
*/
19+
20+
namespace ProtonVPN.BugReporting.Actions
21+
{
22+
public class FormStateChange
23+
{
24+
public FormStateChange(FormState state)
25+
{
26+
State = state;
27+
}
28+
29+
public FormState State { get; }
30+
}
31+
}

0 commit comments

Comments
 (0)