WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 40092
spellcheck does not check pasted text
https://bugs.webkit.org/show_bug.cgi?id=40092
Summary
spellcheck does not check pasted text
Tony Chang
Reported
2010-06-02 17:25:37 PDT
For example, copy "foo baz" into your clipboard and paste it into a bugzilla comment. "foo" doesn't get a red underline because it isn't checked. This is similar to
bug 37050
.
Attachments
A draft implementation (only for discussion)
(16.71 KB, patch)
2010-07-08 03:05 PDT
,
Hironori Bono
no flags
Details
Formatted Diff
Diff
Another draft implementation
(29.23 KB, patch)
2010-07-14 01:19 PDT
,
Hironori Bono
no flags
Details
Formatted Diff
Diff
Draft implementation #2
(29.22 KB, patch)
2010-07-14 01:35 PDT
,
Hironori Bono
no flags
Details
Formatted Diff
Diff
Draft implementation #3
(29.22 KB, patch)
2010-07-14 01:47 PDT
,
Hironori Bono
eric
: review-
Details
Formatted Diff
Diff
Draft implementation #4
(30.45 KB, patch)
2010-07-30 00:27 PDT
,
Hironori Bono
no flags
Details
Formatted Diff
Diff
Draft implementation #5
(31.39 KB, patch)
2010-08-26 23:00 PDT
,
Hironori Bono
no flags
Details
Formatted Diff
Diff
Patch
(52.11 KB, patch)
2010-09-08 02:15 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
sync up to the latest tree
(52.29 KB, patch)
2010-09-08 04:33 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
An attempt to fix build on Loopard
(52.25 KB, patch)
2010-09-08 18:55 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Another attempt to fix build on Loopard
(52.20 KB, patch)
2010-09-08 20:42 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Saved the buildbot delay
(52.36 KB, patch)
2010-09-09 03:39 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
took care of textInput event
(62.27 KB, patch)
2010-10-12 02:36 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Updated to lastest
(62.24 KB, patch)
2010-10-13 01:59 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Fixing Qt WebKit2 build
(62.26 KB, patch)
2010-10-13 04:41 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Patch
(62.61 KB, patch)
2010-10-21 05:36 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Patch
(62.56 KB, patch)
2010-10-21 05:59 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Patch
(76.18 KB, patch)
2010-10-28 04:39 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
trying to make efl bot happy
(76.23 KB, patch)
2010-10-28 04:47 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
resolving conflict
(76.27 KB, patch)
2010-10-28 06:00 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
trying to fix build
(77.81 KB, patch)
2010-10-28 18:40 PDT
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Updated to ToT
(78.02 KB, patch)
2010-11-10 18:03 PST
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Patch
(78.01 KB, patch)
2010-11-16 18:39 PST
,
Hajime Morrita
no flags
Details
Formatted Diff
Diff
Updated to ToT
(77.51 KB, patch)
2010-12-09 01:05 PST
,
Hajime Morrita
ojan
: review+
Details
Formatted Diff
Diff
Show Obsolete
(22)
View All
Add attachment
proposed patch, testcase, etc.
Alexey Proskuryakov
Comment 1
2010-06-03 13:41:58 PDT
Interestingly, TextEdit on Mac OS X 10.5 has similar behavior - but that's not the case on 10.6 for me.
Hironori Bono
Comment 2
2010-07-08 03:05:19 PDT
Created
attachment 60861
[details]
A draft implementation (only for discussion) Greetings, I have quickly implemented an asynchronous spellchecker which uses [NSSpellChecker requestCheckingOfString:] so we can check the spellings (and grammar) of pasted text in the background on 10.6. Unfortunately, this change needs xcode 3.2 to compile it because it depends on GCD (Grand Central Dispatch). Even though this change does not include layout tests and is not ready for review, it may be good for starting a discussion to solve this issue. (I'm writing a change for <
https://bugs.webkit.org/show_bug.cgi?id=41832
> to write a layout test for this issue.) Regards, Hironori Bono
Hironori Bono
Comment 3
2010-07-14 01:19:49 PDT
Created
attachment 61480
[details]
Another draft implementation Greetings, Even though nobody gave me any comments to my previous one, I have added a layout test to start a review process. Is it possible to review this change? Regards, Hironori Bono
WebKit Review Bot
Comment 4
2010-07-14 01:21:22 PDT
Attachment 61480
[details]
did not pass style-queue: Failed to run "['WebKitTools/Scripts/check-webkit-style']" exit_code: 1 WebCore/editing/Editor.cpp:1196: Use 0 instead of NULL. [readability/null] [5] WebKit/mac/WebView/WebFrame.mm:1622: Line contains tab character. [whitespace/tab] [5] Total errors found: 2 in 19 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 5
2010-07-14 01:29:09 PDT
Attachment 61480
[details]
did not build on qt: Build output:
http://webkit-commit-queue.appspot.com/results/3528128
Hironori Bono
Comment 6
2010-07-14 01:35:02 PDT
Created
attachment 61485
[details]
Draft implementation #2 Sorry, my previous change causes a build break on GTK. Regards, Hironori Bono
WebKit Review Bot
Comment 7
2010-07-14 01:36:51 PDT
Attachment 61485
[details]
did not pass style-queue: Failed to run "['WebKitTools/Scripts/check-webkit-style']" exit_code: 1 WebCore/editing/Editor.cpp:1198: Use 0 instead of NULL. [readability/null] [5] WebKit/mac/WebView/WebFrame.mm:1622: Line contains tab character. [whitespace/tab] [5] Total errors found: 2 in 19 files If any of these errors are false positives, please file a bug against check-webkit-style.
Hironori Bono
Comment 8
2010-07-14 01:47:59 PDT
Created
attachment 61488
[details]
Draft implementation #3 Sorry for my annoying updates. I have fixed style issues in my previous change. Regards, Hironori Bono
WebKit Review Bot
Comment 9
2010-07-14 01:57:04 PDT
Attachment 61480
[details]
did not build on chromium: Build output:
http://webkit-commit-queue.appspot.com/results/3533064
WebKit Review Bot
Comment 10
2010-07-14 02:00:11 PDT
Attachment 61480
[details]
did not build on gtk: Build output:
http://webkit-commit-queue.appspot.com/results/3545048
Eric Seidel (no email)
Comment 11
2010-07-23 09:33:16 PDT
IIRC Doug did the recent spell-checking work in WebKit and might want to see this.
Douglas Davidson
Comment 12
2010-07-23 09:38:53 PDT
Yes, I'm definitely interested in looking at this. Unfortunately I will not be available until 8/13, but I would like to see an asynchronous implementation. Jia Pu is also working in this area.
Eric Seidel (no email)
Comment 13
2010-07-23 09:45:00 PDT
Comment on
attachment 61488
[details]
Draft implementation #3 WebCore/editing/Editor.cpp:1172 + String text; I would have put this "get me the text I need to process" block in its own function to make this one simpler. WebCore/editing/Editor.cpp:1187 + Node* Editor::getSpellingNode(Node* node) We don't use get in names in WebKit. WebCore/editing/Editor.cpp:1236 + m_spellingNode = 0; This could be a set or reset function given how you always set these both at once. Maybe these need to be a struct held by the object? WebCore/editing/Editor.cpp:1207 + if (node) { Early return is almost always cleaner. WebCore/editing/Editor.cpp:1220 + Position end(start); We have a PositionIterator for this sort of thing. WebCore/editing/Editor.cpp:1230 + String source(m_spellingText.substring(results[i].location, results[i].length)); Personally I tend to use = over assignment constructors myself. WebCore/editing/Editor.h:70 + : type(DocumentMarker::Spelling), location(0), length(0) { } Each assignment gets its own line. WebCore/editing/Editor.h:350 + Node* getSpellingNode(Node*); Again, no "get" functions in WebKit. WebKit/mac/ChangeLog:31 + 2010-07-14 Hironori Bono <
hbono@chromium.org
> Double ChangeLog entry! WebKit/mac/WebCoreSupport/WebEditorClient.mm:827 + #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 && NS_BLOCKS_AVAILABLE NS_BLOCKS_AVAILABLE? WebKit/mac/WebCoreSupport/WebEditorClient.mm:839 + [[NSSpellChecker sharedSpellChecker] requestCheckingOfString:text range:NSMakeRange(0, text.length()) types:NSTextCheckingAllSystemTypes options:0 inSpellDocumentWithTag:0 completionHandler:^(NSInteger sequenceNumber, NSArray *results, NSOrthography *orthography, NSInteger wordCount) { Woh. Please split this into multiple lines using local variables. WebKit/mac/WebView/WebFrame.mm:1596 + switch ([[results objectAtIndex:i] resultType]) { I would have put this switch into an inline function instead of inlining it here to make this loop easier to read. WebKit/mac/WebView/WebFrame.mm:1614 + static Node* getSpellingNode(Frame* coreFrame) No "get" in function names.
Hironori Bono
Comment 14
2010-07-30 00:27:11 PDT
Created
attachment 63034
[details]
Draft implementation #4 Greetings Eric, Thank you for your review and comments. I have added the AsyncSpellCheckerController class to encapsulate some spellchecker-specific code and apply your comments. (I may miss some of them, though.) (In reply to
comment #13
)
> WebKit/mac/WebCoreSupport/WebEditorClient.mm:827 > + #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 && NS_BLOCKS_AVAILABLE > NS_BLOCKS_AVAILABLE?
This define means we can use GCD (Grand Central Dispatch), which is required by [NSSpellChecker requestCheckingOfString:]. (Even though GCD is enabled by default on 10.6, we can disable it. So it may be safer to add this define in my code.) It is definitely helpful to review the updated one and give me your comments? Regards, Hironori Bono
Hironori Bono
Comment 15
2010-08-22 22:17:51 PDT
ping?
Hironori Bono
Comment 16
2010-08-26 23:00:06 PDT
Created
attachment 65679
[details]
Draft implementation #5 Greetings, Even though nobody reviewed my pervious change, I would like to update my change because my previous change does not compile any longer. Would it be possible to give me your comments? Regards, Hironori Bono
Adam Barth
Comment 17
2010-08-31 19:50:21 PDT
Comment on
attachment 65679
[details]
Draft implementation #5 View in context:
https://bugs.webkit.org/attachment.cgi?id=65679&action=prettypatch
> WebCore/editing/Editor.cpp:321 > +#if PLATFORM(MAC) > + requestCheckingOfFocusedNodeText(); > +#endif
I don't understand why this code has so many #if defs. Should this code be in a Mac-specific file?
Hironori Bono
Comment 18
2010-08-31 20:50:56 PDT
(In reply to
comment #17
)
> > WebCore/editing/Editor.cpp:321 > > +#if PLATFORM(MAC) > > + requestCheckingOfFocusedNodeText(); > > +#endif > I don't understand why this code has so many #if defs. Should this code be in a Mac-specific file?
Thank you for your comment. In fact, most code under "WebCore" does not need #if defs. Nevertheless, I enclosed them with #if and #endif since this code needs special functions like [requestCheckingOfString:] or threads. Therefore, I'm wondering if other platforms except Mac (and Chromium) would like to use this code. (The Chromium implementation is a little more complicated: it consists of a WebKit change and a Chromium change. So, I would like to send them with another change.) Regards,
Hironori Bono
Comment 19
2010-09-03 01:12:16 PDT
(In reply to
comment #17
)
> I don't understand why this code has so many #if defs. Should this code be in a Mac-specific file?
By the way, I'm a little wondering about the intention of your comment. Would you like to fix this issue only by changing Mac-specific files, to fix this issue without using Mac-specific functions, or something else? Regards,
Darin Adler
Comment 20
2010-09-03 09:56:42 PDT
Comment on
attachment 65679
[details]
Draft implementation #5 Our usual approach would be to put in fewer ifdefs, and compile in more of the infrastructure for the feature even on platforms that don't have it yet. Editor.h should not have all those PLATFORM(MAC) #if statements. It’s also not good to add new classes to existing files. We probably want to add new source files.
Hironori Bono
Comment 21
2010-09-07 20:04:41 PDT
Comment on
attachment 65679
[details]
Draft implementation #5 Greetings, I would like to cancel this review request since Morita-san kindly takes over this bug. Regards,
Hajime Morrita
Comment 22
2010-09-08 02:15:30 PDT
Created
attachment 66859
[details]
Patch
Hajime Morrita
Comment 23
2010-09-08 02:18:01 PDT
Hi Darin, thank you for reviewing! As Bono-san mentioned, I'm taking this patch over him.
> > Editor.h should not have all those PLATFORM(MAC) #if statements. > > It’s also not good to add new classes to existing files. We probably want to add new source files.
Updated patch introduce SpellChecker class, which defined in separated files. The patch also attempt to minimize ifdefs. Could you take a look at it?
Hajime Morrita
Comment 24
2010-09-08 04:33:44 PDT
Created
attachment 66879
[details]
sync up to the latest tree
Eric Seidel (no email)
Comment 25
2010-09-08 05:00:25 PDT
Attachment 66879
[details]
did not build on mac: Build output:
http://queues.webkit.org/results/3966293
Hajime Morrita
Comment 26
2010-09-08 18:55:25 PDT
Created
attachment 66988
[details]
An attempt to fix build on Loopard
Eric Seidel (no email)
Comment 27
2010-09-08 19:22:51 PDT
Attachment 66988
[details]
did not build on mac: Build output:
http://queues.webkit.org/results/3930286
Hajime Morrita
Comment 28
2010-09-08 20:42:28 PDT
Created
attachment 66994
[details]
Another attempt to fix build on Loopard
Hajime Morrita
Comment 29
2010-09-09 03:39:35 PDT
Created
attachment 67016
[details]
Saved the buildbot delay
Hajime Morrita
Comment 30
2010-09-09 18:30:07 PDT
Long queue of windows bot prevents patches with new file from built successfully. I'd like to leave it to avoid making the queue longer.
Hajime Morrita
Comment 31
2010-10-12 02:36:16 PDT
Created
attachment 70518
[details]
took care of textInput event
Hajime Morrita
Comment 32
2010-10-13 01:59:41 PDT
Created
attachment 70592
[details]
Updated to lastest
Early Warning System Bot
Comment 33
2010-10-13 02:15:51 PDT
Attachment 70592
[details]
did not build on qt: Build output:
http://queues.webkit.org/results/4406004
Hajime Morrita
Comment 34
2010-10-13 04:41:19 PDT
Created
attachment 70599
[details]
Fixing Qt WebKit2 build
Eric Seidel (no email)
Comment 35
2010-10-20 14:04:27 PDT
Comment on
attachment 70599
[details]
Fixing Qt WebKit2 build View in context:
https://bugs.webkit.org/attachment.cgi?id=70599&action=review
This generally appears sane. It would be nice if Doug or one of the Apple folks could comment on the Obj-C. r- for the nits.
> WebCore/dom/DocumentMarkerController.h:77 > +void showDocumentMarkers(const WebCore::DocumentMarkerController*);
Why is this outside of WebCore?
> WebCore/editing/Editor.cpp:3663 > +static Node* findFirstMarkable(Node* node)
We didn't have this logic before?
> WebCore/editing/SpellChecker.h:35 > +struct SpellCheckingResult {
Structs rarely stay structs for long...
> WebCore/editing/SpellChecker.h:48 > +class SpellChecker {
Seems this should inherit from NonCopyable.
> WebCore/editing/SpellChecker.h:53 > + bool isAsynchronousEnabled() const;
is "Enabled" needed here?
> WebCore/editing/SpellChecker.h:54 > + bool isAsynchronousAvailableFor(Node*) const;
canCheckAsynchronously(node)? I'm not sure what this function does so my naming suggestions may make little sense.
> WebCore/editing/SpellChecker.h:57 > + bool isCheckeable(Node* node) const;
isCheckable? Also, "node" is not needed here.
> WebKit/mac/WebCoreSupport/WebEditorClient.mm:954 > + RetainPtr<NSArray> _results;
Seems a bit odd, but I guess this is Objective c++? Are destructors called for obj-c++? Isn't there a new fancy obj-c2 way to do autoretain?
> WebKit/mac/WebCoreSupport/WebEditorClient.mm:978 > +- (WTF::Vector<WebCore::SpellCheckingResult>) _coreResults
Extra space "lt>) _coreR"
> WebKit/mac/WebCoreSupport/WebEditorClient.mm:995 > + for (size_t i = 0; i < [results count]; ++i) { > + NSTextCheckingType type = [[results objectAtIndex:i] resultType]; > + if (type & NSTextCheckingTypeSpelling) > + coreResults[i].type = DocumentMarker::Spelling; > + else if (type & NSTextCheckingTypeGrammar) > + coreResults[i].type = DocumentMarker::Grammar; > + else > + coreResults[i].type = DocumentMarker::AllMarkers; > + > + NSRange range = [[results objectAtIndex:i] range]; > + coreResults[i].location = range.location; > + coreResults[i].length = range.length; > + }
This feels like a function passed to a map. Sadly I don't think obj-c has list comprehensions.
Douglas Davidson
Comment 36
2010-10-20 14:07:23 PDT
We'll need to look at this and see how it meshes with what we're doing.
Darin Adler
Comment 37
2010-10-20 14:09:49 PDT
(In reply to
comment #35
)
> > WebKit/mac/WebCoreSupport/WebEditorClient.mm:954 > > + RetainPtr<NSArray> _results; > > Seems a bit odd, but I guess this is Objective c++? Are destructors called for obj-c++?
Yes.
> Isn't there a new fancy obj-c2 way to do autoretain?
The fancy new Objective-C 2 way to do it would be to have property access handle the retain/release or to use garbage collection. Using a RetainPtr is the right way to do it in WebKit.
Hajime Morrita
Comment 38
2010-10-21 05:36:42 PDT
Created
attachment 71426
[details]
Patch
Hajime Morrita
Comment 39
2010-10-21 05:59:41 PDT
Created
attachment 71427
[details]
Patch
Hajime Morrita
Comment 40
2010-10-21 06:00:24 PDT
Eric and Everybody, thanks for giving a review! I update the patch to address Eric's point.
> > WebCore/dom/DocumentMarkerController.h:77 > > +void showDocumentMarkers(const WebCore::DocumentMarkerController*); > > Why is this outside of WebCore?
It follows RenderObject.cpp:showRenderTree() style. The function is designed to be called from gdb, so be in global namespace matters.
> > > WebCore/editing/Editor.cpp:3663 > > +static Node* findFirstMarkable(Node* node) > > We didn't have this logic before?
Unfortunately, no. Other part of spellchecking is immediately done once It finds a candidate to mark. So they need no extra traversing. But we need it because we mark them later.
> > > WebCore/editing/SpellChecker.h:35 > > +struct SpellCheckingResult { > > Structs rarely stay structs for long...
Agreed. Made it to a class.
> > > WebCore/editing/SpellChecker.h:48 > > +class SpellChecker { > > Seems this should inherit from NonCopyable.
Done.
> > > WebCore/editing/SpellChecker.h:53 > > + bool isAsynchronousEnabled() const; > > is "Enabled" needed here?
I think so. It is asking EditorClient to the setting.
> > > WebCore/editing/SpellChecker.h:54 > > + bool isAsynchronousAvailableFor(Node*) const; > > canCheckAsynchronously(node)? I'm not sure what this function does so my naming suggestions may make little sense.
Done. I agree that brief name is preferable.
> > > WebCore/editing/SpellChecker.h:57 > > + bool isCheckeable(Node* node) const; > > isCheckable? Also, "node" is not needed here.
Done.
> > > WebKit/mac/WebCoreSupport/WebEditorClient.mm:954 > > + RetainPtr<NSArray> _results; > > Seems a bit odd, but I guess this is Objective c++? Are destructors called for obj-c++? Isn't there a new fancy obj-c2 way to do autoretain?
It looks OK, as Darin mentioned.
> > > WebKit/mac/WebCoreSupport/WebEditorClient.mm:978 > > +- (WTF::Vector<WebCore::SpellCheckingResult>) _coreResults > > Extra space "lt>) _coreR"
Done.
> > > WebKit/mac/WebCoreSupport/WebEditorClient.mm:995 > > + for (size_t i = 0; i < [results count]; ++i) { > > + NSTextCheckingType type = [[results objectAtIndex:i] resultType]; > > + if (type & NSTextCheckingTypeSpelling) > > + coreResults[i].type = DocumentMarker::Spelling; > > + else if (type & NSTextCheckingTypeGrammar) > > + coreResults[i].type = DocumentMarker::Grammar; > > + else > > + coreResults[i].type = DocumentMarker::AllMarkers; > > + > > + NSRange range = [[results objectAtIndex:i] range]; > > + coreResults[i].location = range.location; > > + coreResults[i].length = range.length; > > + } > > This feels like a function passed to a map. Sadly I don't think obj-c has list comprehensions.
Agreed but there is no map() from NSArray to WTF::Vector. So I factored out the logic to make it more map()-like feeling.
Hajime Morrita
Comment 41
2010-10-21 06:02:39 PDT
(In reply to
comment #36
)
> We'll need to look at this and see how it meshes with what we're doing.
Hi Davidson! Please take a look. Any feedback are appreciated. I just this is not so large change. large chunks of the code is just a boilerplate.
Jia Pu
Comment 42
2010-10-27 13:55:34 PDT
(In reply to
comment #41
)
> (In reply to
comment #36
) > > We'll need to look at this and see how it meshes with what we're doing. > Hi Davidson! > Please take a look. Any feedback are appreciated. > I just this is not so large change. large chunks of the code is just a boilerplate.
Since we don't do autocorrection for pasted text, this patch doesn't seem interfere with our recent work on autocorrection. But I'd like to apply to apply this patch on 10.7, see if everything work together. I will let you know. My other concern is racing condition when multiple threads call [NSSpellChecker requestCheckingOfString:]. Is it possible?
Hajime Morrita
Comment 43
2010-10-27 18:53:47 PDT
Hi Jia, thank you for taking a look!
> > Since we don't do autocorrection for pasted text, this patch doesn't seem interfere with our recent work on autocorrection. But I'd like to apply to apply this patch on 10.7, see if everything work together. I will let you know.
Hmm. on the other hand, we need this for chromium (with separate EditorClient implementation)... How about this? : To land the patch, with the async check settings false. And doing the experiments before landing it true (at 10.7 release?). In this way, Chromium port can enable the feature with keeping other ports' behavior unchanged at this time. (I hope every ports to enable the flag at a certain timing. But it might need more experiments as you mentioned.) In my feeling, what really matters here is introducing the async spellcheck API. Without it, we cannot run spellchecking against larger chunks of text like copy-paste, dynamic @spellcheck attribute change, etc. And for Chromium (sorry for mentioning a specific port again...), A grammar check could be done by a separate process so async API is unavoidable.
> > My other concern is racing condition when multiple threads call [NSSpellChecker requestCheckingOfString:]. Is it possible?
Since WebKit is single-threaded, [NSSpellChecker requestCheckingOfString:] is only called from the main thread. Although NSSpellChecker looks to run the actual check logic on another (worker) thread, it is managed by NSSpellChecker. So we wouldn't care about that. A tricky part is that the passed completionHandler is called at the worker thread. To void a race, We go back to the main thread using [NSRunLoop performSelector:]. We touch WebCore objects only on the main thread by doing so.
Jia Pu
Comment 44
2010-10-27 19:05:14 PDT
(In reply to
comment #43
)
> Hi Jia, thank you for taking a look! > > > > > Since we don't do autocorrection for pasted text, this patch doesn't seem interfere with our recent work on autocorrection. But I'd like to apply to apply this patch on 10.7, see if everything work together. I will let you know. > > Hmm. on the other hand, we need this for chromium (with separate EditorClient implementation)... > How about this? : > To land the patch, with the async check settings false.
I just tried the patch. It seems play well with autocorrection on Mac. This is likely a desirable behavior on Mac as well, but I think we should land it with async set to false for now, just to be safe.
> In my feeling, what really matters here is introducing the async spellcheck API. > Without it, we cannot run spellchecking against larger chunks of text > like copy-paste, dynamic @spellcheck attribute change, etc.
Agree.
Hajime Morrita
Comment 45
2010-10-27 19:28:26 PDT
Hi Jia,
> I just tried the patch. It seems play well with autocorrection on Mac. This is likely a desirable behavior on Mac as well, but I think we should land it with async set to false for now, just to be safe.
Thank you for trying this! So I'll disable the default settings and add LayoutTestController method to make it enabled.
Hajime Morrita
Comment 46
2010-10-28 04:39:09 PDT
Created
attachment 72168
[details]
Patch
Hajime Morrita
Comment 47
2010-10-28 04:42:03 PDT
Updated the patch. It - introduced Settings::m_asynchronousSpellCheckingEnabled, false as default. - added a LayoutTestController API to enable it. - removed EditorClient::isAsynchronousSpellCheckingEnabled(), replaced by settings.
Hajime Morrita
Comment 48
2010-10-28 04:47:27 PDT
Created
attachment 72170
[details]
trying to make efl bot happy
Hajime Morrita
Comment 49
2010-10-28 06:00:18 PDT
Created
attachment 72177
[details]
resolving conflict
Early Warning System Bot
Comment 50
2010-10-28 06:48:47 PDT
Attachment 72177
[details]
did not build on qt: Build output:
http://queues.webkit.org/results/4848049
Eric Seidel (no email)
Comment 51
2010-10-28 09:14:37 PDT
Attachment 72177
[details]
did not build on chromium: Build output:
http://queues.webkit.org/results/4836056
WebKit Review Bot
Comment 52
2010-10-28 16:49:31 PDT
Attachment 72177
[details]
did not build on chromium: Build output:
http://queues.webkit.org/results/4873014
Hajime Morrita
Comment 53
2010-10-28 18:40:35 PDT
Created
attachment 72283
[details]
trying to fix build
Hajime Morrita
Comment 54
2010-11-01 15:27:38 PDT
Could anyone take a look ? I think we got a consensus and the patch is ready to review. Thanks in advance.
Hajime Morrita
Comment 55
2010-11-10 18:03:03 PST
Created
attachment 73564
[details]
Updated to ToT
Hajime Morrita
Comment 56
2010-11-16 18:39:49 PST
Created
attachment 74074
[details]
Patch
Hajime Morrita
Comment 57
2010-12-09 01:05:11 PST
Created
attachment 76023
[details]
Updated to ToT
Hajime Morrita
Comment 58
2010-12-09 17:33:12 PST
Ojan, thank you reviewing! Darin, Alexey, I'll land this if there is no objection.
Hajime Morrita
Comment 59
2010-12-12 22:07:04 PST
Committed
r73886
: <
http://trac.webkit.org/changeset/73886
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug