Skip to content

Commit 6600d12

Browse files
authored
Merge branch 'ElectronNET:develop' into develop
2 parents 5434b0e + edafa8c commit 6600d12

File tree

11 files changed

+123
-59
lines changed

11 files changed

+123
-59
lines changed

.github/workflows/integration-tests.yml

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,6 @@ jobs:
144144
done
145145
echo "Processed $conv TRX file(s)"
146146
147-
148147
- name: Publish Test Report
149148
if: always()
150149
uses: ctrf-io/github-test-reporter@v1
@@ -186,24 +185,21 @@ jobs:
186185
env:
187186
GITHUB_TOKEN: ${{ github.token }}
188187

188+
- name: Save PR Number
189+
if: github.event_name == 'pull_request'
190+
run: echo "PR_NUMBER=${{ github.event.pull_request.number }}" >> $GITHUB_ENV
189191

190-
- name: Create PR Comment
191-
if: always()
192-
uses: ctrf-io/github-test-reporter@v1
193-
with:
194-
report-path: 'ctrf/**/*.json'
195-
196-
summary: true
197-
pull-request: true
198-
use-suite-name: true
199-
update-comment: true
200-
always-group-by: true
201-
overwrite-comment: true
202-
upload-artifact: false
192+
- name: Write PR Number to File
193+
if: github.event_name == 'pull_request'
194+
run: echo "$PR_NUMBER" > pr_number.txt
195+
shell: bash
203196

204-
pull-request-report: true
205-
env:
206-
GITHUB_TOKEN: ${{ github.token }}
197+
- name: Upload PR Number Artifact
198+
if: github.event_name == 'pull_request'
199+
uses: actions/upload-artifact@v4
200+
with:
201+
name: pr_number
202+
path: pr_number.txt
207203

208204
- name: Summary
209-
run: echo "All matrix test jobs completed."
205+
run: echo "All matrix test jobs completed."

.github/workflows/pr-comment.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Create PR Comments
2+
3+
on:
4+
workflow_run:
5+
workflows: ["Tests"]
6+
types: [completed]
7+
8+
permissions:
9+
contents: read
10+
actions: read
11+
pull-requests: write
12+
13+
jobs:
14+
pr-comment:
15+
name: Post Test Result as PR comment
16+
runs-on: ubuntu-24.04
17+
if: github.event.workflow_run.event == 'pull_request'
18+
19+
steps:
20+
- name: Download CTRF artifact
21+
uses: dawidd6/action-download-artifact@v8
22+
with:
23+
github_token: ${{ github.token }}
24+
run_id: ${{ github.event.workflow_run.id }}
25+
name: ctrf-report
26+
path: ctrf
27+
28+
- name: Download PR Number Artifact
29+
uses: dawidd6/action-download-artifact@v8
30+
with:
31+
github_token: ${{ github.token }}
32+
run_id: ${{ github.event.workflow_run.id }}
33+
name: pr_number
34+
path: pr_number
35+
36+
- name: Read PR Number
37+
run: |
38+
set -Eeuo pipefail
39+
FILE='pr_number/pr_number.txt'
40+
41+
# Ensure file exists
42+
if [ ! -f "$FILE" ] || [ -L "$FILE" ]; then
43+
echo "Error: $FILE is missing or is not a regular file." >&2
44+
exit 1
45+
fi
46+
47+
# Chec file size
48+
if [ "$(wc -c < "$FILE" | tr -d ' ')" -gt 200 ]; then
49+
echo "Error: $FILE is too large." >&2
50+
exit 1
51+
fi
52+
53+
# Read first line
54+
PR_NUMBER=""
55+
IFS= read -r PR_NUMBER < "$FILE" || true
56+
57+
# Validate whether it's a number
58+
if ! [[ "$PR_NUMBER" =~ ^[0-9]{1,10}$ ]]; then
59+
echo "Error: PR_NUMBER is not a valid integer on the first line." >&2
60+
exit 1
61+
fi
62+
63+
printf 'PR_NUMBER=%s\n' "$PR_NUMBER" >> "$GITHUB_ENV"
64+
65+
- name: Post PR Comment
66+
uses: ctrf-io/github-test-reporter@v1
67+
with:
68+
report-path: 'ctrf/**/*.json'
69+
issue: ${{ env.PR_NUMBER }}
70+
71+
summary: true
72+
pull-request: true
73+
use-suite-name: true
74+
update-comment: true
75+
always-group-by: true
76+
overwrite-comment: true
77+
upload-artifact: false
78+
79+
pull-request-report: true
80+
env:
81+
GITHUB_TOKEN: ${{ github.token }}

src/ElectronNET.API/API/Dialog.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,10 +206,10 @@ public Task ShowCertificateTrustDialogAsync(CertificateTrustDialogOptions option
206206
[SupportedOSPlatform("Windows")]
207207
public Task ShowCertificateTrustDialogAsync(BrowserWindow browserWindow, CertificateTrustDialogOptions options)
208208
{
209-
var tcs = new TaskCompletionSource<object>();
209+
var tcs = new TaskCompletionSource();
210210
string guid = Guid.NewGuid().ToString();
211211

212-
BridgeConnector.Socket.Once("showCertificateTrustDialogComplete" + guid, () => tcs.SetResult(null));
212+
BridgeConnector.Socket.Once("showCertificateTrustDialogComplete" + guid, () => tcs.SetResult());
213213
BridgeConnector.Socket.Emit("showCertificateTrustDialog",
214214
browserWindow,
215215
options,

src/ElectronNET.API/API/Session.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ public void AllowNTLMCredentialsForDomains(string domains)
4747
/// <returns></returns>
4848
public Task ClearAuthCacheAsync(RemovePassword options)
4949
{
50-
var tcs = new TaskCompletionSource<object>();
50+
var tcs = new TaskCompletionSource();
5151
string guid = Guid.NewGuid().ToString();
5252

53-
BridgeConnector.Socket.Once("webContents-session-clearAuthCache-completed" + guid, () => tcs.SetResult(null));
53+
BridgeConnector.Socket.Once("webContents-session-clearAuthCache-completed" + guid, () => tcs.SetResult());
5454
BridgeConnector.Socket.Emit("webContents-session-clearAuthCache", Id, options, guid);
5555

5656
return tcs.Task;
@@ -61,10 +61,10 @@ public Task ClearAuthCacheAsync(RemovePassword options)
6161
/// </summary>
6262
public Task ClearAuthCacheAsync()
6363
{
64-
var tcs = new TaskCompletionSource<object>();
64+
var tcs = new TaskCompletionSource();
6565
string guid = Guid.NewGuid().ToString();
6666

67-
BridgeConnector.Socket.Once("webContents-session-clearAuthCache-completed" + guid, () => tcs.SetResult(null));
67+
BridgeConnector.Socket.Once("webContents-session-clearAuthCache-completed" + guid, () => tcs.SetResult());
6868
BridgeConnector.Socket.Emit("webContents-session-clearAuthCache", Id, guid);
6969

7070
return tcs.Task;
@@ -76,10 +76,10 @@ public Task ClearAuthCacheAsync()
7676
/// <returns></returns>
7777
public Task ClearCacheAsync()
7878
{
79-
var tcs = new TaskCompletionSource<object>();
79+
var tcs = new TaskCompletionSource();
8080
string guid = Guid.NewGuid().ToString();
8181

82-
BridgeConnector.Socket.Once("webContents-session-clearCache-completed" + guid, () => tcs.SetResult(null));
82+
BridgeConnector.Socket.Once("webContents-session-clearCache-completed" + guid, () => tcs.SetResult());
8383
BridgeConnector.Socket.Emit("webContents-session-clearCache", Id, guid);
8484

8585
return tcs.Task;
@@ -91,10 +91,10 @@ public Task ClearCacheAsync()
9191
/// <returns></returns>
9292
public Task ClearHostResolverCacheAsync()
9393
{
94-
var tcs = new TaskCompletionSource<object>();
94+
var tcs = new TaskCompletionSource();
9595
string guid = Guid.NewGuid().ToString();
9696

97-
BridgeConnector.Socket.Once("webContents-session-clearHostResolverCache-completed" + guid, () => tcs.SetResult(null));
97+
BridgeConnector.Socket.Once("webContents-session-clearHostResolverCache-completed" + guid, () => tcs.SetResult());
9898
BridgeConnector.Socket.Emit("webContents-session-clearHostResolverCache", Id, guid);
9999

100100
return tcs.Task;
@@ -106,10 +106,10 @@ public Task ClearHostResolverCacheAsync()
106106
/// <returns></returns>
107107
public Task ClearStorageDataAsync()
108108
{
109-
var tcs = new TaskCompletionSource<object>();
109+
var tcs = new TaskCompletionSource();
110110
string guid = Guid.NewGuid().ToString();
111111

112-
BridgeConnector.Socket.Once("webContents-session-clearStorageData-completed" + guid, () => tcs.SetResult(null));
112+
BridgeConnector.Socket.Once("webContents-session-clearStorageData-completed" + guid, () => tcs.SetResult());
113113
BridgeConnector.Socket.Emit("webContents-session-clearStorageData", Id, guid);
114114

115115
return tcs.Task;
@@ -122,10 +122,10 @@ public Task ClearStorageDataAsync()
122122
/// <returns></returns>
123123
public Task ClearStorageDataAsync(ClearStorageDataOptions options)
124124
{
125-
var tcs = new TaskCompletionSource<object>();
125+
var tcs = new TaskCompletionSource();
126126
string guid = Guid.NewGuid().ToString();
127127

128-
BridgeConnector.Socket.Once("webContents-session-clearStorageData-options-completed" + guid, () => tcs.SetResult(null));
128+
BridgeConnector.Socket.Once("webContents-session-clearStorageData-options-completed" + guid, () => tcs.SetResult());
129129
BridgeConnector.Socket.Emit("webContents-session-clearStorageData-options", Id, options, guid);
130130

131131
return tcs.Task;
@@ -276,10 +276,10 @@ public void SetPreloads(string[] preloads)
276276
/// <returns></returns>
277277
public Task SetProxyAsync(ProxyConfig config)
278278
{
279-
var tcs = new TaskCompletionSource<object>();
279+
var tcs = new TaskCompletionSource();
280280
string guid = Guid.NewGuid().ToString();
281281

282-
BridgeConnector.Socket.Once("webContents-session-setProxy-completed" + guid, () => tcs.SetResult(null));
282+
BridgeConnector.Socket.Once("webContents-session-setProxy-completed" + guid, () => tcs.SetResult());
283283
BridgeConnector.Socket.Emit("webContents-session-setProxy", Id, config, guid);
284284

285285
return tcs.Task;

src/ElectronNET.API/API/Shell.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,9 @@ internal static Shell Instance
4242
/// <param name="fullPath">The full path to the directory / file.</param>
4343
public Task ShowItemInFolderAsync(string fullPath)
4444
{
45-
var tcs = new TaskCompletionSource<object>();
46-
47-
// Is this really useful?
48-
BridgeConnector.Socket.Once("shell-showItemInFolderCompleted", () => { });
4945
BridgeConnector.Socket.Emit("shell-showItemInFolder", fullPath);
5046

51-
return tcs.Task;
47+
return Task.CompletedTask;
5248
}
5349

5450
/// <summary>

src/ElectronNET.API/API/WebContents.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,12 +254,12 @@ public Task LoadURLAsync(string url)
254254
/// <param name="options"></param>
255255
public Task LoadURLAsync(string url, LoadURLOptions options)
256256
{
257-
var tcs = new TaskCompletionSource<object>();
257+
var tcs = new TaskCompletionSource();
258258

259259
BridgeConnector.Socket.Once("webContents-loadURL-complete" + Id, () =>
260260
{
261261
BridgeConnector.Socket.Off("webContents-loadURL-error" + Id);
262-
tcs.SetResult(null);
262+
tcs.SetResult();
263263
});
264264

265265
BridgeConnector.Socket.Once<string>("webContents-loadURL-error" + Id, (error) => { tcs.SetException(new InvalidOperationException(error)); });

src/ElectronNET.API/Bridge/SocketIOFacade.cs

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
// ReSharper disable once CheckNamespace
33
namespace ElectronNET.API;
44

5-
using ElectronNET.API.Serialization;
6-
using SocketIO.Serializer.SystemTextJson;
75
using System;
8-
using System.Linq;
9-
using System.Text.Json;
106
using System.Threading.Tasks;
7+
using ElectronNET.API.Serialization;
8+
using SocketIO.Serializer.SystemTextJson;
119
using SocketIO = SocketIOClient.SocketIO;
1210

1311
internal class SocketIoFacade
@@ -66,20 +64,6 @@ public void On<T>(string eventName, Action<T> action)
6664
}
6765
}
6866

69-
// Keep object overload for compatibility; value will be a JsonElement boxed as object.
70-
public void On(string eventName, Action<object> action)
71-
{
72-
lock (_lockObj)
73-
{
74-
_socket.On(eventName, response =>
75-
{
76-
var value = (object)response.GetValue<JsonElement>();
77-
////Console.WriteLine($"Called Event {eventName} - data {value}");
78-
Task.Run(() => action(value));
79-
});
80-
}
81-
}
82-
8367
public void Once(string eventName, Action action)
8468
{
8569
lock (_lockObj)

src/ElectronNET.ConsoleApp/ElectronNET.ConsoleApp.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<ImportNuGetBuildTasksPackTargetsFromSdk>false</ImportNuGetBuildTasksPackTargetsFromSdk>
1717
<PublishTrimmed>False</PublishTrimmed>
1818
<NuGetAudit>false</NuGetAudit>
19+
<Nullable>disable</Nullable>
1920
</PropertyGroup>
2021
<PropertyGroup Label="ElectronNetCommon">
2122
<PackageIcon>128.png</PackageIcon>

src/ElectronNET.WebApp/ElectronNET.WebApp.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<PropertyGroup>
4646
<TypeScriptCompileOnSaveEnabled>true</TypeScriptCompileOnSaveEnabled>
4747
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
48+
<Nullable>disable</Nullable>
4849
</PropertyGroup>
4950
<ItemGroup>
5051
<Compile Remove="publish\**" />

src/ElectronNET.sln

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ EndProject
4242
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{985D39A7-5216-4945-8167-2FD0CB387BD8}"
4343
ProjectSection(SolutionItems) = preProject
4444
..\.github\workflows\ci.yml = ..\.github\workflows\ci.yml
45+
..\.github\workflows\integration-tests.yml = ..\.github\workflows\integration-tests.yml
46+
..\.github\workflows\pr-comment.yml = ..\.github\workflows\pr-comment.yml
47+
..\.github\workflows\publish-wiki.yml = ..\.github\workflows\publish-wiki.yml
48+
..\.github\workflows\trailing-whitespace-check.yml = ..\.github\workflows\trailing-whitespace-check.yml
4549
EndProjectSection
4650
EndProject
4751
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "_build", "..\nuke\_build.csproj", "{015CB06B-6CAE-209F-E050-21C3ACA5FE9F}"

0 commit comments

Comments
 (0)