Skip to content

SetUserAgentOverrideAsync Iframe not work #4848

Description

@drRobertDev

Is there an existing issue for this?

  • I have searched both open/closed issues, no issue already exists.

CefSharp Version

126.2.70

Operating System

Windows 11

Architecture

x64

.Net Version

.net 8

Implementation

OffScreen

Reproduction Steps

UserAgentMetadata AgentMetaData =>
new()
{
Brands = new List()
{
new UserAgentBrandVersion { Brand = "Not/A)Brand", Version = "8" },
new UserAgentBrandVersion { Brand = "Chromium", Version = "126" },
new UserAgentBrandVersion { Brand = "Google Chrome", Version = "126" },
},
FullVersion = "126.0.0.0",
Platform = "Windows",
PlatformVersion = "Win64",
Architecture = "x64",
Model = "",
Mobile = false,
};

using var devToolsClient = _webController.GetDevToolsClient();
await devToolsClient.Network.SetUserAgentOverrideAsync(BrowserAgentChrome, userAgentMetadata: WebHelper.AgentMetaData);
await devToolsClient.Emulation.SetUserAgentOverrideAsync(BrowserAgentChrome, userAgentMetadata: WebHelper.AgentMetaData);

        _webController.LoadHtml("<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\"content=\"width=device-width, initial-scale=1.0\"><title>Iframe Example</title></head><body><iframe src=\"https://easports-api.arkoselabs.com/v2/2.6.1/enforcement.bf6c920f19fb49ce16c82aaef4b83f45.html#A4EECF77-AC87-8C8D-5754-BF882F72063B&6777600a-9cef-4e3a-bde8-935a90ea7c27\"title=\"Ark\"></iframe></body></html>");

Look like not work with Iframe on page, then will show cef base value sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126" instead sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126" on iframe calls

.html load with exspected header, .js load with wrong header.

i tried also with _webController.FrameLoadEnd += Browser_FrameLoadEnd;

private static async void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
var browser = (ChromiumWebBrowser)sender;
var frameDevToolsClient = e.Browser.GetDevToolsClient();

await frameDevToolsClient.Network.SetUserAgentOverrideAsync(BrowserAgentChrome, userAgentMetadata: AgentMetaData);
await frameDevToolsClient.Emulation.SetUserAgentOverrideAsync(BrowserAgentChrome, userAgentMetadata: AgentMetaData);
}

but look like not apply on iframe

Expected behavior

sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"

Actual behavior

sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126"

Regression?

not work in previous versions

Known Workarounds

nope

Does this problem also occur in the CEF Sample Application

Yes using WPF/OffScreen command line args

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    upstreamThese issues require fixing in the Chromium Embedded Framework(CEF) or Chromium.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions