Skip to content

Commit 8d53b11

Browse files
committed
Improve the page target
1 parent e654f7a commit 8d53b11

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

lib/PuppeteerSharp.Tests/BrowserContextTests/BrowserContextTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ public async Task ShouldWaitForTarget()
184184

185185
[PuppeteerTest("browsercontext.spec.ts", "BrowserContext", "should timeout waiting for a non-existent target")]
186186
[PuppeteerTimeout]
187-
public async Task ShouldTimeoutWaitingForNonExistantTarget()
187+
public async Task ShouldTimeoutWaitingForNonExistentTarget()
188188
{
189189
var context = await Browser.CreateIncognitoBrowserContextAsync();
190190
Assert.ThrowsAsync<TimeoutException>(()

lib/PuppeteerSharp.Tests/DefaultBrowserContextTests/BrowserTargetEventsTests.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@ public async Task ShouldWork()
2121
{
2222
using var browser = await Puppeteer.LaunchAsync(TestConstants.DefaultBrowserOptions());
2323

24-
var page = await browser.NewPageAsync();
25-
await browser.PagesAsync();
2624
var events = new List<string>();
2725
browser.TargetCreated += (_, _) => events.Add("CREATED");
2826
browser.TargetChanged += (_, _) => events.Add("CHANGED");
2927
browser.TargetDestroyed += (_, _) => events.Add("DESTROYED");
30-
page = await browser.NewPageAsync();
28+
var page = await browser.NewPageAsync();
3129
await page.GoToAsync(TestConstants.EmptyPage);
3230
await page.CloseAsync();
3331

lib/PuppeteerSharp.Tests/LauncherTests/DefaultBrowserContextTests.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,11 @@ public async Task ShouldWork()
2121
{
2222
using var browser = await Puppeteer.LaunchAsync(TestConstants.DefaultBrowserOptions());
2323
var events = new List<string>();
24-
// This new page is not in upstream but we use to to wait for the browser to be ready
25-
// If we don't do this the first event we get is the target of the about:blank page
26-
var page = await browser.NewPageAsync();
2724

2825
Browser.TargetCreated += (_, _) => events.Add("CREATED");
2926
Browser.TargetChanged += (_, _) => events.Add("CHANGED");
3027
Browser.TargetDestroyed += (_, _) => events.Add("DESTROYED");
31-
page = await Browser.NewPageAsync();
28+
var page = await Browser.NewPageAsync();
3229
await page.GoToAsync(TestConstants.EmptyPage);
3330
await page.CloseAsync();
3431
Assert.AreEqual(new[] { "CREATED", "CHANGED", "DESTROYED" }, events);

lib/PuppeteerSharp/PageTarget.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,19 @@ protected override void Initialize()
6868
openerPage.OnPopup(popupPage);
6969
},
7070
TaskScheduler.Default);
71+
CheckIfInitialized();
7172
}
7273

7374
protected override void CheckIfInitialized()
7475
{
75-
if (!IsInitialized && (TargetInfo.Type != TargetType.Page || !string.IsNullOrEmpty(TargetInfo.Url)))
76+
if (IsInitialized)
77+
{
78+
return;
79+
}
80+
81+
IsInitialized = !string.IsNullOrEmpty(TargetInfo.Url);
82+
if (IsInitialized)
7683
{
77-
IsInitialized = true;
7884
InitializedTaskWrapper.TrySetResult(true);
7985
}
8086
}

0 commit comments

Comments
 (0)