[chromium-dev] Re: Design Doc: Adaptive spell checking for multilingual users
Thank you Brian and Paul for your comments and insights. Yes, the plan is to expand to multi-spellcheck simultaneously when the user types in some other language other than the default one, and avoid changing on the fly too often. Paul, I have this feature on hold right now to discuss more issues, and also concentrate on spell check bugs, which need to be squashed before more features (like this one) are crammed in. I have been noticing that you have made some good contributions to spell checking on OS X. If you want, and have time, feel free to grab some spell check bugs and fix them (see http://code.google.com/p/chromium/issues/list?can=2q=sidchat%20status:Assigned%20owner:sidc...@chromium.orgsort=-modifiedcolspec=ID%20Stars%20Pri%20Area%20Type%20Status%20Summary%20Modified%20Owner). Once we have the bugs in control, I will expand the functionality, and you are welcome to port to OS X as appropriate. Thanks, Sid On Jul 22, 10:48 pm, Brian Rakowski br...@chromium.org wrote: I fear that this is treading into territory where the software is trying to be too smart. Most users will type in one language. Many users will type in two languages. Few users will type in more than two languages. A simpler design is simply to notice that the user seems to be multilingual and offer to expand spell check to the additional language(s). I'm concerned that frequent on-the-fly switches will result in incorrect flagging of misspelled words and will irritate users. -Brian On Mon, Jul 20, 2009 at 2:08 PM, Paul Wicks pwick...@gmail.com wrote: Another thing to consider is that something sort of like this is already supported by the OS X spellchecker through the Multilingual language setting. There is currently no way to switch to Multilingual in Chromium on OS X, but it wouldn't be that hard to enable that and it really is something that should be enabled if we want to support the native spelling correction panel on OS X (something which I have about 2/3's done), since the spelling panel shows Multilingual as a language option even if the context menu doesn't. I've done a little bit of experimenting and Multilingual seems to work pretty well in Chromium if you can enable it. One thing that might be a problem is that as far as I can tell, the Multilingual setting just checks all dictionaries for a word, so there could be problems there since a misspelling in the language being used might not be marked if it is a word in another language. I don't think I can say whether chromium is willing to accept Multilingual as the solution for this on OS X. If it is, then what you propose needs to be done in such a way that it doesn't touch the way OS X does this. If this is the solution for all platforms, OS X included, then we need to figure out a way around the spelling panel problem (no matter what, the spelling panel provided by NSSpellChecker will show Multilingual as an option). Whatever is decided, this definitely looks good for the other platforms. If this does go forward, I could probably help out, if you need a hand. -Paul Wicks On Mon, Jul 20, 2009 at 1:00 PM, sidchat sidc...@chromium.org wrote: A new feature to add to the SpellChecker would be its ability to adapt to the user's language of choice when typing in a text box. A design doc can be found at: http://sites.google.com/a/chromium.org/dev/developers/design-document... It will be great if you could go over it and provide suggestions/ improvements, before I move ahead and start implementing this feature as an experiment. -Sid --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Design Doc: Adaptive spell checking for multilingual users
A new feature to add to the SpellChecker would be its ability to adapt to the user's language of choice when typing in a text box. A design doc can be found at: http://sites.google.com/a/chromium.org/dev/developers/design-documents/advancedspellchecker It will be great if you could go over it and provide suggestions/ improvements, before I move ahead and start implementing this feature as an experiment. -Sid --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Changing the language of the spellchecker?
Yes, Evan is right. So, when you change a spellcheck language in the Options menu (languages_page_view.cc), it changes a pref member (prefs::kSpellCheckDictionary) value. This change is caught by the Profile (ProfileImpl::Observe in profile.cc), which (re)initializes the spellchecker with the new language. The pref member can also be changed from the right-click context menu, as Evan pointed out (see RenderViewContextMenu::ExecuteItemCommand() in render_view_context_menu.cc). So it seems implementing languages Options menu and context menu items items for spellchecker might make this whole thing work automatically. -Sid On Jun 17, 4:02 pm, Evan Martin e...@chromium.org wrote: Just a guess, but perhaps when you change languages a new Spellchecker object with the new language is constructed. I would expect the language-picking options haven't yet been implemented. You can also switch languages via the right-click menu on a text area, but that may also be unimplemented. It might be worth implementing those as a prereq for your current project. :) On Wed, Jun 17, 2009 at 3:54 PM, pwickspwick...@gmail.com wrote: I'm working on porting the os x spellchecker to chromium and I've run into a question. I'm trying to figure out how the language of the spellchecker is change. The only place that I can see where it is ever specified is in the constructor to Spellchecker. I don't see any other functions/methods that deal with language selection, just with querying the available languages. I was going to try and trace this through in the debugger, but the button on the options pane to change the language is greyed out. Anybody know anything about how this works or can point me in the right direction? (Sid, is this what you were talking about when you mentioned that there was something unimplemented?) Thanks, --Paul Wicks --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Adding Mac OS X Spellchecker to Chromium
Use of OS X spellchecker integration in our multi process model probably should be the primary goal here to begin with. If that is achieved, the other stuff (auto spell correct, automatically setting the dictionary etc) should not be too problematic. Note that the actual replacement for auto-correct is done in WebCore (WebKit) - Chrome just provides the decision as to whether to auto- correct it or not. So, as you pointed out, our method SpellcheckWord, instead of using Hunspell, can ask OS X SpellCheck API to provide the decision. The multi-process model is automatically taken care of here from existing design, since any query for spellchecking comes to the spellchecker in the browser process - and the browser process can talk to the OS X API I guess. Same goes for generic spell checking. There is some integration with Chrome UI where one can set the spellcheck dictionary languages, enable/disable spellchecking/auto- correct. Again, all these decisions eventually seep down to the spellchecker residing in the browser process, and as far as you are concerned, the SpellCheckWord and GetAutoCorrectWord methods should continue asking OS X for the spelling decisions, now based on the new language, or not, depending on the setting. If OS X does not support some languages, this can be dealt with easily. You can make a list of languages that OS X supports, and based on that, either ask OS X spellcheck API, or simply initialize Hunspell in SpellChecker when the language is changed. The Profile, which initializes spellchecker, can be blissfully unaware of this, as it does not care how you are providing the spellchecking as long as the spellchecker object exists, and is providing decisions. I am not exactly sure how automatically setting dictionary language will work out, as it has not been implemented yet. But you can get to that later - my thought is, it should be on similar lines, where you have to only worry about spellchecker.cc. -Sid On Jun 10, 8:29 pm, Ben Goodger (Google) b...@chromium.org wrote: +Sid I think it's worth understanding the API requirements of the new features. I know nothing about Spellchecking though. Maybe Sid can add more? -Ben On Wed, Jun 10, 2009 at 8:14 PM, Nick Baumnickb...@chromium.org wrote: In particular, Ben is referring to the automatic spelling correction that Sid is implementing. Off the top of my head, I can think of a few different ways this could fit in: We can implement Sid's auto-correction on top of native spellcheck, just like today it's implemented on top of Hunspell. OS X will provide similar (though not identical) functionality, and we deem this good enough. We decide native integration is more important than feature parity. As we add more smarts to the spellchecker, we'd need to keep re-evaluating. Thoughts? -Nick On Wed, Jun 10, 2009 at 2:38 PM, Ben Goodger (Google) b...@chromium.org wrote: For whoever is coordinating this effort, please sync up with Nick Baum on spell checking. He has some additional considerations in mind we should make sure we understand what's possible here. -Ben On Wed, Jun 10, 2009 at 2:36 PM, Mike Pinkertonpinker...@chromium.org wrote: I think we're all on the same page. I pushed Paul to consider having both in his initial design since I forgot about the ability to add additional dictionaries. I'm glad others are in support of that as the way to get additional language support as opposed to trying to shim both implementations together. I agree with Jeremy, let's focus on the OSX spellchecker and ignore hunspell for now. Additionally, let's aim for the OS X spelling dialog if we can do it, regardless of whether or not win/linux can do it. On Wed, Jun 10, 2009 at 11:59 AM, Thomas Van Lententhoma...@chromium.org wrote: On Wed, Jun 10, 2009 at 2:38 PM, p_W paulwoolcoc...@gmail.com wrote: Forgive my (possibly) stupid concern here, but a few months ago there was some talk about this, and about how integrating with the OS's spellchecker was the preferred route as it allowed users to use their dictionary customizations over all their applications. Here is link to the discussion: http://groups.google.com/group/chromium-dev/browse_thread/thread/3183... Any thoughts about this? Uh, that's what this thread is about, his project is to switch to using the os one instead. And Jeremy was commenting that he doesn't need to support both, just switch to the native. Or am I reading this differently? TVL On Jun 9, 9:00 pm, Jeremy Moskovich jer...@chromium.org wrote: A couple more things: * I think ultimately we should support the grammar checker, but at first just getting spellchecking to work would be great! * +1 for supporting the Cocoa gui for spellchecking paragraphs, see the 2nd paragraph bellow for more thoughts on this. Matching Linux Windows functionality is a non-goal
[chromium-dev] Re: An Introduction and a question
The Editor in WebCore (Editor.cpp), which is a part of WebKit, asks for the spelling of a word in line 1474. The spelling-check is provided by us (Chromium) through the glue - in particular, editor_client_impl.cc in method checkSpellingOfString. Now, this guy uses a WebViewDelegate object to send message through the IPC to the spellchecker residing in the browser process through RenderView::SpellCheck (render_view.cc). This message is picked by resource_message_filter.cc, which uses the function OnSpellCheck to now formally ask the spellchecker object to tell it if the spelling is right or wrong. As you pointed out, this has to be done in the IO thread. Once it gets the answer, it sends a message back through IPC - WebCore gets the answer, the editor is happy, and now you see an underline. This is the basic path, but you are most welcome to ping me, or drop by my desk for questions/ideas. Also, Brett (brettw) is the guru of this architecture, so you should definitely pass by him too for ideas. -Sid On May 30, 9:55 am, Evan Martin e...@chromium.org wrote: From a quick glance, it appears that grepping the code for all instances of the word spell turns up all the related files with only a couple of unrelated bits. In particular, for IPC stuff the files all have render in their name: $ git grep -l spell -- '*render*.cc' '*render*.h' chrome/browser/renderer_host/browser_render_process_host.cc chrome/browser/renderer_host/render_process_host.h chrome/browser/renderer_host/resource_message_filter.cc chrome/browser/renderer_host/resource_message_filter.h chrome/browser/tab_contents/render_view_context_menu.cc chrome/common/render_messages.h chrome/common/render_messages_internal.h chrome/renderer/render_view.cc chrome/renderer/render_view.h On Thu, May 28, 2009 at 1:55 PM, Paul Wicks pwick...@gmail.com wrote: Hello Chromium Developers! My name is Paul Wicks and I am one of the students working for this project as part of Google's Summer of Code (Mike Pinkerton is my mentor). Specifically, I am working on implementing support for the OSX dictionary/spellchecker in Chromium. There is a blog of my progress at http://pwicks-bloggingchrome.blogspot.com/,although there really isn't any content at the moment. Just thought I'd introduce myself. Well, know that I have your attention, I do have one question. I've been looking at the spellchecker code to try and figure out how it works/what I need to do to make it work in the OSX port. I've looked at spellchecker.cc and its associated files in /chrome/browser/ and everything there makes sense more or less, but I'm having a little trouble figuring out where calls to the spellchecker come from. I'd guess this is something that would happen over IPC, given that the spellchecker lives on the I/O thread and the content of tabs will live in their own processes. If anyone could point me in the right direction to understand how this whole process works, that would be great. -Paul Wicks --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Auto Spelling Correction
*Hasn't* the dog ate his food. Yes - this is due to the bug http://code.google.com/p/chromium/issues/detail?id=11897 - it seems that bug has reappeared. -Sid -- Mohamed Mansour On Fri, May 29, 2009 at 7:02 PM, Mohamed Mansour m0.interact...@gmail.comwrote: Okay I found a couple of errors. Been testing it since you guys have committed it. You cannot do contractions. Try typing has not, will not, does not, etc. You can't do it. Try making the first letter capitalized. -- Mohamed Mansour On Fri, May 29, 2009 at 2:09 PM, Mohamed Mansour m0.interact...@gmail.com wrote: I hope it isn't a bug. Because people might need them :) Just type 'believe', and use your arrow keys to goto the 'i', and delete that. And add the 'i' after the 'e' . And you will properly have the erroneous word. -- Mohamed Mansour On Fri, May 29, 2009 at 12:50 PM, Nick Baum nickb...@chromium.orgwrote: Wait wait, how did you manage to write those?? :) -Nick On Thu, May 28, 2009 at 6:12 PM, Mohamed Mansour m0.interact...@gmail.com wrote: Great job! I now can't be embarrassed when I write beleive or recieve :) Thanks :) -- Mohamed Mansour On Thu, May 28, 2009 at 7:25 PM, Nick Baum nickb...@chromium.orgwrote: Great to see this live, Sid! To clarify, we're deliberately not including any UI for now, and we expect this to be somewhat annoying at first. The hope is that you can help us figure out what's annoying about it, and we'll try to improve the algorithm. Once it's more helpful than annoying, we'll add UI to handle exceptions. Give it a try and let us know how it works for you! -Nick On Thu, May 28, 2009 at 3:52 PM, sidchat sidc...@chromium.org wrote: The new dev build (3.0.182.2) now has a command line option to enable auto spell corrections. This feature will correct words which have been typed wrong due to swapping letters once by mistake - a very common example is typing teh instead of the - moer instead of more and so on. There are no UI support for this yet - just the command line enabler '--auto-spell-correct'. Please do take a look at it and tell me issues about it. If we are sure we want this feature, I will go ahead and make this a full blown Chrome feature by adding UI support (disable through context menu and Options menu, Stop auto-correcting this word options etc). -Sid --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---