summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2010-12-09 14:00:42 -0500
committerCary Clark <cary@android.com>2010-12-09 14:00:42 -0500
commitc9d6325f8d0224620352e73b5499eb0e64690712 (patch)
tree6aaba0c8311fe90e96ad79987ce9f944185bff8e
parent5587714d67bfe95c78f6dc202757dc3e04d5b3a4 (diff)
downloadexternal_webkit-c9d6325f8d0224620352e73b5499eb0e64690712.zip
external_webkit-c9d6325f8d0224620352e73b5499eb0e64690712.tar.gz
external_webkit-c9d6325f8d0224620352e73b5499eb0e64690712.tar.bz2
look for the parent anchor
The node hit may be the text inside an anchor, so chase the parent containership to the first element before testing. bug:3263340 Change-Id: I2e2e4b1342024deef5539d7eb4dbd376a8b329f4
-rw-r--r--WebKit/android/jni/WebViewCore.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp
index 228c16b..c62ae0e 100644
--- a/WebKit/android/jni/WebViewCore.cpp
+++ b/WebKit/android/jni/WebViewCore.cpp
@@ -1346,9 +1346,15 @@ WebCore::HTMLAnchorElement* WebViewCore::retrieveAnchorElement(int x, int y)
return 0;
}
Node* node = hitTestResult.innerNode();
- if (!node->hasTagName(WebCore::HTMLNames::aTag))
+ Node* element = node;
+ while (element && !element->isElementNode())
+ element = element->parentNode();
+ DBG_NAV_LOGD("node=%p element=%p x=%d y=%d nodeName=%s tagName=%s", node,
+ element, x, y, node->nodeName().utf8().data(),
+ ((Element*) element)->tagName().utf8().data());
+ if (!element->hasTagName(WebCore::HTMLNames::aTag))
return 0;
- return static_cast<WebCore::HTMLAnchorElement*>(node);
+ return static_cast<WebCore::HTMLAnchorElement*>(element);
}
WTF::String WebViewCore::retrieveHref(int x, int y)