Skip to content

Commit c0f4684

Browse files
authored
Improve TargetClosedException (#804)
* Improve TargetClosedException * Register events after TaskCompletionSource were created * Release notes
1 parent ec353c3 commit c0f4684

File tree

5 files changed

+16
-23
lines changed

5 files changed

+16
-23
lines changed

lib/PuppeteerSharp.Tests/BrowserTests/Events/DisconnectedTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public async Task ShouldRejectNavigationWhenBrowserCloses()
6767
await Server.WaitForRequest("/one-style.css");
6868
remote.Disconnect();
6969
var exception = await Assert.ThrowsAsync<NavigationException>(() => navigationTask);
70-
Assert.Equal("Navigation failed because browser has disconnected!", exception.Message);
70+
Assert.Contains("Navigation failed because browser has disconnected!", exception.Message);
7171
}
7272
}
7373

lib/PuppeteerSharp/FrameManager.cs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
namespace PuppeteerSharp
1212
{
1313
internal class FrameManager
14-
{
14+
{
1515
private Dictionary<int, ExecutionContext> _contextIdToContext;
1616
private bool _ensureNewDocumentNavigation;
17-
private readonly ILogger _logger;
17+
private readonly ILogger _logger;
1818
private readonly ConcurrentDictionary<string, Frame> _frames;
1919
private readonly MultiMap<string, TaskCompletionSource<Frame>> _pendingFrameRequests;
2020
private const int WaitForRequestDelay = 1000;
@@ -136,17 +136,7 @@ public async Task<Response> WaitForFrameNavigationAsync(Frame frame, NavigationO
136136
watcher.TimeoutOrTerminationTask
137137
).ConfigureAwait(false);
138138

139-
var exception = raceTask.Exception;
140-
if (exception == null &&
141-
watcher.TimeoutOrTerminationTask.IsCompleted &&
142-
watcher.TimeoutOrTerminationTask.Result.IsFaulted)
143-
{
144-
exception = watcher.TimeoutOrTerminationTask.Result.Exception;
145-
}
146-
if (exception != null)
147-
{
148-
throw new NavigationException(exception.Message, exception);
149-
}
139+
await raceTask;
150140

151141
return watcher.NavigationResponse;
152142
}

lib/PuppeteerSharp/LifecycleWatcher.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,17 @@ public LifecycleWatcher(
6161
_timeout = timeout;
6262
_hasSameDocumentNavigation = false;
6363

64-
frameManager.LifecycleEvent += CheckLifecycleComplete;
65-
frameManager.FrameNavigatedWithinDocument += NavigatedWithinDocument;
66-
frameManager.FrameDetached += OnFrameDetached;
67-
frameManager.NetworkManager.Request += OnRequest;
68-
frameManager.Client.Disconnected += OnClientDisconnected;
69-
7064
_sameDocumentNavigationTaskWrapper = new TaskCompletionSource<bool>();
7165
_newDocumentNavigationTaskWrapper = new TaskCompletionSource<bool>();
7266
_lifecycleTaskWrapper = new TaskCompletionSource<bool>();
7367
_terminationTaskWrapper = new TaskCompletionSource<bool>();
7468
_timeoutTask = TaskHelper.CreateTimeoutTask(timeout);
69+
70+
frameManager.LifecycleEvent += CheckLifecycleComplete;
71+
frameManager.FrameNavigatedWithinDocument += NavigatedWithinDocument;
72+
frameManager.FrameDetached += OnFrameDetached;
73+
frameManager.NetworkManager.Request += OnRequest;
74+
frameManager.Client.Disconnected += OnClientDisconnected;
7575
}
7676

7777
#region Properties

lib/PuppeteerSharp/PuppeteerSharp.csproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<TargetFramework>netstandard2.0</TargetFramework>
44
<PackOnBuild>true</PackOnBuild>
5-
<PackageVersion>1.11.0</PackageVersion>
5+
<PackageVersion>1.11.1</PackageVersion>
66
<Authors>Darío Kondratiuk</Authors>
77
<Owners>Darío Kondratiuk</Owners>
88
<PackageProjectUrl>https://github.com/kblok/puppeteer-sharp</PackageProjectUrl>
@@ -31,8 +31,10 @@
3131
* Fixed event handler leak.
3232
* Removed a couple of common allocations.
3333
* New target types.
34+
* LifeCycleWatcher fixes
35+
* ScrollIntoViewIfNeededAsync improvements
3436
]]></PackageReleaseNotes>
35-
<ReleaseVersion>1.11.0</ReleaseVersion>
37+
<ReleaseVersion>1.11.1</ReleaseVersion>
3638
<SynchReleaseVersion>false</SynchReleaseVersion>
3739
</PropertyGroup>
3840
<PropertyGroup>

lib/PuppeteerSharp/TargetClosedException.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class TargetClosedException : PuppeteerException
1616
/// </summary>
1717
/// <param name="message">Message.</param>
1818
/// <param name="closeReason">Close reason.</param>
19-
public TargetClosedException(string message, string closeReason) : base(message) => CloseReason = closeReason;
19+
public TargetClosedException(string message, string closeReason) : base($"{message} ({closeReason})")
20+
=> CloseReason = closeReason;
2021
}
2122
}

0 commit comments

Comments
 (0)