/// <summary>
 /// Opens a new document loaded from the specified request
 /// asynchronously in the given context.
 /// </summary>
 /// <param name="context">The browsing context to use.</param>
 /// <param name="request">The request to issue.</param>
 /// <param name="cancel">The cancellation token.</param>
 /// <returns>The task that creates the document.</returns>
 public static Task <IDocument> OpenAsync(this IBrowsingContext context, DocumentRequest request, CancellationToken cancel = default)
 {
     request = request ?? throw new ArgumentNullException(nameof(request));
     context = context ?? BrowsingContext.New();
     return(context.NavigateToAsync(request));
 }