Skip to content

Commit 740994c

Browse files
committed
Fixed failing dispose of uninitialized renderer
1 parent 54b378b commit 740994c

File tree

11 files changed

+93
-57
lines changed

11 files changed

+93
-57
lines changed

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: "nuget" # See documentation for possible values
9+
directory: "/" # Location of package manifests
10+
schedule:
11+
interval: "daily"

.vscode/extensions.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"ms-dotnettools.csharp"
4+
]
5+
}

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
"Rgba",
88
"nupkg",
99
"snupkg"
10-
]
10+
],
11+
"editor.formatOnSave": true
1112
}

.vscode/tasks.json

Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,52 @@
11
{
2-
"version": "2.0.0",
3-
"tasks": [
4-
{
5-
"label": "build",
6-
"command": "dotnet",
7-
"type": "process",
8-
"args": [
9-
"build",
10-
"${workspaceFolder}/PuppeteerSharp.RendererTests/PuppeteerSharp.RendererTests.csproj",
11-
"/property:GenerateFullPaths=true",
12-
"/consoleloggerparameters:NoSummary"
13-
],
14-
"problemMatcher": "$msCompile"
15-
},
16-
{
17-
"label": "publish",
18-
"command": "dotnet",
19-
"type": "process",
20-
"args": [
21-
"publish",
22-
"${workspaceFolder}/PuppeteerSharp.RendererTests/PuppeteerSharp.RendererTests.csproj",
23-
"/property:GenerateFullPaths=true",
24-
"/consoleloggerparameters:NoSummary"
25-
],
26-
"problemMatcher": "$msCompile"
27-
},
28-
{
29-
"label": "watch",
30-
"command": "dotnet",
31-
"type": "process",
32-
"args": [
33-
"watch",
34-
"run",
35-
"${workspaceFolder}/PuppeteerSharp.RendererTests/PuppeteerSharp.RendererTests.csproj",
36-
"/property:GenerateFullPaths=true",
37-
"/consoleloggerparameters:NoSummary"
38-
],
39-
"problemMatcher": "$msCompile"
40-
},
41-
{
42-
"label": "update nuget packages",
43-
"type": "shell",
44-
"command": "'./.vscode/updateNuget.sh'"
45-
}
46-
]
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"label": "build",
6+
"command": "dotnet",
7+
"type": "process",
8+
"args": [
9+
"build",
10+
"${workspaceFolder}/PuppeteerSharp.RendererTests/PuppeteerSharp.RendererTests.csproj",
11+
"/property:GenerateFullPaths=true",
12+
"/consoleloggerparameters:NoSummary"
13+
],
14+
"problemMatcher": "$msCompile"
15+
},
16+
{
17+
"label": "publish",
18+
"command": "dotnet",
19+
"type": "process",
20+
"args": [
21+
"publish",
22+
"${workspaceFolder}/PuppeteerSharp.RendererTests/PuppeteerSharp.RendererTests.csproj",
23+
"/property:GenerateFullPaths=true",
24+
"/consoleloggerparameters:NoSummary"
25+
],
26+
"problemMatcher": "$msCompile"
27+
},
28+
{
29+
"label": "watch",
30+
"command": "dotnet",
31+
"type": "process",
32+
"args": [
33+
"watch",
34+
"run",
35+
"${workspaceFolder}/PuppeteerSharp.RendererTests/PuppeteerSharp.RendererTests.csproj",
36+
"/property:GenerateFullPaths=true",
37+
"/consoleloggerparameters:NoSummary"
38+
],
39+
"problemMatcher": "$msCompile"
40+
},
41+
{
42+
"label": "update nuget",
43+
"command": "${workspaceFolder}/.vscode/updateNuget.sh",
44+
"args": [],
45+
"group": "build",
46+
"presentation": {
47+
"reveal": "always"
48+
},
49+
"problemMatcher": "$msCompile"
50+
}
51+
]
4752
}

.vscode/updateNuget.sh

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ find . -name "*.*proj" | while read proj; do
66
name="${BASH_REMATCH[1]}"
77
version="${BASH_REMATCH[2]}"
88
if [[ $version != *-* ]]; then
9-
dotnet add "$proj" package $name
9+
dotnet add "$proj" package "$name"
1010
fi
1111
fi
1212
done <"$proj"

PuppeteerSharp.Renderer/PuppeteerSharp.Renderer.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535

3636
<ItemGroup>
3737
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all" />
38-
<PackageReference Include="PuppeteerSharp" Version="2.0.4" />
39-
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.18.0.27296">
38+
<PackageReference Include="PuppeteerSharp" Version="3.0.0" />
39+
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.20.0.28934">
4040
<PrivateAssets>all</PrivateAssets>
4141
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
4242
</PackageReference>

PuppeteerSharp.Renderer/Renderer.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ private async Task<Renderer> InitializeAsync(BrowserFetcher browserFetcher)
4444
BrowserFetcher = browserFetcher;
4545
BrowserFetcher.DownloadProgressChanged += DownloadProgressChanged;
4646

47-
await BrowserFetcher.DownloadAsync(BrowserFetcher.DefaultRevision).ConfigureAwait(false);
47+
await BrowserFetcher.DownloadAsync(BrowserFetcher.DefaultChromiumRevision).ConfigureAwait(false);
4848
Browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }).ConfigureAwait(false);
4949
return this;
5050
}
@@ -97,6 +97,11 @@ private void DownloadProgressChanged(object sender, DownloadProgressChangedEvent
9797

9898
ValueTask IAsyncDisposable.DisposeAsync()
9999
{
100+
if (Browser == null)
101+
{
102+
return new ValueTask();
103+
}
104+
100105
Browser.CloseAsync().ConfigureAwait(false);
101106
return ((IAsyncDisposable)Browser).DisposeAsync();
102107
}

PuppeteerSharp.RendererCliTests/PuppeteerSharp.RendererCliTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
10+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" />
1111
<PackageReference Include="xunit" Version="2.4.1" />
1212
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
1313
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

PuppeteerSharp.RendererTests/PuppeteerSharp.RendererTests.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
4+
<TargetFrameworks>net5.0</TargetFrameworks>
55
<IsPackable>false</IsPackable>
66
<LangVersion>8.0</LangVersion>
77
<Nullable>enable</Nullable>
@@ -16,13 +16,13 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="ImageSharpCompare" Version="1.1.30" />
20-
<PackageReference Include="PdfjsSharp" Version="1.0.47" />
21-
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.18.0.27296">
19+
<PackageReference Include="ImageSharpCompare" Version="1.1.34" />
20+
<PackageReference Include="PdfjsSharp" Version="1.0.50" />
21+
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.20.0.28934">
2222
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2323
<PrivateAssets>all</PrivateAssets>
2424
</PackageReference>
25-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
25+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" />
2626
<PackageReference Include="xunit" Version="2.4.1" />
2727
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
2828
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

PuppeteerSharp.RendererTests/RendererTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,14 @@ public async Task ShouldConvertHtmlToPng(string testFileName)
5353

5454
DocumentAsserter.AssertImageIsEqual(actualFilePath, expectReferenceFilePath, 50);
5555
}
56+
57+
[Fact]
58+
public async Task ShouldDisposeGracefull()
59+
{
60+
await using (var chromiumRenderer = new Renderer())
61+
{
62+
Assert.Null(chromiumRenderer.BrowserFetcher);
63+
}
64+
}
5665
}
5766
}

0 commit comments

Comments
 (0)