diff options
Diffstat (limited to 'content/renderer/dom_utils.cc')
-rw-r--r-- | content/renderer/dom_utils.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/content/renderer/dom_utils.cc b/content/renderer/dom_utils.cc new file mode 100644 index 0000000..5cb08a3 --- /dev/null +++ b/content/renderer/dom_utils.cc @@ -0,0 +1,22 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/renderer/dom_utils.h" + +#include "third_party/WebKit/public/web/WebNode.h" + +namespace content { + +blink::WebNode DomUtils::ExtractParentAnchorNode( + const blink::WebNode& node) { + blink::WebNode selected_node = node; + + // If there are other embedded tags (like <a ..>Some <b>text</b></a>) + // we need to extract the parent <a/> node. + while (!selected_node.isLink() && !selected_node.parentNode().isNull()) + selected_node = selected_node.parentNode(); + return selected_node.isLink() ? selected_node : blink::WebNode(); +} + +} // namespace content |