Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request - ARM64 support #2944

Closed
NeomMob opened this issue Oct 28, 2019 · 23 comments · Fixed by #3359
Closed

Feature Request - ARM64 support #2944

NeomMob opened this issue Oct 28, 2019 · 23 comments · Fixed by #3359

Comments

@NeomMob
Copy link

NeomMob commented Oct 28, 2019

We are starting now to see some new devices from Microsoft using ARM64 architecture. I am wondering if there is a forecasted support for them.

@kpreisser
Copy link
Contributor

kpreisser commented Oct 28, 2019

See also dotnet/winforms#2053 and dotnet/wpf#1817 for the progress of Windows ARM64 support in .NET Core, including WinForms and WPF.

@amaitland
Copy link
Member

I personally have no plans to support Win ARM64, I don't own a suitable device.

For background.

@amaitland
Copy link
Member

Someone else is welcome to take responsibility for adding and supporting Win ARM64. An ongoing commitment would be required.

@amaitland

This comment has been minimized.

@amaitland
Copy link
Member

Official Windows ARM64 builds starting with M88 will be available shortly from https://cef-builds.spotifycdn.com/index.html#windowsarm64.

As per https://bitbucket.org/chromiumembedded/cef/issues/2773/windows-add-arm64-build-support#comment-59706180

This is blocked on the linker errors when attempting to compiler CefSharp.Core.Runtime targeting .Net 5.0 (required for ARM64). As reported in #3284 (comment) which I've confirmed as being a problem.

2>MSVCMRTD_netcore.LIB(mstartup.obj) : error LNK2022: metadata operation failed (80131195) :
2>MSVCMRTD_netcore.LIB(mstartup.obj) : error LNK2022: metadata operation failed (80131195) :
2>MSVCMRTD_netcore.LIB(mstartup.obj) : error LNK2022: metadata operation failed (80131195) :
2>LINK : fatal error LNK1255: link failed because of metadata errors

The CefSharp.BrowserSubprocess.Core project compiles successfully, it's less complicated though, it's possible there's just a linker setting that's causing the problem or we might need to raise an issue with Net 5 Team.

@amaitland
Copy link
Member

For anyone interested in tacking this it looks like the first build is up on https://cef-builds.spotifycdn.com/index.html#windowsarm64

First step would be working out how to generate libcef_dll_wrapper.lib

Currently https://github.com/cefsharp/cef-binary/blob/master/build.ps1 downloads, builds and packages the x86/x64 versions, it should be possible (haven't tried obviously) to extend this to download, build and package the arm64 target binaries.

kpreisser added a commit to kpreisser/cef-binary that referenced this issue Jan 14, 2021
- Build win-arm64 version of libcef_dll_wrapper.lib when using the v141 (VS 2017) or v142 (VS 2019) toolchain.

Issue cefsharp/CefSharp#2944
amaitland pushed a commit to cefsharp/cef-binary that referenced this issue Jan 15, 2021
* Upgrade to 88.1.2+gac8e5f0+chromium-88.0.4324.27.

* - Add win-arm64 artifacts to package 'chromiumembeddedframework'.
- Build win-arm64 version of libcef_dll_wrapper.lib when using the v141 (VS 2017) or v142 (VS 2019) toolchain.

Issue cefsharp/CefSharp#2944

* Use x64_arm64 instead of amd64_arm64 as argument for vcvarsall.bat for consistency.

* PR feedback: Also build the cef.redist.arm64 package.
@kpreisser
Copy link
Contributor

kpreisser commented Jan 16, 2021

This is blocked on the linker errors when attempting to compiler CefSharp.Core.Runtime targeting .Net 5.0 (required for ARM64). As reported in #3284 (comment) which I've confirmed as being a problem.

