diff options
author | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-23 19:21:41 +0000 |
---|---|---|
committer | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-23 19:21:41 +0000 |
commit | c68b2049916f610361b06419974c60391e5e7b07 (patch) | |
tree | 030b68205408a90884821c68d6bbdd60e4c5dd77 /content/renderer/dom_utils.cc | |
parent | 759dc9f40c32b64dd9ffe1b6cfefa2994c8d7e7e (diff) | |
download | chromium_src-c68b2049916f610361b06419974c60391e5e7b07.zip chromium_src-c68b2049916f610361b06419974c60391e5e7b07.tar.gz chromium_src-c68b2049916f610361b06419974c60391e5e7b07.tar.bz2 |
Make <a ping> work for context menus.
This adds a link_followed parameter to CustomContextMenuContext. This object is sent back to the renderer process when a context menu is closed, allowing us to provide sufficient information to send pings if appropriate.
BUG=257281
Review URL: https://codereview.chromium.org/384243004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285011 0039d316-1c4b-4281-b951-d872f2087c98
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 |