Skip to content

Commit de1e627

Browse files
committed
Bring more changes
1 parent ce0d13b commit de1e627

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

lib/PuppeteerSharp/Browser.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public class Browser : IBrowser
2222
private readonly ConcurrentDictionary<string, BrowserContext> _contexts;
2323
private readonly ILogger<Browser> _logger;
2424
private readonly Func<TargetInfo, bool> _targetFilterCallback;
25-
private readonly Func<TargetInfo, bool> _isPageTargetFunc;
2625
private readonly BrowserContext _defaultContext;
2726
private readonly CustomQueriesManager _customQueriesManager = new();
2827
private Task _closeTask;
@@ -43,7 +42,7 @@ internal Browser(
4342
Connection = connection;
4443
_targetFilterCallback = targetFilter ?? ((TargetInfo _) => true);
4544
_logger = Connection.LoggerFactory.CreateLogger<Browser>();
46-
_isPageTargetFunc =
45+
IsPageTargetFunc =
4746
isPageTargetFunc ??
4847
new Func<TargetInfo, bool>((TargetInfo target) =>
4948
{
@@ -140,6 +139,8 @@ public bool IsClosed
140139

141140
internal ITargetManager TargetManager { get; }
142141

142+
internal Func<TargetInfo, bool> IsPageTargetFunc { get; set; }
143+
143144
/// <inheritdoc/>
144145
public Task<IPage> NewPageAsync() => _defaultContext.NewPageAsync();
145146

@@ -478,7 +479,7 @@ private Target CreateTarget(TargetInfo targetInfo, CDPSession session)
478479
context = _defaultContext;
479480
}
480481

481-
if (_isPageTargetFunc(targetInfo))
482+
if (IsPageTargetFunc(targetInfo))
482483
{
483484
return new PageTarget(
484485
targetInfo,

lib/PuppeteerSharp/BrowserContext.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ public Task<ITarget> WaitForTargetAsync(Func<ITarget, bool> predicate, WaitForOp
4949
/// <inheritdoc/>
5050
public async Task<IPage[]> PagesAsync()
5151
=> (await Task.WhenAll(
52-
Targets().Where(t => t.Type == TargetType.Page).Select(t => t.PageAsync())).ConfigureAwait(false))
52+
Targets()
53+
.Where(t =>
54+
t.Type == TargetType.Page ||
55+
(t.Type == TargetType.Other && Browser.IsPageTargetFunc((t as Target).TargetInfo)))
56+
.Select(t => t.PageAsync())).ConfigureAwait(false))
5357
.Where(p => p != null).ToArray();
5458

5559
/// <inheritdoc/>

lib/PuppeteerSharp/PageTarget.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public PageTarget(TargetInfo targetInfo, CDPSession session, BrowserContext cont
1919
PageTask = null;
2020
}
2121

22-
internal Task<IPage> PageTask { get; set; }
22+
internal Task<Page> PageTask { get; set; }
2323

2424
/// <inheritdoc/>
2525
public override async Task<IPage> PageAsync()
@@ -28,12 +28,12 @@ public override async Task<IPage> PageAsync()
2828
{
2929
var session = Session ?? await SessionFactory(true).ConfigureAwait(false);
3030

31-
return await Page.CreateAsync(
31+
PageTask = Page.CreateAsync(
3232
session,
3333
this,
3434
_ignoreHTTPSErrors,
3535
_defaultViewport,
36-
_screenshotTaskQueue).ConfigureAwait(false);
36+
_screenshotTaskQueue);
3737
}
3838

3939
return await PageTask.ConfigureAwait(false);

0 commit comments

Comments
 (0)