WebKit Bugzilla
Attachment 368539 Details for
Bug 197404
: Long-standing rare crash under -[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal...]
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-197404-20190429223330.patch (text/plain), 3.25 KB, created by
Tim Horton
on 2019-04-29 22:33:31 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Tim Horton
Created:
2019-04-29 22:33:31 PDT
Size:
3.25 KB
patch
obsolete
>Subversion Revision: 244764 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index b20332c1a574a9ba6d271c9ddf4a7cd48b53b9fb..627c9e4bff077ebfa2e109c5be0d890adb53ac4a 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,20 @@ >+2019-04-29 Tim Horton <timothy_horton@apple.com> >+ >+ Long-standing rare crash under -[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal...] >+ https://bugs.webkit.org/show_bug.cgi?id=197404 >+ <rdar://problem/24589331> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UIProcess/mac/WKImmediateActionController.mm: >+ (-[WKImmediateActionController _updateImmediateActionItem]): >+ (-[WKImmediateActionController menuItem:previewItemAtPoint:]): >+ (-[WKImmediateActionController menuItem:itemFrameForPoint:]): >+ (-[WKImmediateActionController _animationControllerForDataDetectedLink]): >+ Add some null checks; _webHitTestResult can be null if we (somehow) get >+ an immediate action gesture without having previously gotten a >+ mouseDidMoveOverElement from the Web Content process. Cover all our bases. >+ > 2019-04-29 Truitt Savell <tsavell@apple.com> > > Unreviewed, rolling out r244755. >diff --git a/Source/WebKit/UIProcess/mac/WKImmediateActionController.mm b/Source/WebKit/UIProcess/mac/WKImmediateActionController.mm >index 21dcd2fe24361b1ae5cb18634eac0b38a664f4d7..2151662d347a39231d7dab2a09651882053d035f 100644 >--- a/Source/WebKit/UIProcess/mac/WKImmediateActionController.mm >+++ b/Source/WebKit/UIProcess/mac/WKImmediateActionController.mm >@@ -328,6 +328,11 @@ - (void)_updateImmediateActionItem > } > > RefPtr<API::HitTestResult> hitTestResult = [self _webHitTestResult]; >+ if (!hitTestResult) { >+ [self _cancelImmediateAction]; >+ return; >+ } >+ > id customClientAnimationController = _page->immediateActionAnimationControllerForHitTestResult(hitTestResult, _type, _userData); > if (customClientAnimationController == [NSNull null]) { > [self _cancelImmediateAction]; >@@ -353,6 +358,9 @@ - (id<QLPreviewItem>)menuItem:(NSMenuItem *)menuItem previewItemAtPoint:(NSPoint > return nil; > > RefPtr<API::HitTestResult> hitTestResult = [self _webHitTestResult]; >+ if (!hitTestResult) >+ return nil; >+ > return [NSURL _web_URLWithWTFString:hitTestResult->absoluteLinkURL()]; > } > >@@ -372,6 +380,9 @@ - (NSRect)menuItem:(NSMenuItem *)menuItem itemFrameForPoint:(NSPoint)point > return NSZeroRect; > > RefPtr<API::HitTestResult> hitTestResult = [self _webHitTestResult]; >+ if (!hitTestResult) >+ return NSZeroRect; >+ > return [_view convertRect:hitTestResult->elementBoundingBox() toView:nil]; > } > >@@ -449,6 +460,9 @@ - (id<NSImmediateActionAnimationController>)_animationControllerForDataDetectedL > [_currentActionContext setHighlightFrame:[_view.window convertRectToScreen:[_view convertRect:_hitTestResultData.elementBoundingBox toView:nil]]]; > > RefPtr<API::HitTestResult> hitTestResult = [self _webHitTestResult]; >+ if (!hitTestResult) >+ return nil; >+ > NSArray *menuItems = [[getDDActionsManagerClass() sharedManager] menuItemsForTargetURL:hitTestResult->absoluteLinkURL() actionContext:_currentActionContext.get()]; > > if (menuItems.count != 1)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 197404
: 368539