Skip to content

Commit 30f9d8e

Browse files
committed
fix
1 parent 1700097 commit 30f9d8e

File tree

2 files changed

+12
-30
lines changed

2 files changed

+12
-30
lines changed

lib/PuppeteerSharp/Bidi/BidiPage.cs

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ public class BidiPage : Page
4242
private InternalNetworkConditions _emulatedNetworkConditions;
4343
private TaskCompletionSource<bool> _closedTcs;
4444
private string _requestInterception;
45-
private string _userAgentInterception;
4645
private string _extraHeadersInterception;
4746
private bool _isJavaScriptEnabled = true;
4847

@@ -383,35 +382,7 @@ public override async Task SetUserAgentAsync(string userAgent, UserAgentMetadata
383382

384383
var enable = !string.IsNullOrEmpty(userAgent);
385384

386-
// Update the UserAgentHeaders dictionary
387-
UserAgentHeaders.Clear();
388-
if (enable)
389-
{
390-
UserAgentHeaders["User-Agent"] = userAgent;
391-
}
392-
393-
// Toggle network interception for BeforeRequestSent phase
394-
_userAgentInterception = await ToggleInterceptionAsync(
395-
[InterceptPhase.BeforeRequestSent],
396-
_userAgentInterception,
397-
enable).ConfigureAwait(false);
398-
399-
// Override navigator.userAgent in JavaScript for all frames
400-
var overrideNavigatorUserAgent = @"(userAgent) => {
401-
Object.defineProperty(navigator, 'userAgent', {
402-
value: userAgent,
403-
configurable: true,
404-
});
405-
}";
406-
407-
var frames = Frames;
408-
var tasks = new List<Task>(frames.Length);
409-
foreach (var frame in frames)
410-
{
411-
tasks.Add(frame.EvaluateFunctionAsync(overrideNavigatorUserAgent, userAgent));
412-
}
413-
414-
await Task.WhenAll(tasks).ConfigureAwait(false);
385+
await BidiMainFrame.BrowsingContext.SetUserAgentAsync(enable ? userAgent : null).ConfigureAwait(false);
415386
}
416387

417388
/// <inheritdoc />

lib/PuppeteerSharp/Bidi/Core/BrowsingContext.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
using System.Collections.Generic;
2626
using System.Threading.Tasks;
2727
using WebDriverBiDi.BrowsingContext;
28+
using WebDriverBiDi.Emulation;
2829
using WebDriverBiDi.Input;
2930

3031
namespace PuppeteerSharp.Bidi.Core;
@@ -213,6 +214,16 @@ internal async Task<string> AddInterceptAsync(WebDriverBiDi.Network.AddIntercept
213214
return result.InterceptId;
214215
}
215216

217+
internal async Task SetUserAgentAsync(string userAgent)
218+
{
219+
var parameters = new SetUserAgentOverrideCommandParameters
220+
{
221+
UserAgent = userAgent,
222+
Contexts = [Id],
223+
};
224+
await Session.Driver.Emulation.SetUserAgentOverrideAsync(parameters).ConfigureAwait(false);
225+
}
226+
216227
protected virtual void OnBrowsingContextCreated(BidiBrowsingContextEventArgs e) => BrowsingContextCreated?.Invoke(this, e);
217228

218229
private void Initialize()

0 commit comments

Comments
 (0)