|
1 | 1 | v4.37.0 |
2 | 2 | ====== |
| 3 | +* Add CDP for Chrome 141 and remove 138 |
3 | 4 | * Linux ARM "os.arch" system property is "aarch64" (#16381) |
4 | 5 | * 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 | 6 | * 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 | 7 | * 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 | 8 | * 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 | 9 | * [grid] Add event bus heartbeat to prevent steal connection (#16444) |
80 | 10 | * JSpecify annotations for `org.openqa.selenium.grid.jmx` (#16431) |
81 | | - > JSpecify annotations for `org.openqa.selenium.grid.jmx.JMXHelper` |
82 | 11 | * JSpecify annotations for `org.openqa.selenium.bidi.permissions` (#16430) |
83 | | -* update devtools versions |
84 | 12 |
|
85 | 13 | v4.36.0 |
86 | 14 | ====== |
|
0 commit comments