Bug 213061

Summary: [iOS] editing/pasteboard/dom-paste tests consistently time out
Product: WebKit Reporter: Wenson Hsieh <wenson_hsieh>
Component: WebKit2Assignee: Wenson Hsieh <wenson_hsieh>
Status: RESOLVED FIXED    
Severity: Normal CC: bdakin, darin, megan_gardner, thorton, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Wenson Hsieh 2020-06-10 17:18:00 PDT
<rdar://problem/64211161>
Comment 1 Wenson Hsieh 2020-06-10 17:39:30 PDT
Created attachment 401608 [details]
Patch
Comment 2 Darin Adler 2020-06-10 17:42:59 PDT
Comment on attachment 401608 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=401608&action=review

> Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4252
> +        completionHandler([WKAutocorrectionContext autocorrectionContextWithWebContext:_lastAutocorrectionContext]);

Is it ever OK to do this twice? If not, then can we std::exchange to clear out _lastAutocorrectionContext here?
Comment 3 Wenson Hsieh 2020-06-10 17:45:59 PDT
Comment on attachment 401608 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=401608&action=review

Thanks for the review!

>> Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4252
>> +        completionHandler([WKAutocorrectionContext autocorrectionContextWithWebContext:_lastAutocorrectionContext]);
> 
> Is it ever OK to do this twice? If not, then can we std::exchange to clear out _lastAutocorrectionContext here?

It’s /theoretically/ okay to do this twice (UIKit could potentially call into this twice in a row while handling a DOM paste request), so I would prefer to not std::exchange it with { }.

(That said, I don’t think multiple calls would happen often in practice, if at all)
Comment 4 Darin Adler 2020-06-10 17:54:47 PDT
Comment on attachment 401608 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=401608&action=review

>>> Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4252
>>> +        completionHandler([WKAutocorrectionContext autocorrectionContextWithWebContext:_lastAutocorrectionContext]);
>> 
>> Is it ever OK to do this twice? If not, then can we std::exchange to clear out _lastAutocorrectionContext here?
> 
> It’s /theoretically/ okay to do this twice (UIKit could potentially call into this twice in a row while handling a DOM paste request), so I would prefer to not std::exchange it with { }.
> 
> (That said, I don’t think multiple calls would happen often in practice, if at all)

What was worried about was keeping _lastAutocorrectionContext around indefinitely. But I guess what I missed is that the code above is in a method named cleanUpInteraction.
Comment 5 EWS 2020-06-10 19:40:47 PDT
Committed r262891: <https://trac.webkit.org/changeset/262891>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401608 [details].