[BlackBerry] Check image node with usemap attribute isLink failed
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 17 Apr 2013 19:14:30 +0000 (19:14 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 17 Apr 2013 19:14:30 +0000 (19:14 +0000)
https://bugs.webkit.org/show_bug.cgi?id=114751

Patch by Tiancheng Jiang <tijiang@rim.com> on 2013-04-17
Reviewed by Rob Buis.

PR 326780
Internally Reviewed by Liam Quinn.

An image node with usemap will crash when call isLink.
If the node is linkNode, bring up the CCM(eg. linked image).
Also use toElement method as agomes suggested in pr 113957.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::webContext):
* WebKitSupport/FatFingers.cpp:
(BlackBerry::WebKit::FatFingers::findBestPoint):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@148624 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/blackberry/Api/WebPage.cpp
Source/WebKit/blackberry/ChangeLog
Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp

index d100300..6c71c3b 100644 (file)
@@ -2161,7 +2161,8 @@ Platform::WebContext WebPagePrivate::webContext(TargetDetectionStrategy strategy
 
     bool nodeAllowSelectionOverride = false;
     Node* linkNode = node->enclosingLinkEventParentOrSelf();
-    if (node->isLink() || (node->isTextNode() && linkNode)) {
+    // Set link url only when the node is linked image, or text inside anchor. Prevent CCM popup when long press non-link element(eg. button) inside an anchor.
+    if ((node == linkNode) || (node->isTextNode() && linkNode)) {
         KURL href;
         if (linkNode->isLink() && linkNode->hasAttributes()) {
             if (const Attribute* attribute = toElement(linkNode)->getAttributeItem(HTMLNames::hrefAttr))
index f88213c..445db53 100644 (file)
@@ -1,3 +1,22 @@
+2013-04-17  Tiancheng Jiang  <tijiang@rim.com>
+
+        [BlackBerry] Check image node with usemap attribute isLink failed
+        https://bugs.webkit.org/show_bug.cgi?id=114751
+
+        Reviewed by Rob Buis.
+
+        PR 326780
+        Internally Reviewed by Liam Quinn.
+
+        An image node with usemap will crash when call isLink.
+        If the node is linkNode, bring up the CCM(eg. linked image).
+        Also use toElement method as agomes suggested in pr 113957.
+
+        * Api/WebPage.cpp:
+        (BlackBerry::WebKit::WebPagePrivate::webContext):
+        * WebKitSupport/FatFingers.cpp:
+        (BlackBerry::WebKit::FatFingers::findBestPoint):
+
 2013-04-16  Nima Ghanavatian  <nghanavatian@blackberry.com>
 
         Redo spellchecking of a field if the layout has changed
index acaf6d6..d524f29 100644 (file)
@@ -170,7 +170,7 @@ const FatFingersResult FatFingers::findBestPoint()
     while (node && !node->isElementNode())
         node = node->parentNode();
 
-    Element* elementUnderPoint = static_cast<Element*>(node);
+    Element* elementUnderPoint = toElement(node);
 
     if (elementUnderPoint) {
         result.m_nodeUnderFatFinger = elementUnderPoint;