Note that switching to net5.0 might not actually be necessary for supporting arm64 in CefSharp. With cef.sdk 88.1.2 that includes the ARM64 versions of libcef.lib and libcef_dll_wrapper.lib (from cefsharp/cef-binary#90), I was able to successfully compile CefSharp.Core.Runtime and CefSharp.BrowseSubprocess.Core after adding arm64 as platform target, and confirmed with dumpbin.exe /headers that the produced DLLs (ijwhost.dll, CefSharp.Core.Runtime.dll, CefSharp.BrowserSubprocess.Core.dll) are actually ARM64 DLLs.

I still need to check whether building a CefSharp WinForms/OffScreen app for win-arm64 with .NET 5.0 and running it on a Windows 10 on ARM machine actually works (WPF is not yet supported for win-arm64).

kpreisser added a commit to kpreisser/CefSharp that referenced this issue Jan 16, 2021
Note: .NET 5.0 or higher is required to build a WinForms/WPF application for win-arm64.

Fixes cefsharp#2944
kpreisser added a commit to kpreisser/CefSharp that referenced this issue Jan 16, 2021
Note: .NET 5.0 or higher is required to build a WinForms/WPF application for win-arm64.

Fixes cefsharp#2944
kpreisser added a commit to kpreisser/CefSharp that referenced this issue Jan 21, 2021
Note: .NET 5.0 or higher is required to build a WinForms/WPF application for win-arm64.

Fixes cefsharp#2944
amaitland pushed a commit that referenced this issue Apr 1, 2021
* Add support for Windows ARM64 for the NETCore packages.

Note: .NET 5.0 or higher is required to build a WinForms/WPF application for win-arm64.

Fixes #2944

* PR feedback: Remove "WIN32" define as it is already defined by minwindef.h.

* PR feedback: Switch the CefSharp.*.Example.netcore and CefSharp.Test.netcore projects from cef.redist to chromiumembeddedframework.runtime.

Note: These projects are excluded for build when platform is 'arm64', as otherwise the build fails as WinForms and WPF are not yet available for ARM64 in .NET 5.0.

* Follow-Up: Update path to CefSharp.Test.dll.

* PR feedback: Also use RuntimeInformation for the .NET Framework example projects.

* PR feedback:
- Remove copying of CefRedist files in CefSharp.AfterBuild.targets which is no longer needed.
- Update .vsconfig to include the VC ARM64 build tools.
@amaitland amaitland reopened this Apr 1, 2021
@amaitland
Copy link
Member

Thanks to @kpreisser support has been added to master, the MyGet feed should have packages that anyone can test.

https://www.myget.org/gallery/cefsharp

  • It's my understanding that WinForms/WPF support for ARM64 hasn't officially been released as part of .Net 5.0
  • The CEF/CefSharp builds don't run through the same automated testing that the x64/x86 builds do (there's no automated testing for CEF builds that I'm currently aware of, and there isn't any for CefSharp). I personally haven't tested these builds as I don't own the required hardware.

I'll leave this open for now as the issue will be closed when the changes make their way into a release branch.

If you have a chance please test out the nightly builds under ARM64 and report back here. Please hold off on opening new issues for now (report here instead).

@amaitland
Copy link
Member

