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
fix: rename WebSwapCGLLayer to WebSwapCGLLayerChromium #35961
Conversation
1c1d1c1
to
d8cec87
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be submitted upstream
@nornagon How will it help if the new version of ANGLE makes it into WebKit in the new macOS? We will get the same error again. |
Why are we linking against WebKit? |
@nornagon I can check that, but it might be a transitive dependency of some other framework / library that we load |
Electron is not directly linking WebKit
|
However when I set
|
After quite a bit of fooling around, I determined that it's Quartz.framework which produces the dependency on WebKit. Here's the path: Chromium also links to Quartz.framework so presumably Chromium has the exact same issue. |
Indeed:
So I think this should be WONTFIX. It's a macOS bug. |
Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1217851, response from Apple is interesting https://bugs.chromium.org/p/chromium/issues/detail?id=1217851#c6. @nornagon maybe you want to comment about the dependency chain on that issue, I think it could help move their Apple bug report forward ? |
@nornagon why would it be a macOS bug? It's just a feature of the Objective-C runtime, you can't have two classes with the same name in a single process. The fact that I really don't see a major issue having a simple patch, which fixes the warning and has basically a 0% risk of breaking something. Actually without the patch we are risking something breaking as it's undefined, which version of the |
@miniak patches are maintenance burden. If we land this patch, later on it will break and we will have to figure out why and fix it. Given Chromium is in the exact same situation and doesn't seem to be particularly bothered by it, I'm not sure I want to take on that maintenance burden. There's an upstream bug for this. IMO either we fix this upstream—maybe by suffixing the I guess it's arguably not a macOS bug but an Objective-C "bug" that you can't hide an Objective-C class from clients of a library. |
https://bugs.chromium.org/p/chromium/issues/detail?id=1217851#c11 suggests a reasonable fix upstream. |
@nornagon, I know that very well, we have plenty of custom patches in our fork. It's a PITA. However the warning is annoying, therefore I've already applied this patch to our fork and will remove it when there is a better solution from upstream. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i changed my mind. the warning is annoying, the patch is small, and chrome will fix this properly eventually.
The failing test is a flaky one. |
Release Notes Persisted
|
* fix: rename WebSwapCGLLayer to WebSwapCGLLayerChromium * undo changes to patches/config.json Co-authored-by: Jeremy Rose <jeremya@chromium.org> Co-authored-by: Milan Burda <milan.burda@gmail.com>
I have automatically backported this PR to "21-x-y", please check out #36798 |
I have automatically backported this PR to "23-x-y", please check out #36799 |
I have automatically backported this PR to "22-x-y", please check out #36800 |
* fix: rename WebSwapCGLLayer to WebSwapCGLLayerChromium * undo changes to patches/config.json Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* fix: rename WebSwapCGLLayer to WebSwapCGLLayerChromium * undo changes to patches/config.json Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* fix: rename WebSwapCGLLayer to WebSwapCGLLayerChromium * undo changes to patches/config.json Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* fix: rename WebSwapCGLLayer to WebSwapCGLLayerChromium * undo changes to patches/config.json Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Description of Change
Fixes #33685
This was being fixed in ANGLE https://chromium-review.googlesource.com/c/angle/angle/+/3062212
But now again both WebKit and Chromium have the duplicate symbol as they both use ANGLE
Checklist
npm test
passesRelease Notes
Notes: Fixed warning about duplicate
WebSwapCGLLayer
symbols when Electron starts on macOS.