private async Task OnExecutionContextCreatedAsync(ContextPayload contextPayload) { var frameId = contextPayload.AuxData?.FrameId; var frame = !string.IsNullOrEmpty(frameId) ? await GetFrameAsync(frameId).ConfigureAwait(false) : null; DOMWorld world = null; if (frame != null) { if (contextPayload.AuxData?.IsDefault == true) { world = frame.MainWorld; } else if (contextPayload.Name == UtilityWorldName && !frame.SecondaryWorld.HasContext) { // In case of multiple sessions to the same target, there's a race between // connections so we might end up creating multiple isolated worlds. // We can use either. world = frame.SecondaryWorld; } } var context = new ExecutionContext(Client, contextPayload, world); if (world != null) { world.SetContext(context); } _contextIdToContext[contextPayload.Id] = context; }
private void OnExecutionContextCreated(ContextPayload contextPayload) { var context = new ExecutionContext(_client, contextPayload, (dynamic remoteObject) => { _contextIdToContext.TryGetValue(contextPayload.Id, out var storedContext); if (storedContext == null) { Console.WriteLine($"INTERNAL ERROR: missing context with id = {contextPayload.Id}"); } if (remoteObject.Subtype == "node") { return(new ElementHandle(storedContext, _client, remoteObject, _page)); } return(new JSHandle(storedContext, _client, remoteObject)); }); _contextIdToContext[contextPayload.Id] = context; var frame = !string.IsNullOrEmpty(context.FrameId) ? Frames[context.FrameId] : null; if (frame != null && context.IsDefault) { frame.SetDefaultContext(context); } }
private async Task OnExecutionContextCreatedAsync(ContextPayload contextPayload) { var frameId = contextPayload.AuxData?.FrameId; var frame = !string.IsNullOrEmpty(frameId) ? await GetFrameAsync(frameId).ConfigureAwait(false) : null; DOMWorld world = null; if (frame != null) { if (contextPayload.AuxData?.IsDefault == true) { world = frame.MainWorld; } else if (contextPayload.Name == UtilityWorldName) { world = frame.SecondaryWorld; } } if (contextPayload.AuxData?.Type == DOMWorldType.Isolated) { _isolatedWorlds.Add(contextPayload.Name); } var context = new ExecutionContext(Client, contextPayload, world); if (world != null) { world.SetContext(context); } _contextIdToContext[contextPayload.Id] = context; }
public ExecutionContext(Session client, ContextPayload contextPayload, Func <dynamic, JSHandle> objectHandleFactory) { _client = client; _contextId = contextPayload.Id; FrameId = contextPayload.AuxData.FrameId; IsDefault = contextPayload.AuxData.IsDefault; ObjectHandleFactory = objectHandleFactory; }
internal ExecutionContext( CDPSession client, ContextPayload contextPayload, DOMWorld world) { _client = client; _contextId = contextPayload.Id; World = world; }
internal ExecutionContext( CDPSession client, ContextPayload contextPayload, Frame frame) { _client = client; _contextId = contextPayload.Id; Frame = frame; }
internal ExecutionContext( CDPSession client, ContextPayload contextPayload, Func <ExecutionContext, dynamic, JSHandle> objectHandleFactory, Frame frame) { _client = client; _contextId = contextPayload.Id; ObjectHandleFactory = objectHandleFactory; Frame = frame; }
internal ExecutionContext( CDPSession client, ContextPayload contextPayload, Func <dynamic, JSHandle> objectHandleFactory, Frame frame) { _client = client; _contextId = contextPayload.Id; FrameId = contextPayload.AuxData.FrameId; IsDefault = contextPayload.AuxData.IsDefault; ObjectHandleFactory = objectHandleFactory; Frame = frame; }
private void OnExecutionContextCreated(ContextPayload contextPayload) { var context = new ExecutionContext(_client, contextPayload, remoteObject => CreateJsHandle(contextPayload.Id, remoteObject)); _contextIdToContext[contextPayload.Id] = context; var frame = !string.IsNullOrEmpty(context.FrameId) ? Frames[context.FrameId] : null; if (frame != null && context.IsDefault) { frame.SetDefaultContext(context); } }
private void OnExecutionContextCreated(ContextPayload contextPayload) { var frameId = contextPayload.AuxData.IsDefault ? contextPayload.AuxData.FrameId : null; var frame = !string.IsNullOrEmpty(frameId) ? Frames[frameId] : null; var context = new ExecutionContext( _client, contextPayload, frame); _contextIdToContext[contextPayload.Id] = context; if (frame != null) { frame.SetDefaultContext(context); } }
private async Task OnExecutionContextCreatedAsync(ContextPayload contextPayload) { var frameId = contextPayload.AuxData.IsDefault ? contextPayload.AuxData.FrameId : null; var frame = !string.IsNullOrEmpty(frameId) ? await GetFrameAsync(frameId) : null; var context = new ExecutionContext( Client, contextPayload, frame); _contextIdToContext[contextPayload.Id] = context; if (frame != null) { frame.SetDefaultContext(context); } }
public ExecutionContext(Session client, ContextPayload contextPayload, Func <dynamic, JSHandle> objectHandleFactory) { _client = client; _contextId = contextPayload.Id; ObjectHandleFactory = objectHandleFactory; }