Skip to content

v21.0.0

Choose a tag to compare

@kblok kblok released this 11 Feb 21:32
· 213 commits to master since this release
ef35a3a

New Features

  • WebDriver BiDi protocol support for Firefox!!!!! PuppeteerSharp now supports the WebDriver BiDi protocol, enabling Firefox automation alongside existing Chrome/Chromium CDP support. Select the protocol via
    LaunchOptions.Protocol.
  • New ProtocolType enum: ProtocolType.Cdp (default) and ProtocolType.WebdriverBiDi.

Breaking Changes

  • AcceptInsecureCerts removed from IBrowser: This property was removed from the public interface. Insecure certs are now handled internally via the Security.setIgnoreCertificateErrors CDP command during browser creation.
  • Non-generic EvaluateExpressionAsync() and EvaluateFunctionAsync() return type changed: Changed from Task<JsonElement?> to Task (void). If you need a return value, use the generic overloads EvaluateExpressionAsync() /
    EvaluateFunctionAsync().
  • IBrowserContext now extends IDisposable and IAsyncDisposable: Browser contexts should now be properly disposed.
  • Several protected methods on Page changed to internal: OnFrameAttached, OnFrameDetached, OnFrameNavigated, OnRequestFailed, OnRequestFinished, OnRequestServedFromCache, OnResponse, OnDOMContentLoaded, OnLoad. These were
    internal event-raising methods that should never have been protected.
  • CDPSession.Close() signature changed: From internal abstract void Close() to public abstract void Close(string closeReason).

Minor Changes

  • Dependency updates: System.Text.Json upgraded to 10.0.0, Microsoft.Bcl.AsyncInterfaces upgraded to 10.0.0.
  • New dependency: WebDriverBiDi-Relaxed 0.0.40-beta.1 added for BiDi protocol support.
  • Custom query handlers are now global: CustomQuerySelectorRegistry changed from connection-scoped to a global singleton.
  • Frame.AddScriptTagAsync() is now a concrete implementation on the base Frame class instead of abstract.
  • Package now includes README.md in the NuGet package.
  • Fix flaky ShouldReportScriptsAcrossNavigationsWhenDisabled test: Added WaitForNetworkIdleAsync() between navigations to prevent coverage data loss.