RESOLVED FIXED 213867
Crash in +[UIViewController _viewControllerForFullScreenPresentationFromView:] when WKContentView is deallocated
https://bugs.webkit.org/show_bug.cgi?id=213867
Summary Crash in +[UIViewController _viewControllerForFullScreenPresentationFromView:...
Austin
Reported 2020-07-01 16:02:05 PDT
Crash in +[UIViewController _viewControllerForFullScreenPresentationFromView:] when WKContentView is deallocated
Attachments
Patch (1.82 KB, patch)
2020-07-01 16:02 PDT, Austin
no flags
Patch (2.19 KB, patch)
2020-07-02 09:50 PDT, Austin
no flags
Patch (2.16 KB, patch)
2020-07-02 14:12 PDT, Austin
no flags
Austin
Comment 1 2020-07-01 16:02:48 PDT
Darin Adler
Comment 2 2020-07-01 16:27:03 PDT
Comment on attachment 403326 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=403326&action=review > Source/WebKit/ChangeLog:8 > + No new tests (OOPS!). Can’t land a patch with this line. Need to delete it. > Source/WebKit/ChangeLog:11 > + (-[WKFileUploadPanel dismiss]): Should have a comment here. Even a simple one like "Add a null check." would do. > Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:288 > - [[UIViewController _viewControllerForFullScreenPresentationFromView:_view.getAutoreleased()] dismissViewControllerAnimated:NO completion:nil]; > + UIView *autoreleasedView = _view.getAutoreleased(); > + if (autoreleasedView) > + [[UIViewController _viewControllerForFullScreenPresentationFromView:autoreleasedView] dismissViewControllerAnimated:NO completion:nil]; It’s wasteful and unnecessary to use getAutoreleased here; you didn’t add it, but it was wrong. Should just be get(). Autoreleased is only needed when the value is returned from an Objective-C function, not when it’s passed into one. Also there is no reason for the local variable. Should just be: if (_view) [[UIViewController _viewControllerForFullScreenPresentationFromView:_view.get()] dismissViewControllerAnimated:NO completion:nil];
Austin
Comment 3 2020-07-02 09:50:13 PDT
Darin Adler
Comment 4 2020-07-02 11:26:51 PDT
Comment on attachment 403374 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=403374&action=review > Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:287 > + RetainPtr<WKContentView> view = _view.get(); > + if (view) OK as is. But could write this: if (RetainPtr<WKContentView> view = _view.get()) or this: if (auto view = retainPtr(_view.get()))
Austin
Comment 5 2020-07-02 14:12:16 PDT
EWS
Comment 6 2020-07-02 15:40:29 PDT
EWS
Comment 7 2020-07-02 15:44:04 PDT
Committed r263869: <https://trac.webkit.org/changeset/263869> All reviewed patches have been landed. Closing bug and clearing flags on attachment 403394 [details].
Radar WebKit Bug Importer
Comment 8 2020-07-02 15:45:20 PDT
Note You need to log in before you can comment on or make changes to this bug.