Title: [189122] trunk/Source/WebKit/mac
Revision
189122
Author
bda...@apple.com
Date
2015-08-28 13:35:28 -0700 (Fri, 28 Aug 2015)

Log Message

Crash in WK1 when clicking on a PDF inside an iframe
https://bugs.webkit.org/show_bug.cgi?id=148585
-and corresponding-
rdar://problem/22165194

Reviewed by Tim Horton.

Only handle WebHTMLViews.
* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WebImmediateActionController immediateActionRecognizerDidCancelAnimation:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/mac/ChangeLog (189121 => 189122)


--- trunk/Source/WebKit/mac/ChangeLog	2015-08-28 20:06:25 UTC (rev 189121)
+++ trunk/Source/WebKit/mac/ChangeLog	2015-08-28 20:35:28 UTC (rev 189122)
@@ -1,3 +1,17 @@
+2015-08-28  Beth Dakin  <bda...@apple.com>
+
+        Crash in WK1 when clicking on a PDF inside an iframe
+        https://bugs.webkit.org/show_bug.cgi?id=148585
+        -and corresponding-
+        rdar://problem/22165194
+
+        Reviewed by Tim Horton.
+
+        Only handle WebHTMLViews.
+        * WebView/WebImmediateActionController.mm:
+        (-[WebImmediateActionController immediateActionRecognizerWillPrepare:]):
+        (-[WebImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
+
 2015-08-28  Jer Noble  <jer.no...@apple.com>
 
         [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.

Modified: trunk/Source/WebKit/mac/WebView/WebImmediateActionController.mm (189121 => 189122)


--- trunk/Source/WebKit/mac/WebView/WebImmediateActionController.mm	2015-08-28 20:06:25 UTC (rev 189121)
+++ trunk/Source/WebKit/mac/WebView/WebImmediateActionController.mm	2015-08-28 20:35:28 UTC (rev 189122)
@@ -158,12 +158,17 @@
     if (!_webView)
         return;
 
+    NSView *documentView = [[[_webView _selectedOrMainFrame] frameView] documentView];
+    if (![documentView isKindOfClass:[WebHTMLView class]]) {
+        [self _cancelImmediateAction];
+        return;
+    }
+
     if (immediateActionRecognizer != _immediateActionRecognizer)
         return;
 
     [_webView _setMaintainsInactiveSelection:YES];
 
-    WebHTMLView *documentView = [[[_webView _selectedOrMainFrame] frameView] documentView];
     NSPoint locationInDocumentView = [immediateActionRecognizer locationInView:documentView];
     [self performHitTestAtPoint:locationInDocumentView];
     [self _updateImmediateActionItem];
@@ -208,7 +213,11 @@
     if (immediateActionRecognizer != _immediateActionRecognizer)
         return;
 
-    Frame* coreFrame = core([[[[_webView _selectedOrMainFrame] frameView] documentView] _frame]);
+    NSView *documentView = [[[_webView _selectedOrMainFrame] frameView] documentView];
+    if (![documentView isKindOfClass:[WebHTMLView class]])
+        return;
+
+    Frame* coreFrame = core([(WebHTMLView *)documentView _frame]);
     if (coreFrame) {
         ImmediateActionStage lastStage = coreFrame->eventHandler().immediateActionStage();
         if (lastStage == ImmediateActionStage::ActionUpdated)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to