summaryrefslogtreecommitdiffstats
path: root/webkit/glue/dom_operations.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/glue/dom_operations.cc')
-rw-r--r--webkit/glue/dom_operations.cc29
1 files changed, 27 insertions, 2 deletions
diff --git a/webkit/glue/dom_operations.cc b/webkit/glue/dom_operations.cc
index fe039a7..9e15d8a 100644
--- a/webkit/glue/dom_operations.cc
+++ b/webkit/glue/dom_operations.cc
@@ -21,6 +21,7 @@ MSVC_PUSH_WARNING_LEVEL(0);
#include "HTMLInputElement.h"
#include "HTMLLinkElement.h"
#include "HTMLMetaElement.h"
+#include "HTMLOptionElement.h"
#include "HTMLNames.h"
#include "KURL.h"
MSVC_POP_WARNING();
@@ -30,9 +31,8 @@ MSVC_POP_WARNING();
// first.
#include "webkit/glue/autocomplete_input_listener.h"
-#include "webkit/glue/dom_operations.h"
-
#include "base/string_util.h"
+#include "webkit/glue/dom_operations.h"
#include "webkit/glue/form_data.h"
#include "webkit/glue/glue_util.h"
#include "webkit/glue/password_autocomplete_listener.h"
@@ -152,6 +152,16 @@ void GetAllSavableResourceLinksForFrame(WebFrameImpl* current_frame,
}
}
+template <class HTMLNodeType>
+HTMLNodeType* CastHTMLElement(WebCore::Node* node,
+ const WebCore::QualifiedName& name) {
+ if (node->isHTMLElement() &&
+ static_cast<typename WebCore::HTMLElement*>(node)->hasTagName(name)) {
+ return static_cast<HTMLNodeType*>(node);
+ }
+ return NULL;
+}
+
} // namespace
namespace webkit_glue {
@@ -443,6 +453,21 @@ void FillPasswordForm(WebView* view,
}
}
+WebCore::HTMLLinkElement* CastToHTMLLinkElement(WebCore::Node* node) {
+ return CastHTMLElement<WebCore::HTMLLinkElement>(node,
+ WebCore::HTMLNames::linkTag);
+}
+
+WebCore::HTMLMetaElement* CastToHTMLMetaElement(WebCore::Node* node) {
+ return CastHTMLElement<WebCore::HTMLMetaElement>(node,
+ WebCore::HTMLNames::metaTag);
+}
+
+WebCore::HTMLOptionElement* CastToHTMLOptionElement(WebCore::Node* node) {
+ return CastHTMLElement<WebCore::HTMLOptionElement>(node,
+ WebCore::HTMLNames::optionTag);
+}
+
WebFrameImpl* GetWebFrameImplFromElement(WebCore::Element* element,
bool* is_frame_element) {
*is_frame_element = false;