+2015-05-07 Timothy Horton <timothy_horton@apple.com>
+
+ Occasional null deref in WebImmediateActionController
+ https://bugs.webkit.org/show_bug.cgi?id=144772
+ <rdar://problem/20811128>
+
+ Reviewed by Beth Dakin.
+
+ * WebView/WebImmediateActionController.mm:
+ (-[WebImmediateActionController _defaultAnimationController]):
+ (-[WebImmediateActionController _animationControllerForDataDetectedText]):
+ (-[WebImmediateActionController _animationControllerForDataDetectedLink]):
+ Null-check TextIndicators before dereferencing.
+
2015-05-07 Beth Dakin <bdakin@apple.com>
New force-related DOM events should fire in WK1 views
RefPtr<Range> linkRange = rangeOfContents(*_hitTestResult.URLElement());
RefPtr<TextIndicator> indicator = TextIndicator::createWithRange(*linkRange, TextIndicatorPresentationTransition::FadeIn);
- [_webView _setTextIndicator:*indicator withLifetime:TextIndicatorLifetime::Permanent];
+ if (indicator)
+ [_webView _setTextIndicator:*indicator withLifetime:TextIndicatorLifetime::Permanent];
QLPreviewMenuItem *item = [NSMenuItem standardQuickLookMenuItem];
item.previewStyle = QLPreviewStylePopover;
_currentActionContext = [actionContext contextForView:_webView altMode:YES interactionStartedHandler:^() {
} interactionChangedHandler:^() {
- [_webView _setTextIndicator:*detectedDataTextIndicator withLifetime:TextIndicatorLifetime::Permanent];
+ if (detectedDataTextIndicator)
+ [_webView _setTextIndicator:*detectedDataTextIndicator withLifetime:TextIndicatorLifetime::Permanent];
} interactionStoppedHandler:^() {
[_webView _clearTextIndicatorWithAnimation:TextIndicatorDismissalAnimation::FadeOut];
}];
_currentActionContext = [actionContext contextForView:_webView altMode:YES interactionStartedHandler:^() {
} interactionChangedHandler:^() {
- [_webView _setTextIndicator:*indicator withLifetime:TextIndicatorLifetime::Permanent];
+ if (indicator)
+ [_webView _setTextIndicator:*indicator withLifetime:TextIndicatorLifetime::Permanent];
} interactionStoppedHandler:^() {
[_webView _clearTextIndicatorWithAnimation:TextIndicatorDismissalAnimation::FadeOut];
}];