From f821ea4a2cc21a471066e5471be79e9c2fa3218f Mon Sep 17 00:00:00 2001 From: Michael Render Date: Mon, 23 Jun 2025 00:47:01 -0400 Subject: [PATCH 1/3] [dotnet] Improve handling for missing status code in HTTP interception --- dotnet/src/webdriver/DevTools/v135/V135Network.cs | 2 +- dotnet/src/webdriver/DevTools/v136/V136Network.cs | 2 +- dotnet/src/webdriver/DevTools/v137/V137Network.cs | 4 ++-- dotnet/src/webdriver/HttpResponseData.cs | 2 +- dotnet/src/webdriver/NetworkResponseReceivedEventArgs.cs | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dotnet/src/webdriver/DevTools/v135/V135Network.cs b/dotnet/src/webdriver/DevTools/v135/V135Network.cs index d01128d823d68..6fbb40b2aa74a 100644 --- a/dotnet/src/webdriver/DevTools/v135/V135Network.cs +++ b/dotnet/src/webdriver/DevTools/v135/V135Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode, + ResponseCode = responseData.StatusCode.GetValueOrDefault(), }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0) diff --git a/dotnet/src/webdriver/DevTools/v136/V136Network.cs b/dotnet/src/webdriver/DevTools/v136/V136Network.cs index 595cc7ebaf301..137e3efb7ab91 100644 --- a/dotnet/src/webdriver/DevTools/v136/V136Network.cs +++ b/dotnet/src/webdriver/DevTools/v136/V136Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode, + ResponseCode = responseData.StatusCode.GetValueOrDefault(), }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0) diff --git a/dotnet/src/webdriver/DevTools/v137/V137Network.cs b/dotnet/src/webdriver/DevTools/v137/V137Network.cs index 6fbddb0766753..9594c17c96ee1 100644 --- a/dotnet/src/webdriver/DevTools/v137/V137Network.cs +++ b/dotnet/src/webdriver/DevTools/v137/V137Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode, + ResponseCode = responseData.StatusCode.GetValueOrDefault(), }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0) @@ -354,7 +354,7 @@ private void OnFetchRequestPaused(object? sender, Fetch.RequestPausedEventArgs e RequestId = e.RequestId, Url = e.Request.Url, ResourceType = e.ResourceType.ToString(), - StatusCode = e.ResponseStatusCode.GetValueOrDefault(), + StatusCode = e.ResponseStatusCode, ErrorReason = e.ResponseErrorReason?.ToString() }; diff --git a/dotnet/src/webdriver/HttpResponseData.cs b/dotnet/src/webdriver/HttpResponseData.cs index 97d82e6b3604a..2870ba77d7caf 100644 --- a/dotnet/src/webdriver/HttpResponseData.cs +++ b/dotnet/src/webdriver/HttpResponseData.cs @@ -47,7 +47,7 @@ public HttpResponseData() /// /// Gets or sets the numeric status code of the HTTP response. /// - public long StatusCode { get; set; } + public long? StatusCode { get; set; } /// /// Gets or sets the body of the HTTP response. diff --git a/dotnet/src/webdriver/NetworkResponseReceivedEventArgs.cs b/dotnet/src/webdriver/NetworkResponseReceivedEventArgs.cs index 8b5d618420a43..f733e4918e792 100644 --- a/dotnet/src/webdriver/NetworkResponseReceivedEventArgs.cs +++ b/dotnet/src/webdriver/NetworkResponseReceivedEventArgs.cs @@ -59,7 +59,7 @@ public NetworkResponseReceivedEventArgs(HttpResponseData responseData) /// /// Gets the HTTP status code of the network response. /// - public long ResponseStatusCode { get; } + public long? ResponseStatusCode { get; } /// /// Gets the body of the network response. From 8156127e902395ba6da99c2d90526701f4bae6a9 Mon Sep 17 00:00:00 2001 From: Michael Render Date: Mon, 23 Jun 2025 00:51:39 -0400 Subject: [PATCH 2/3] [dotnet] Improve error message instead of hiding null behind zero --- dotnet/src/webdriver/DevTools/v135/V135Network.cs | 2 +- dotnet/src/webdriver/DevTools/v136/V136Network.cs | 2 +- dotnet/src/webdriver/DevTools/v137/V137Network.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dotnet/src/webdriver/DevTools/v135/V135Network.cs b/dotnet/src/webdriver/DevTools/v135/V135Network.cs index 6fbb40b2aa74a..b7566397daa16 100644 --- a/dotnet/src/webdriver/DevTools/v135/V135Network.cs +++ b/dotnet/src/webdriver/DevTools/v135/V135Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode.GetValueOrDefault(), + ResponseCode = responseData.StatusCode!.Value, }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0) diff --git a/dotnet/src/webdriver/DevTools/v136/V136Network.cs b/dotnet/src/webdriver/DevTools/v136/V136Network.cs index 137e3efb7ab91..bdb532856b349 100644 --- a/dotnet/src/webdriver/DevTools/v136/V136Network.cs +++ b/dotnet/src/webdriver/DevTools/v136/V136Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode.GetValueOrDefault(), + ResponseCode = responseData.StatusCode!.Value, }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0) diff --git a/dotnet/src/webdriver/DevTools/v137/V137Network.cs b/dotnet/src/webdriver/DevTools/v137/V137Network.cs index 9594c17c96ee1..a3ee04032e686 100644 --- a/dotnet/src/webdriver/DevTools/v137/V137Network.cs +++ b/dotnet/src/webdriver/DevTools/v137/V137Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode.GetValueOrDefault(), + ResponseCode = responseData.StatusCode!.Value, }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0) From 5724af5b4221dbec5c3a513cb151613c9151a45e Mon Sep 17 00:00:00 2001 From: Michael Render Date: Mon, 23 Jun 2025 00:52:57 -0400 Subject: [PATCH 3/3] [dotnet] Improve error message further --- dotnet/src/webdriver/DevTools/v135/V135Network.cs | 2 +- dotnet/src/webdriver/DevTools/v136/V136Network.cs | 2 +- dotnet/src/webdriver/DevTools/v137/V137Network.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dotnet/src/webdriver/DevTools/v135/V135Network.cs b/dotnet/src/webdriver/DevTools/v135/V135Network.cs index b7566397daa16..5090e953b51f0 100644 --- a/dotnet/src/webdriver/DevTools/v135/V135Network.cs +++ b/dotnet/src/webdriver/DevTools/v135/V135Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode!.Value, + ResponseCode = responseData.StatusCode ?? throw new ArgumentException("Response data status code cannot be missing", nameof(responseData)), }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0) diff --git a/dotnet/src/webdriver/DevTools/v136/V136Network.cs b/dotnet/src/webdriver/DevTools/v136/V136Network.cs index bdb532856b349..fe0e154d810b6 100644 --- a/dotnet/src/webdriver/DevTools/v136/V136Network.cs +++ b/dotnet/src/webdriver/DevTools/v136/V136Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode!.Value, + ResponseCode = responseData.StatusCode ?? throw new ArgumentException("Response data status code cannot be missing", nameof(responseData)), }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0) diff --git a/dotnet/src/webdriver/DevTools/v137/V137Network.cs b/dotnet/src/webdriver/DevTools/v137/V137Network.cs index a3ee04032e686..90335c80eac21 100644 --- a/dotnet/src/webdriver/DevTools/v137/V137Network.cs +++ b/dotnet/src/webdriver/DevTools/v137/V137Network.cs @@ -192,7 +192,7 @@ public override async Task ContinueRequestWithResponse(HttpRequestData requestDa var commandSettings = new FulfillRequestCommandSettings() { RequestId = requestData.RequestId, - ResponseCode = responseData.StatusCode!.Value, + ResponseCode = responseData.StatusCode ?? throw new ArgumentException("Response data status code cannot be missing", nameof(responseData)), }; if (responseData.Headers.Count > 0 || responseData.CookieHeaders.Count > 0)