/// <summary> /// Opens a new document loaded from a virtual response that can be /// filled via the provided callback. /// </summary> /// <param name="context">The browsing context to use.</param> /// <param name="request">Callback with the response to setup.</param> /// <param name="cancel">The cancellation token.</param> /// <returns>The task that creates the document.</returns> public static Task <IDocument> OpenAsync(this IBrowsingContext context, Action <VirtualResponse> request, CancellationToken cancel) { if (request == null) { throw new ArgumentNullException("request"); } if (context == null) { context = BrowsingContext.New(); } using (var response = new VirtualResponse()) { request(response); var source = response.CreateSourceFor(context.Configuration); return(context.LoadDocumentAsync(response, source, cancel)); } }
/// <summary> /// Opens a new document loaded from a virtual response that can be /// filled via the provided callback. /// </summary> /// <param name="context">The browsing context to use.</param> /// <param name="request">Callback with the response to setup.</param> /// <param name="cancel">The cancellation token.</param> /// <returns>The task that creates the document.</returns> public static Task <IDocument> OpenAsync(this IBrowsingContext context, Action <VirtualResponse> request, CancellationToken cancel) { if (request == null) { throw new ArgumentNullException("request"); } if (context == null) { context = BrowsingContext.New(); } using (var response = new VirtualResponse()) { request(response); var contentType = response.GetContentType(MimeTypeNames.Html); var source = response.CreateSourceFor(context.Configuration); var options = new CreateDocumentOptions(response, source); return(context.OpenAsync(options, cancel)); } }