- Drop support for Selenium<4.0.0.
- Drop support for SSLv2 and SSLv3.
- Fix bug where setting non-string header values would cause an interceptor to fail.
- Add support for Microsoft Edge to webdriver
- Drop support for Python 3.6
- Fix compatibility issue with PyOpenSSL
- Fix compatibility issue with DesiredCapabilities and older versions of the Chrome webdriver API.
- Fix bug where verify_ssl would assume the inverse of the boolean passed (it was the wrong way round).
- Minor update to support Python 3.10.
- Minor README updates.
- Fix bug where setting an interceptor would break websocket requests.
- Fix bug with dynamic switching of upstream proxy.
- Fix import error with missing TouchActions in Selenium>4.1.0
- Fix compatibility issue with undetected_chromedriver.
- Handle occasional unpickle error when loading captured requests from disk.
- Configurable root certificate and private key.
- Fix bug where it was not possible to clear a proxy once set.
- Fix bug where using the chrome_options argument would prevent request capture.
- Fix issue where Proxy-Connection header was being propagated.
- Fix issue where missing 'packaging' module prevents Selenium Wire from starting.
- Fix deprecation warnings with desired capabilities.
- Fix bug preventing request capture when using Firefox and Selenium >= 4.0.0
- Fix bug where setting a socket timeout would break the SSL handshake.
- Support for brotli and zstd content encoding.
- Suppress HTTP protocol warning.
- Fix bug where automatic decoding of response body would break page loading when using response interceptors.
- Fix bug where exclude_hosts had no effect when using undetected_chromedriver.v2.
- Fix occasional unpickle error when stored requests are asked for before they have been fully flushed to disk.
- Fix attribute error preventing undetected chromedriver from starting.
- Allow upstream proxy to be changed on the fly.
- Fix async bug that breaks Django ORM.
- Introduce in-memory request storage.
- Default request storage now uses system temp folder by default.
- Remove mitmproxy backend. Selenium Wire uses mitmproxy by default so a separate mitmproxy backend is redundant.
- Fix proxy authorization failures when Selenium Wire is run in multiple threads.
- Fix bug where the upstream no_proxy setting would be ignored for http hosts.
- Prevent Firefox from bypassing Selenium Wire for localhost addresses.
- Fix bug where DNS wasn't being resolved through the proxy for socks5h.
- Don't fold separate Set-Cookie response headers into a single header.
- Add additional SSL certificate properties to request.cert
- Allow selection of undetected_chromedriver version.
- Add new attribute request.host
- Switch to upstream_cert=True by default, enabling HTTP/2.
- Fix bug where disable_capture would break upstream proxy authentication.
- Fix bug where it was not possible to specify socks4 in proxy configuration.
- Fix concurrency issue in RequestStorage that allowed partially stored requests to be retrieved.
- Make SSL certificate metadata available via request.cert
- Suppress connection aborted error by default.
- Log error on proxy authentication failure.
- Add support for HAR format.
- Add disable_capture option.
- Add driver.iter_requests().
- Fix bug where no_proxy was being ignored in proxy configuration.
- Integration with undetected-chromedriver.
- Implement websocket message capture.
- Fix bug where closure of event loop externally would trigger exception on shutdown.
- Fix bug preventing use of an empty password for an upstream proxy.
- Downgrade "The client may not trust Selenium Wire's certificate" to debug.
- Introduce auto_config option.
- Fix bug where Selenium Wire would attempt to close running event loop.
- Fix bug where IPv6 addresses were not being enclosed in square brackets, breaking the local proxy URL.
- Fix additional problems caused by IPv6 socket binding.
- Fix bug where binding to IPv6 socket would prevent Selenium Wire from starting.
- Rework the default backend to:
- improve performance when connecting to upstream proxies
- remove the need for starting an openssl subprocess for certificate generation
- fix issue where duplicate headers could not be proxied to the upstream server
- fix issue where the response status code was being overridden by the CONNECT status
- lay the groundwork for supporting websocket message capture
- lay the groundwork for supporting SSL pass-through
- Fix bug preventing mitmproxy backend from using custom confdir.
- Suppress upstream connection errors based on configuration.
- Revert change to capture OPTIONS requests by default.
- Decode response body on load.
- Fix issue where remote web driver client was being imported from incorrect package.
- Create a new event loop if current event loop is closed.
- Inroduce request and response interceptors.
- Run mitmproxy backend in a thread rather than subprocess.
- Drop internal HTTP admin API.
- Drop support for Python 3.4 and 3.5.
- Add support for remote webdriver client.
- Add support for duplicate request and response headers.
- Fixed issue where Proxy-Connection header was being propagated.
- Fixed issue where desired capabilities could not be reused outside of Selenium Wire due to addition of proxy config.
- Deprecation of header_overrides, param_overrides, querystring_overrides, rewrite_urls, custom_response_handler
- Prevent Chrome from bypassing Selenium Wire for localhost addresses.
- Automatic port number selection for mitmproxy backend.
- Support regular expressions in driver.wait_for_request().
- Introduce the mitmproxy backend
- Support for modifying response headers
- Support for modifying request parameters and the query string
- Breaking API changes:
- the request.path attribute now returns the path rather than the full URL. To retrieve the URL, use request.url.
- empty request and response bodies are now returned as empty bytes b'' rather than None.
- Disable connection persistence by default due to side effects in certain cases.
- Close connection on error rather than send 502 response to permit browser retry.
- Use SHA256 digest when creating site certificates to fix Chrome HSTS security errors.
- Add properties to allow easy retrieval of the query string and request parameters.
- Don't verify SSL by default.
- Allow configurable number of request threads.
- Use connection persistance (keep-alive) by default. Make configurable.
- Fix bug where request thread would spin after websocket closure.
- Handle errors occuring on websocket connections.
- Allow the request storage base directory to be configurable.
- Support proxying websocket connections.
- Fix bug where attempting to filter out non-existent headers would raise an error.
- Handle possibility of zero byte captured request/response files.
- Support for SOCKS proxies.
- Fix duplication of content-length header when altering body content.
- Scope request capture.
- Apply header filtering on a per-URL basis.
- Add ability to provide a custom response handler method.
- Remove signal handler from AdminClient to allow running in multi-threaded environment.
- Make connection timeout configurable.
- Fix bug where temporary storage cleanup would sometimes fail when running in a multi-threaded environment.
- Don't rely on signal handlers for temporary storage cleanup. Signal handlers are not compatible with multiple threads. Use driver.quit() for explicit cleanup.
- Support for disabling SSL verification when using self-signed certificates.
- Improve performance on Windows by explicitly closing the response output stream.
- Capture stderr leaking from openssl to the console.
- Ensure subjectAltName is added to self signed certificates.
- Refactor certificate generation code.
- More robust handling of socket errors.
- Decode response bodies at the point a client asks for them, not at the point a response is captured.
- Clean up cached request directory tree on driver.quit().
- Suppress connection related errors by default.
- Responses are no longer sent chunk by chunk where they are missing a Content-Type header.
- Ensure delayed responses don't cause errors when server is not explicitly shutdown.
- Support for authentication when using http based proxies.
- Fix bug where JSON response bodies were being decoded rather than being sent through as bytes.
- Support PATCH requests
- Ensure stored response body is always retrieved as bytes when asked for by the test.
- Updates to README.
- Use reverse chronological ordering of HISTORY.
- Fix issue where ignoring OPTIONS requests would trigger AttributeError.
- Allow proxy settings to be explicitly set to None.
- Ignore OPTIONS requests by default, and allow list of methods to be configurable via the ignore_http_methods option.
- Move default Selenium Wire request storage from system temp to user home to prevent permission collisions.
- Fix issue where new headers were not being added to the request when using driver.header_overrides.
- README and doc updates.
- Bundle openssl.cnf for Windows.
- Clearer README instructions.
- OpenSSL for Windows now bundled.
- Setup instructions for Edge.
- Fix remote proxy basic authentication.
- Updates to README.
- Load proxy settings from env variables.
- Support disabling of content encoding.
- Updates to README.
- First release on PyPI.