ProtectedfeaturesThe capability flags for the backend this driver instance serves. Populated from the
RemoteBrowserProviderContext at BaseRemoteBrowserProvider.Connect time (call
this.applyContext(ctx) first). Drives BaseRemoteBrowserProvider.RequireFeature.
ProtectedproviderThe backend's display name for this driver instance, used in capability-error messages. Populated from the RemoteBrowserProviderContext; falls back to the driver class name.
The backend's supported-feature flags for this driver instance.
Read-only accessor over the internally-held BaseRemoteBrowserProvider.features. The engine consults this (and the underlying provider metadata) to decide which capability-gated session methods are safe to call; a driver consults it via BaseRemoteBrowserProvider.RequireFeature.
ProtectedAcquireAcquires a CDP session from Steel: constructs the client from the bound factory, creates a session, and returns its CDP endpoint plus the ICdpSessionBackend that answers Steel's live-view / native-AI / release concerns.
The provider context (features, configuration, control mode, context user).
The acquired CDP endpoint + Steel-specific backend hooks.
ProtectedapplyCaptures the connection context onto the instance so BaseRemoteBrowserProvider.Features, BaseRemoteBrowserProvider.RequireFeature, and capability-error messages have the backend's flags and name. A concrete BaseRemoteBrowserProvider.Connect should call this first.
The provider context handed to Connect.
ProtectedbuildBuilds the BrowserConfig used to attach the shared adapter to the acquired CDP endpoint.
Always attaches via CDP (ConnectType: 'cdp') — a raw CDP websocket would otherwise be
misclassified as a Playwright server by scheme auto-detection. Viewport hints come from the
context configuration when supplied.
The CDP endpoint to attach to.
The provider context, whose Configuration may carry viewport hints.
The browser config for PlaywrightBrowserAdapter.Launch.
Opens a session: captures the context, has the driver acquire a CDP endpoint, attaches a shared PlaywrightBrowserAdapter to it over CDP, and returns the shared CdpRemoteBrowserSession. The adapter + backend are retained for Disconnect.
The host services and connection parameters for this session.
A promise resolving to the live remote-browser session handle.
ProtectedcreateCreates the PlaywrightBrowserAdapter the session will drive. A dedicated factory seam so tests can substitute a fake adapter without a real browser, and so a specialized driver could supply a pre-configured adapter if ever needed. Production drivers use the default.
A fresh, un-launched PlaywrightBrowserAdapter.
Releases the driver's own backend resources for the live session: closes the attached adapter and releases the backend. Both steps are best-effort and independent so teardown always completes; the retained references are cleared regardless of outcome. Idempotent — safe to call when nothing is connected.
A promise that resolves once teardown has run.
ProtectednotBuilds the standard RemoteBrowserCapabilityNotSupportedError for an un-overridden capability or a failed feature requirement, stamped with this driver's backend name.
The feature / method name to report.
The error to throw or reject with.
ProtectedRequireDefense-in-depth guard: asserts a SupportedFeatures flag is enabled before the driver performs
a capability-gated action, throwing RemoteBrowserCapabilityNotSupportedError if it is
false/omitted. A driver should call this at the top of any capability-gated work so that even a
direct (engine-bypassing) caller cannot run an action the metadata says is off.
The IRemoteBrowserProviderFeatures flag to require.
StaticSetBinds the SteelClientFactory every SteelRemoteBrowser instance uses to construct its
Steel client. Production binds a factory that builds the real steel-sdk adapter; tests bind one
that returns a fake. The dependency-injection seam that keeps this package free of a hard
SDK/network dependency.
The factory to use for subsequently-opened sessions.
The Steel backend driver. Subclasses BaseCdpRemoteBrowserProvider, implementing only the
AcquireSessionhook (and the backend it returns); all CDP control is inherited.