private async Task CreateTargetAsync(TargetTargetCreatedChromiumEvent e) { var targetInfo = e.TargetInfo; string browserContextId = targetInfo.BrowserContextId; if (!(browserContextId != null && _contexts.TryGetValue(browserContextId, out var context))) { context = DefaultContext; } var target = new ChromiumTarget( e.TargetInfo, this, () => _connection.CreateSessionAsync(targetInfo), context); if (TargetsMap.ContainsKey(e.TargetInfo.TargetId)) { // TODO add logger // _logger.LogError("Target should not exist before targetCreated"); } TargetsMap[e.TargetInfo.TargetId] = target; if (await target.InitializedTask.ConfigureAwait(false)) { var args = new TargetChangedArgs { Target = target }; TargetCreated?.Invoke(this, args); } }
/// <inheritdoc cref="IBrowser.GetPageTarget(IPage)"/> public ITarget GetPageTarget(IPage page) { if (page == null) { return(null); } return(ChromiumTarget.FromPage(page as Page)); }
internal Task ClosePageAsync(Page page) => _client.SendAsync(new TargetCloseTargetRequest { TargetId = ChromiumTarget.FromPage(page).TargetId });