-
Notifications
You must be signed in to change notification settings - Fork 473
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
Windows: Spell checker not working, add support for WinUseBrowserSpellChecker #3055
Comments
Original comment by Salvador Diaz Fau (Bitbucket: salvadordf, GitHub: salvadordf). Workaround : Disabling the WinUseBrowserSpellChecker feature seems to fix this issue.
Chromium enables the Windows native spell checker by default : |
|
alloy-win: Disable the WinUseBrowserSpellChecker feature (see issue #3055) Workaround until support for the Windows 10+ spellcheck service is added for → <<cset eabdf3a2ca32 (bb)>> |
alloy-win: Disable the WinUseBrowserSpellChecker feature (see issue #3055) Workaround until support for the Windows 10+ spellcheck service is added for → <<cset 192276af566c (bb)>> |
alloy-win: Disable the WinUseBrowserSpellChecker feature (see issue #3055) Workaround until support for the Windows 10+ spellcheck service is added for → <<cset b356923f5c73 (bb)>> |
…hromiumembedded#3055) Workaround until support for the Windows 10+ spellcheck service is added for the Alloy runtime.
…hromiumembedded#3055) Workaround until support for the Windows 10+ spellcheck service is added for the Alloy runtime.
…hromiumembedded#3055) Workaround until support for the Windows 10+ spellcheck service is added for the Alloy runtime.
I notice that this flag got removed with this commit. Does that mean the spellcheck service is supported in that version and this flag is no longer required? I ask because we've had the |
This should work with Chrome bootstrap. See #3685. |
The WinUseBrowserSpellChecker feature flag no longer exists in Chromium, so it cannot be disabled. Something may be required to support this with Alloy style. See https://www.magpcss.org/ceforum/viewtopic.php?f=6&t=18269&start=10 |
Is there any potential guidance on where to possibly start with triaging and fixing this in Alloy style? Our users are perhaps unsurprisingly disappointed with losing spell check and I feel powerless to impact it. Telling them "just stick with the pre-chrome-runtime version" only works until there's a serious enough security fix in Chromium to get out. |
From the forum thead:
This suggests that spellchecking is at least partially working with Alloy style. GetDictionarySuggestions() is just a thin wrapper around ContextMenuParams.dictionary_suggestions. The suggestions should come from the renderer process here. |
Is the Alloy bootstrap code available to reference to see what steps it took to get the suggestions in there that's absent in the Chrome bootstrap? |
As mentioned above, spellchecker with Alloy only worked when running with |
Native spellchecker was implemented in https://issues.chromium.org/issues/40407926. Referring to those commits may assist you. |
Looks like the ability to disable the specific feature was removed in https://chromium.googlesource.com/chromium/src/+/3fed1eefc32dd0b0aedd428af13c4a199dc863f6 Looks like there is still a way to disable in code, so in theory you could build a custom version of CEF. |
There is a preference to disable the spell check service, might be worth trying https://source.chromium.org/chromium/chromium/src/+/main:components/spellcheck/browser/pref_names.h;drc=e3f856ae03dd1c131b435a16d71f36de3f0f44a3;l=32 to see if works as a temp workaround (I haven't tested yet) |
Thanks @amaitland. I've been researching this issue heavily the last week, and so far it has led me to create #3860 Disabling off screen rendering in CefSharp's minimal example didn't immediately solve the issue though, but we have a lot of users affected by this, so I'll take a look at what you found and continue to look for a solution. If you have any other ideas where else I might check, with the above in mind - let me know :) |
@mol I suspect your issue is a duplicate of this one. I suspect the cases it works are where the spell check falls back to hunspell as windows doesn't have the relevant language pack (last paragraph of https://issues.chromium.org/issues/40247740)
Currently spell check only works with chrome styled windows. In the context of CefSharp using the hwndhost example and switching to chrome style should work. cefsharp/CefSharp#4835 (comment)
Will do. |
That could have been the issue, but my Windows language is en-US (one of the ones that doesn't work for me in CEF), and spell checking works in Windows' settings:
Thanks. I was considering playing around more with the hwndhost version, but ran into issues last time I briefly tried it. Our code that's using CefSharp is pretty ancient, so needs a bit of work :) |
Unfortunately this didn't appear to do anything meaningful. |
Thanks for trying 👍 I also tried setting I might also try and see if I can get to actually run and debug CEF with Chromium. That would make all this so much easier - being able to step through and see what's happening. |
Trying to get the Chromium Instead, changing UseBrowserSpellChecker to return Obviously it would be nicer to add support for the Windows spell checker for Alloy style, but this works for me - as I anyway do a custom CEF build. |
If you're on a version of Chromium prior to two weeks ago, I also found a much easier way to get it working - without requiring a custom build. Just use the command line argument But this wouldn't work moving forward, as the feature flag is now removed. It seems like to support the Windows spell checker, Alloy CEF would need to listen to the async changes to the suggestions, I think from here, and then re-create the context menu here (or replace the existing suggestions inside). I'm not very familiar with CEF, or C++ anymore for that matter, but I'll have a look and see if I can work it out. |
Looks like I've only had a quick look over the code, no sure if the same solution will apply yet. |
Scratch my other idea of implementing the add and update handlers. The electron solution was way easier. I should have a patch shortly. |
Here is the patch for 131. It will be a bit for me to switch back to master and make a PR. @magreenblatt let me know if you have any issue with this approach.
|
Original report by Salvador Diaz Fau (Bitbucket: salvadordf, GitHub: salvadordf).
What steps will reproduce the problem?
What is the expected output? What do you see instead?
Words with incorrect spelling should be marked with a red squiggly line underneath but it doesn’t add the red line to any word.
What version of the product are you using? On what operating system?
CEF 87.1.11 on Windows 10 64 bits
https://cef-builds.spotifycdn.com/cef_binary_87.1.11%2Bg8bb7705%2Bchromium-87.0.4280.66_windows64_client.tar.bz2
Does the problem reproduce with the cefclient or cefsimple sample application at the same version? How about with a newer or older version?
CEF 86.0.24 worked correctly and the incorrectly spelled words had a red line in cefclient.
Does the problem reproduce with Google Chrome at the same version? How about with a newer or older version?
I couldn’t test Chrome.
Additional notes :
The text was updated successfully, but these errors were encountered: