|
| 1 | +v4.37.0 |
| 2 | +====== |
| 3 | +* Linux ARM "os.arch" system property is "aarch64" (#16381) |
| 4 | +* Rescuing the remote cause for session creation errors (#16418) |
| 5 | + > * Rescuing the remote cause for session creation errors |
| 6 | + > Fixes #16388 |
| 7 | + > * Code improvement, thanks to @valfirst |
| 8 | +* feat: Add native Java 11 HTTP client methods to HttpClient interface (#16412) |
| 9 | + > * feat: Add native Java 11 HTTP client methods to HttpClient interface |
| 10 | + > Add sendAsyncNative() and sendNative() methods to leverage java.net.http.HttpClient |
| 11 | + > capabilities while maintaining backward compatibility with existing executeAsync(). |
| 12 | + > ## New Methods Added: |
| 13 | + > - sendAsyncNative(): Asynchronous HTTP requests using CompletableFuture |
| 14 | + > - sendNative(): Synchronous HTTP requests with native error handling |
| 15 | + > ## Benefits: |
| 16 | + > - HTTP/2 support with automatic protocol negotiation and multiplexing |
| 17 | + > - Efficient streaming for large files without memory overhead |
| 18 | + > - Native async operations with CompletableFuture integration |
| 19 | + > - Flexible response handling via BodyHandler (String, File, Stream, Lines) |
| 20 | + > - Better error handling with specific HTTP exceptions (IOException, InterruptedException) |
| 21 | + > - Improved performance for concurrent requests |
| 22 | + > ## Implementation Details: |
| 23 | + > - Added method signatures to HttpClient interface |
| 24 | + > - Implemented native delegation in JdkHttpClient using underlying java.net.http.HttpClient |
| 25 | + > - Added pass-through implementations in TracedHttpClient |
| 26 | + > - Added UnsupportedOperationException stubs in test classes and utility clients |
| 27 | + > - Maintained full backward compatibility with existing methods |
| 28 | + > ## Testing: |
| 29 | + > - Created comprehensive unit tests (NativeHttpClientMethodsTest) |
| 30 | + > - Tests cover both synchronous and asynchronous operations |
| 31 | + > - Exception handling validation for IOException and InterruptedException |
| 32 | + > - Request parameter validation for different HTTP methods (GET, POST) |
| 33 | + > - BodyHandler variations testing (String, Void, Stream) |
| 34 | + > - Mock implementations for reliable testing without external dependencies |
| 35 | + > The new methods provide a migration path towards modern Java 11 HTTP APIs |
| 36 | + > without breaking current implementations, enabling developers to leverage |
| 37 | + > native HTTP/2 features, better async handling, and improved performance |
| 38 | + > when using Selenium's HTTP client infrastructure. |
| 39 | + > * feat: Add generic native Java 11 HTTP client methods to HttpClient interface |
| 40 | + > Add sendAsyncNative() and sendNative() generic methods to leverage java.net.http.HttpClient |
| 41 | + > capabilities with full BodyHandler flexibility while maintaining backward compatibility. |
| 42 | + > ## New Methods Added: |
| 43 | + > - <T> sendAsyncNative(): Generic asynchronous HTTP requests using CompletableFuture |
| 44 | + > - <T> sendNative(): Generic synchronous HTTP requests with native error handling |
| 45 | + > ## Key Features: |
| 46 | + > - **Full BodyHandler Support**: String, File, Stream, Lines, ByteArray, Void (discarding) |
| 47 | + > - **HTTP/2 Support**: Automatic protocol negotiation and multiplexing |
| 48 | + > - **Efficient Streaming**: Large files without memory overhead via BodyHandlers.ofFile() |
| 49 | + > - **Native Async Operations**: CompletableFuture integration with proper type safety |
| 50 | + > - **Flexible Response Handling**: Type-safe responses based on BodyHandler type |
| 51 | + > - **Better Error Handling**: Specific HTTP exceptions (IOException, InterruptedException) |
| 52 | + > - **Improved Performance**: Concurrent requests and HTTP/2 optimizations |
| 53 | + > ## Implementation Details: |
| 54 | + > - Added generic method signatures to HttpClient interface with proper JavaDoc |
| 55 | + > - Implemented native delegation in JdkHttpClient using underlying java.net.http.HttpClient |
| 56 | + > - Added pass-through generic implementations in TracedHttpClient |
| 57 | + > - Added UnsupportedOperationException stubs in test classes and utility clients |
| 58 | + > - Maintained full backward compatibility with existing executeAsync() method |
| 59 | + > - Enhanced type safety with proper generic constraints |
| 60 | +* refactor(remote/command): Merge overload's business logic (#14469) |
| 61 | + > * refactor(remote/command): Merge overload's business logic |
| 62 | + > * fix: language level |
| 63 | + > * fix: require non-null assertion for npe when use singleton collection |
| 64 | + > * revert: java language level to 11 |
| 65 | +* make augmentation of HasBiDi/HasDevTools lazy-loaded (#16338) |
| 66 | + > * make augmentation of HasBiDi/HasDevTools lazy-loaded |
| 67 | + > Otherwise, command `new Augmenter().augment(remoteWebDriver)` fails immediately (even if I don't want to use CDP or BiDi). |
| 68 | + > * Augmenter should only augment (create instance of interfaces). |
| 69 | + > * Augmenter should not perform any other actions (establish CDP connection, establish BiDi connection etc.) |
| 70 | + > * avoid establishing CDP connection in `maybeGet*()` method |
| 71 | + > 1. method `getBiDi`/`getDevTools` should establish a connection, BUT |
| 72 | + > 1. method `maybeGet*()` returns connection only if the connection is already established, but should NOT establish a new connection. |
| 73 | + > It's because method `maybeGet*()` is used from `WebDriver.close()` and `WebDriver.quite()`. At this moment, we don't want a new connection, we only want to close the existing connection. |
| 74 | + > * extract reusable code to Lazy.java |
| 75 | + > Now we have a convenient factory method `lazy` for declaring lazy-initialized values like BiDi or DevTools. |
| 76 | + > This simplifies BiDiProvider and DevToolsProvider code. |
| 77 | + > * add log informing user that CDP/BiDi connection is not established immediately anymore |
| 78 | + > * reformat the code |
| 79 | +* update devtools versions |
| 80 | + |
1 | 81 | v4.36.0 |
2 | 82 | ====== |
3 | 83 | * Add CDP for Chrome 140 and remove 137 |
|
0 commit comments