It looks like .Net 5.0.8 now officially supports targeting WinForms/WPF for `ARM64.

https://devblogs.microsoft.com/dotnet/net-july-2021/#windows-arm64

Once AppVeyor has updated to include the newest SDK we can look at officially releasing ARM64 builds.

https://www.appveyor.com/docs/windows-images-software/#net-framework

@ghost
Copy link

ghost commented Aug 9, 2021

Hi @amaitland It looks like appveyor has updated the .NET SDK to 5.0.302 which is the version that includes ARM64 SDK. How complicated would it be to build CEFSharp for Windows ARM64 now? Thanks!

@amaitland
Copy link
Member

You can test build 92.0.250-CI4152 which is now on
https://www.myget.org/gallery/cefsharp

It was hopefully build with the latest SDK.

@ghost
Copy link

ghost commented Aug 26, 2021

@amaitland It turns out the latest version of chromiumembeddedframework.runtime package does contain win-arm64 runtime, while the latest version of CefSharp.Common.NETCore doesn't:

➜ ls -1 chromiumembeddedframework.runtime.92.0.26/CEF
win-arm64
win-x64
win-x86

➜ ls -1 cefsharp.common.netcore.92.0.260/runtimes
win-x64
win-x86

Can it be easily fixed?

@amaitland
Copy link
Member

It turns out the latest version of chromiumembeddedframework.runtime package does contain win-arm64 runtime, while the latest version of CefSharp.Common.NETCore doesn't:

Correct. You'll need to test with a CI build as stated above.

Can it be easily fixed?

As I have no means of testing a build I'm relying on user feedback. If you can test a CI build and report back. I need at least a couple of people to confirm they're working before publishing a build.

Anyone who is interested in ARM64 support please test and report back.

@kpreisser
Copy link
Contributor

kpreisser commented Aug 27, 2021

Hi,
I also wanted give an updated feedback from our side: We currently use CefSharp.Common.NETCore 92.0.250-CI4152 with CefSharp.Wpf.HwndHost 91.1.230 in a WPF application (with self-hosted subprocess) that we publish for win7-x64, win7-x86 and win10-arm64, currently using .NET 5.0.9, and have encountered no issues so far regarding CefSharp when testing it on Windows 11 Build 22000 (ARM64). Our application uses only basic browser functionality, but adds some handlers like IDownloadHandler, ILoadHandler , IContextMenuHandler, IJsDialogHandler to the ChromiumWebBrowser.

For specific use cases like running the TypeScript compiler, the performance of the chromium browser in the arm64 version of the app seems to be about 3x as fast as the performance of the x64 version (that runs with emulation) on Windows ARM64.

Thank you!

@ghost
Copy link

ghost commented Aug 27, 2021

As I have no means of testing a build I'm relying on user feedback. If you can test a CI build and report back. I need at least a couple of people to confirm they're working before publishing a build.

Anyone who is interested in ARM64 support please test and report back.

Sure, I would be happy to help, but it may take some time because right now we're just planning ARM64 support. I was asking about CEFSharp mainly to just put a checkmark in a list of dependencies 😬 If by the time we get there you'll still be in need of feedback, I'll post it here.

But I suppose you could just go ahead and give it to the public since it doesn't jeopardize other architectures in any way, and then you'll get a load of feedback from real users? Because I suppose we're not the only ones who are planning ARM64 support and seeing that the mainstream CEFSharp doesn't support it yet and consider using MS Edge Runtime instead.

@amaitland
Copy link
Member

I also wanted give an updated feedback from our side:

@kpreisser Great, thanks for the feedback 👍

But I suppose you could just go ahead and give it to the public since it doesn't jeopardize other architectures in any way,

@A-Ovchinnikov-mx I would personally like to include ARM64 support in version 93 as it would save me some time as I can finally create the release branch from master which includes ARM64 support.

@amaitland
Copy link
Member

Anyone who is interested in ARM64 support and has some time please check out a CI build and report back. Thanks.

@amaitland amaitland added this to the 93.1.x milestone Sep 5, 2021
@amaitland
Copy link
Member

ARM64 has been included in 93.1.110-pre see #3780 (comment) for release details.

Please be aware that I'm relying on community to provide support for ARM64 as I personally don't own an ARM64 device.

@kpreisser
Copy link
Contributor

Hi,

we now discovered an issue when using CefSharp.Wpf.HwndHost in a .NET 5.0 WPF app on Windows ARM64 when using a graphics card with hardware acceleration, and when publishing the app as self-contained application. However, it seems the issue itself is not caused by CEF/CefSharp.

The issue is that when starting the application and loading a URL, sometimes the Chromium Browser just "hangs" (displays a white page), and we can see that the renderer process has high CPU usage. However, it seems to be timing related as the issue doesn't always occur.

When enable logging (with default log level), and the hang issue occurs, the log file shows the following:

CEF logfile contents
[1007/102117.812:WARNING:angle_platform_impl.cc(49)] Debug.cpp:180 (insertMessage): GL error: HIGH: Internal D3D11 error: HRESULT: 0x8007000E: Error finding D3DCompile entry point.
[1007/102117.813:ERROR:shared_context_state.cc(73)] Skia shader compilation error
------------------------
// Vertex SKSL
uniform float4 sk_RTAdjust;in float2 position;in half4 color;out half4 vcolor_Stage0;void main() {// Primitive Processor QuadPerEdgeAAGeometryProcessor
vcolor_Stage0 = color;sk_Position = position.xy01;}
// Fragment SKSL
in half4 vcolor_Stage0;void main() {// Stage 0, QuadPerEdgeAAGeometryProcessor
half4 outputColor_Stage0;outputColor_Stage0 = vcolor_Stage0;const half4 outputCoverage_Stage0 = half4(1);{ // Xfer Processor: Porter Duff
sk_FragColor = outputColor_Stage0 * outputCoverage_Stage0;}}
// Vertex GLSL
#version 100

precision mediump float;
precision mediump sampler2D;
uniform highp vec4 sk_RTAdjust;
attribute highp vec2 position;
attribute mediump vec4 color;
varying mediump vec4 vcolor_Stage0;
void main() {
    vcolor_Stage0 = color;
    gl_Position = vec4(position, 0.0, 1.0);
    gl_Position = vec4(gl_Position.xy * sk_RTAdjust.xz + gl_Position.ww * sk_RTAdjust.yw, 0.0, gl_Position.w);
}

// Fragment GLSL
#version 100

precision mediump float;
precision mediump sampler2D;
varying mediump vec4 vcolor_Stage0;
void main() {
    mediump vec4 outputColor_Stage0;
    outputColor_Stage0 = vcolor_Stage0;
    {
        gl_FragColor = outputColor_Stage0;
    }
}


Errors:

[1007/102117.817:ERROR:shared_context_state.cc(797)] SharedContextState context lost via Skia OOM.
[1007/102117.817:ERROR:gpu_service_impl.cc(945)] Exiting GPU process because some drivers can't recover from errors. GPU process will restart shortly.
[1007/102117.860:ERROR:gpu_process_host.cc(956)] GPU process exited unexpectedly: exit_code=34
[1007/102117.860:WARNING:gpu_process_host.cc(1269)] The GPU process has crashed 1 time(s)
[1007/102118.018:WARNING:gpu_process_host.cc(984)] Reinitialized the GPU process after a crash. The reported initialization time was 15 ms
[1007/102118.080:WARNING:angle_platform_impl.cc(49)] Debug.cpp:180 (insertMessage): GL error: HIGH: Internal D3D11 error: HRESULT: 0x8007000E: Error finding D3DCompile entry point.
[1007/102118.080:ERROR:shared_context_state.cc(73)] Skia shader compilation error
------------------------
// Vertex SKSL
uniform float4 sk_RTAdjust;in float2 position;in half4 color;out half4 vcolor_Stage0;void main() {// Primitive Processor QuadPerEdgeAAGeometryProcessor
vcolor_Stage0 = color;sk_Position = position.xy01;}
// Fragment SKSL
in half4 vcolor_Stage0;void main() {// Stage 0, QuadPerEdgeAAGeometryProcessor
half4 outputColor_Stage0;outputColor_Stage0 = vcolor_Stage0;const half4 outputCoverage_Stage0 = half4(1);{ // Xfer Processor: Porter Duff
sk_FragColor = outputColor_Stage0 * outputCoverage_Stage0;}}
// Vertex GLSL
#version 100

precision mediump float;
precision mediump sampler2D;
uniform highp vec4 sk_RTAdjust;
attribute highp vec2 position;
attribute mediump vec4 color;
varying mediump vec4 vcolor_Stage0;
void main() {
    vcolor_Stage0 = color;
    gl_Position = vec4(position, 0.0, 1.0);
    gl_Position = vec4(gl_Position.xy * sk_RTAdjust.xz + gl_Position.ww * sk_RTAdjust.yw, 0.0, gl_Position.w);
}

// Fragment GLSL
#version 100

precision mediump float;
precision mediump sampler2D;
varying mediump vec4 vcolor_Stage0;
void main() {
    mediump vec4 outputColor_Stage0;
    outputColor_Stage0 = vcolor_Stage0;
    {
        gl_FragColor = outputColor_Stage0;
    }
}


Errors:

[1007/102118.094:ERROR:shared_context_state.cc(797)] SharedContextState context lost via Skia OOM.
[1007/102118.094:ERROR:gpu_service_impl.cc(945)] Exiting GPU process because some drivers can't recover from errors. GPU process will restart shortly.
[1007/102118.104:ERROR:gpu_process_host.cc(956)] GPU process exited unexpectedly: exit_code=34
[1007/102118.104:WARNING:gpu_process_host.cc(1269)] The GPU process has crashed 2 time(s)
[1007/102118.229:WARNING:gpu_process_host.cc(984)] Reinitialized the GPU process after a crash. The reported initialization time was 14 ms
[1007/102118.235:WARNING:angle_platform_impl.cc(49)] Debug.cpp:180 (insertMessage): GL error: HIGH: Internal D3D11 error: HRESULT: 0x8007000E: Error finding D3DCompile entry point.
[1007/102118.236:ERROR:shared_context_state.cc(73)] Skia shader compilation error
------------------------
// Vertex SKSL
uniform float4 sk_RTAdjust;in float2 position;in half4 color;out half4 vcolor_Stage0;void main() {// Primitive Processor QuadPerEdgeAAGeometryProcessor
vcolor_Stage0 = color;sk_Position = position.xy01;}
// Fragment SKSL
in half4 vcolor_Stage0;void main() {// Stage 0, QuadPerEdgeAAGeometryProcessor
half4 outputColor_Stage0;outputColor_Stage0 = vcolor_Stage0;const half4 outputCoverage_Stage0 = half4(1);{ // Xfer Processor: Porter Duff
sk_FragColor = outputColor_Stage0 * outputCoverage_Stage0;}}
// Vertex GLSL
#version 100

precision mediump float;
precision mediump sampler2D;
uniform highp vec4 sk_RTAdjust;
attribute highp vec2 position;
attribute mediump vec4 color;
varying mediump vec4 vcolor_Stage0;
void main() {
    vcolor_Stage0 = color;
    gl_Position = vec4(position, 0.0, 1.0);
    gl_Position = vec4(gl_Position.xy * sk_RTAdjust.xz + gl_Position.ww * sk_RTAdjust.yw, 0.0, gl_Position.w);
}

// Fragment GLSL
#version 100

precision mediump float;
precision mediump sampler2D;
varying mediump vec4 vcolor_Stage0;
void main() {
    mediump vec4 outputColor_Stage0;
    outputColor_Stage0 = vcolor_Stage0;
    {
        gl_FragColor = outputColor_Stage0;
    }
}


Errors:

[1007/102118.237:ERROR:shared_context_state.cc(797)] SharedContextState context lost via Skia OOM.
[1007/102118.237:ERROR:gpu_service_impl.cc(945)] Exiting GPU process because some drivers can't recover from errors. GPU process will restart shortly.
[1007/102118.259:ERROR:gpu_process_host.cc(956)] GPU process exited unexpectedly: exit_code=34
[1007/102118.259:WARNING:gpu_process_host.cc(1269)] The GPU process has crashed 3 time(s)
[1007/102118.387:ERROR:angle_platform_impl.cc(44)] Display.cpp:878 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:845.
[1007/102118.387:ERROR:gl_surface_egl.cc(780)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:845.
[1007/102118.387:ERROR:gl_surface_egl.cc(1375)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED
[1007/102118.387:ERROR:gl_initializer_win.cc(141)] GLSurfaceEGL::InitializeOneOff failed.
[1007/102118.388:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization
[1007/102118.502:ERROR:gpu_init.cc(453)] Passthrough is not supported, GL is disabled, ANGLE is 
[1007/102118.504:WARNING:gpu_process_host.cc(984)] Reinitialized the GPU process after a crash. The reported initialization time was 0 ms

Notice the error about the missing D3DCompile entry point, which I think refers to the D3DCompiler_47.dll file. This file is not present in the Windows 10/11 SDK for arm64 (so it isn't included in the CEF redist for win-arm64), but is present in the system32 directory on Windows ARM64. However, when publishing a WPF application in .NET 5, it seems the .NET SDK also copies a D3DCompiler_47.dll file in the application's directory which is nearly empty (only 26.3 KB instead of a few MB) and doesn't seem to have any function exports (the file is contained in the Microsoft.WindowsDesktop.App.Runtime.win-arm64 package).

When I delete this small D3DCompiler_47.dll file from the app directory and remove the corresponding entry in app.deps.json, the application works without problems and the browser no longer hangs.

Note that when publishing a WPF app for x64/x86, there is no D3DCompiler_47.dll file copied to the app directory; instead, it deploys a D3DCompiler_47_cor3.dll file with similar size and exports as the regular file. For ARM64 however, there is no D3DCompiler_47_cor3.dll file deployed, but the small D3DCompiler_47.dll file.

@ghost
Copy link

ghost commented Oct 7, 2021

Hi @kpreisser ,

Thank you very much for the report! I'm not a maintainer of CefSharp but it will help us tremendously with this issue in the future 👍

I have a request, could you please post this issue in https://github.com/dotnet/wpf repo? I believe Microsoft should look into the D3DCompiler_47.dll issue.

Thanks!

@kpreisser
Copy link
Contributor

Hi @A-Ovchinnikov-mx,
thanks for your reply!

I have reported this issue about D3DCompiler_47.dll in dotnet/wpf#5462.

@kpreisser
Copy link
Contributor

Additionally, I think we need to change DependencyChecker to not check for D3DCompiler_47.dll for win-arm64 (as it's not included in chromiumembeddedframework.runtime.win-arm64):

public static string[] CefOptionalDependencies =
{
// Angle and Direct3D support
// Note: Without these components HTML5 accelerated content like 2D canvas, 3D CSS and WebGL will not function.
"libEGL.dll",
"libGLESv2.dll",
"d3dcompiler_47.dll",
//Crashpad support
"chrome_elf.dll"
};

Currently, it always checks for the presence of D3DCompiler_47.dll. This works currently due to the stub DLL deployed by the .NET SDK, but once this is fixed and that file is no longer copied, the dependency check would fail when running on ARM64.

kpreisser added a commit to kpreisser/CefSharp that referenced this issue Oct 9, 2021
…4, because that file isn't present in the CEF Redist for this architecture.

Issue cefsharp#2944
kpreisser added a commit to kpreisser/CefSharp that referenced this issue Oct 9, 2021
…4, because that file isn't present in the CEF Redist for this architecture.

Issue cefsharp#2944
kpreisser added a commit to kpreisser/CefSharp that referenced this issue Oct 10, 2021
…4, because that file isn't present in the CEF Redist for this architecture.

Issue cefsharp#2944
amaitland pushed a commit that referenced this issue Oct 10, 2021
…4, because that file isn't present in the CEF Redist for this architecture. (#3841)

Issue #2944
odo-leni added a commit to odo-leni/CefSharp that referenced this issue Oct 15, 2021
commit aac5439
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Thu Oct 14 19:37:15 2021 +1000

    Test - Fix compile error

commit 439970d
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Thu Oct 14 19:28:44 2021 +1000

    Test - Fix NetCore test case

commit 1a85419
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Thu Oct 14 13:00:08 2021 +1000

    Test - Output QUnit results if tests failed

commit db9e041
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Thu Oct 14 12:58:42 2021 +1000

    build.ps1 - Remove TernaryReturn as no longer used

commit f904b88
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Thu Oct 14 12:43:35 2021 +1000

    build.ps1 - Improve vswhere programfiles check

commit 221185b
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Thu Oct 14 10:16:27 2021 +1000

    WinForms/WPF/OffScreen - Enable Chromium Site Isolation by default

    Previously was disabled by default

    Can still be disabled via disable-site-isolation-trials command line argument

    Issue cefsharp#2967

commit fd78c0c
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Thu Oct 14 10:11:33 2021 +1000

    Test - CanLoadRequestWithPostData now navigates to domain of same origin first

    When Chromium Site Isolation is enabled we must first navigate to
    a web page of the same origin to use LoadRequest
    When Site Isolation is disabled we can navigate to any web page
    https://magpcss.org/ceforum/viewtopic.php?f=10&t=18672&p=50266#p50249

    Issue cefsharp#2967

commit c72e21c
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 20:50:45 2021 +1000

    build.ps1 - Nuget Package only a subset of architectures

    - Can now build/package only a subset of architectures
    - Remove file elements from nuspec if arch wasn't specified
    - Reorder and simplify script

    .\build.ps1 -BuildArches "x64"

    Issue cefsharp#3706

commit 7c2226c
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 13:32:38 2021 +1000

    Nuget - Update dependency groups

    Resolves nuget pack warning

commit 8aa0ee5
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 13:18:56 2021 +1000

    build.ps1 - Cleanup

    - Fail fast if nuget.exe not found
    - Check for VSWhere at build start
      (should always be installed as it's included in VS2019 and above)
    - Remove netcore31 from $Target valid set, we'll just rely on the
      $TargetFramework
    - Push-Location to working directory for easier debugging

commit 13c725c
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 12:08:59 2021 +1000

    build.ps1 - Reorder scripts so functions are declared first

commit 7c57c10
Author: Mitch Capper <mitch.capper@gmail.com>
Date:   Mon Oct 11 02:12:26 2021 -0700

    Add netcore to toolchain (it uses same VS version)

commit da0f33b
Author: Mitch Capper <mitch.capper@gmail.com>
Date:   Mon Oct 11 01:51:53 2021 -0700

    Added vs2022 support and v143 targetting.  VS2022 can also build V142 but requires some additions to the project files to indicate targeting it instead.  This should not change behavior for anyone as you must specific specify the 2022 target for it to work.

commit 2af10bf
Author: Mitch Capper <mitch.capper@gmail.com>
Date:   Sun Oct 10 06:42:02 2021 -0700

    build.ps1 and build.netcore.ps1 merge and architecture target added

commit 66bb6c0
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 11:50:00 2021 +1000

    Nuget - Remove netcoreapp3.0 hacks

    For those unable to upgrade to .Net Core 3.1 then the old packages should still be usable by specifying AssetTargetFallback as detailed in https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files#assettargetfallback

    Resolves cefsharp#3444

commit 42e7b90
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 09:14:22 2021 +1000

    appveyor.yml - Update CefSharp.Test.dll path

    Runtime identifier was changed to win7-x64 so the path changed

commit bd88019
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 08:59:03 2021 +1000

    Test - Add RuntimeIdentifiers and fix build.ps1

    - Seems the Nuget restore doesn't work correctly without having RuntimeIdentifiers set
      Must also set RuntimeIdentifier manually so the files are copied correctly.
    - Move the msbuild restore after the vcvarsall.bat call so the script runs successfully

commit ee431d7
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 06:45:58 2021 +1000

    Test - Add RuntimeIdentifiers so libcef.dll etc copied to output folder

    - Adding <RuntimeIdentifiers/> didn't work as expected so set RuntimeIdentifier based on PlatformTarget
    - Updated appveyor.yml as output path for CefSharp.Test.dll changed

commit 5356e1b
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Wed Oct 13 05:15:34 2021 +1000

    Test - Update Nuget PackageReferences

    - Forgot to change to the chromiumembeddedframework.runtime package
    - Simplify references

    Follow up to cefsharp@67a08c4

    Issue cefsharp#3706

commit 67a08c4
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Sun Oct 10 15:44:47 2021 +1000

    BrowserSubProcess/Examples/Tests - Migrate to newer SDK Style projects

    - Migrate to new SDK style projects
    - Migrate to chromiumembeddedframework.runtime packages
    - Remove old packages.config files
    - Update post build event for BrowserSubprocess to set TSAware/LargeAddressAware
    - Change project build order

    Issue cefsharp#3706

commit 6953d82
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Mon Oct 11 10:26:35 2021 +1000

    Net Core - Nupkg Include xml files

    Issue cefsharp#3843

commit bfa8ccf
Author: Andrew Smith <andrews@infragistics.com>
Date:   Sun Oct 10 20:16:07 2021 -0400

    WPF - IME Only use GCS_CURSORPOS if an adjacent character is new input (cefsharp#3846)

    * Change Wpf IME handling to only use the cursor pos when an adjacent character is new input

    * Meant to change both character before and after

    * Ensure the cursor pos is > 0 when checking the character before

commit 544abc6
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Mon Oct 11 10:13:55 2021 +1000

    Revert "WinForms/WPF/OffScreen - Add WaitForBrowserInitialLoadAsync"

    Tests started failing so will revisit later.

    This reverts commit 08e5140.

commit 8bbe6a4
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Sun Oct 10 15:01:15 2021 +1000

    WPF - Fix Address Load being called multiple times after browser created

commit 0812ea9
Author: Konstantin Preißer <kpreisser@users.noreply.github.com>
Date:   Sun Oct 10 11:56:50 2021 +0200

    Don't check for presence of "d3dcompiler_47.dll" when running as ARM64, because that file isn't present in the CEF Redist for this architecture. (cefsharp#3841)

    Issue cefsharp#2944

commit 08e5140
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Sun Oct 10 14:41:04 2021 +1000

    WinForms/WPF/OffScreen - Add WaitForBrowserInitialLoadAsync

    Change all the tests to use WaitForBrowserInitialLoadAsync instead of LoadUrlAsync
    as LoadUrlAsync will require a Url as part of cefsharp#3842

commit 15cf58c
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Fri Oct 8 13:05:27 2021 +1000

    Core - Add IRequestContext.GetCookieManagerAsync extension method

    - Will return the cookie manager when the backing store has loaded
      otherwise returns null

commit b82fa05
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Fri Oct 8 12:40:54 2021 +1000

    WinForms/WPF/OffScreen - Update Load(string url) behaviour

    - All three implementations updated to include an IsDisposed check which
      will simply return immediately
    - OffScreen updated to match the WinForms behaviour
    - WPF is more complex because of the initialAddress and Address properties
      initialAddress will be set if the browser hasn't been created, if the browserCreated
      has been created and OnAfterBrowserCreated hasn't been called then we'll set the Address
      dependency property.

    NOTE: For WinForms/OffScreen there's a small window
    here between CreateBrowser and OnAfterBrowserCreated
    where the Address prop will be updated, though LoadUrl
    won't be called.

commit c226d34
Author: Alex Maitland <amaitland@users.noreply.github.com>
Date:   Fri Oct 8 10:21:31 2021 +1000

    WinForms/WPF/OffScreen - Add LoadUrl method (Same as Load(string)).

    A more meaningful name for the method, matches the LoadUrlAsync method
    that was added recently.
@kpreisser
Copy link
Contributor

kpreisser commented May 11, 2022

I have reported this issue about D3DCompiler_47.dll in dotnet/wpf#5462.

Just a follow-up: The fix for this issue has been backported to .NET 6.0 and is expected to be included in the June 2022 release (6.0.6).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants