-
-
Notifications
You must be signed in to change notification settings - Fork 426
/
CdpWorkerTarget.cs
45 lines (41 loc) · 1.29 KB
/
CdpWorkerTarget.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Threading.Tasks;
using PuppeteerSharp.Cdp;
using PuppeteerSharp.Helpers;
namespace PuppeteerSharp.Cdp
{
/// <summary>
/// Worker target.
/// </summary>
public class CdpWorkerTarget : CdpTarget
{
private Task<WebWorker> _workerTask;
internal CdpWorkerTarget(
TargetInfo targetInfo,
CDPSession session,
BrowserContext context,
ITargetManager targetManager,
Func<bool, Task<CDPSession>> sessionFactory,
TaskQueue screenshotTaskQueue)
: base(targetInfo, (CdpCDPSession)session, (CdpBrowserContext)context, targetManager, sessionFactory, screenshotTaskQueue)
{
}
/// <inheritdoc/>
public override Task<WebWorker> WorkerAsync()
{
_workerTask ??= WorkerInternalAsync();
return _workerTask;
}
private async Task<WebWorker> WorkerInternalAsync()
{
var client = Session ?? await SessionFactory(false).ConfigureAwait(false);
return new CdpWebWorker(
client,
TargetInfo.Url,
TargetInfo.TargetId,
TargetInfo.Type,
(_, _, _) => Task.CompletedTask,
_ => { });
}
}
}