diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xwidget.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/xwidget.c b/src/xwidget.c index 89cd859fdfc..7f78ffed5e7 100644 --- a/src/xwidget.c +++ b/src/xwidget.c | |||
| @@ -734,7 +734,51 @@ void gtk_window_get_position (GtkWindow *window, | |||
| 734 | *root_y = 0; | 734 | *root_y = 0; |
| 735 | } | 735 | } |
| 736 | 736 | ||
| 737 | DEFUN ("xwidget-webkit-dom-dump", Fxwidget_webkit_dom_dump, Sxwidget_webkit_dom_dump, 1, 1, 0, | ||
| 738 | doc: /* webkit dom dump*/ | ||
| 739 | ) | ||
| 740 | (Lisp_Object xwidget) | ||
| 741 | { | ||
| 742 | struct xwidget* xw = XXWIDGET(xwidget); | ||
| 743 | xwidget_webkit_dom_dump(webkit_web_view_get_dom_document(xw->widget_osr)); | ||
| 744 | return Qnil; | ||
| 745 | } | ||
| 737 | 746 | ||
| 747 | void | ||
| 748 | xwidget_webkit_dom_dump(WebKitDOMNode* parent){ | ||
| 749 | WebKitDOMNodeList* list; | ||
| 750 | int i; | ||
| 751 | int length; | ||
| 752 | WebKitDOMNode* attribute; | ||
| 753 | WebKitDOMNamedNodeMap* attrs; | ||
| 754 | printf("node:%d type:%d name:%s content:%s\n", | ||
| 755 | parent, | ||
| 756 | webkit_dom_node_get_node_type(parent),//1 element 3 text 8 comment 2 attribute | ||
| 757 | webkit_dom_node_get_local_name(parent), | ||
| 758 | webkit_dom_node_get_text_content(parent)); | ||
| 759 | |||
| 760 | if(webkit_dom_node_has_attributes(parent)){ | ||
| 761 | attrs = webkit_dom_node_get_attributes(parent); | ||
| 762 | |||
| 763 | length = webkit_dom_named_node_map_get_length(attrs); | ||
| 764 | for (int i = 0; i < length; i++) { | ||
| 765 | attribute = webkit_dom_named_node_map_item(attrs,i); | ||
| 766 | printf(" attr node:%d type:%d name:%s content:%s\n", | ||
| 767 | attribute, | ||
| 768 | webkit_dom_node_get_node_type(attribute),//1 element 3 text 8 comment | ||
| 769 | webkit_dom_node_get_local_name(attribute), | ||
| 770 | webkit_dom_node_get_text_content(attribute)); | ||
| 771 | } | ||
| 772 | } | ||
| 773 | list = webkit_dom_node_get_child_nodes(parent); | ||
| 774 | length = webkit_dom_node_list_get_length(list); | ||
| 775 | WebKitDOMNode* child; | ||
| 776 | for (int i = 0; i < length; i++) { | ||
| 777 | child = webkit_dom_node_list_item(list, i); | ||
| 778 | //if(webkit_dom_node_has_child_nodes(child)) | ||
| 779 | xwidget_webkit_dom_dump(child); | ||
| 780 | } | ||
| 781 | } | ||
| 738 | 782 | ||
| 739 | 783 | ||
| 740 | #endif | 784 | #endif |
| @@ -912,6 +956,7 @@ syms_of_xwidget (void) | |||
| 912 | defsubr (&Sxwidget_disable_plugin_for_mime); | 956 | defsubr (&Sxwidget_disable_plugin_for_mime); |
| 913 | 957 | ||
| 914 | defsubr (&Sxwidget_send_keyboard_event); | 958 | defsubr (&Sxwidget_send_keyboard_event); |
| 959 | defsubr (&Sxwidget_webkit_dom_dump); | ||
| 915 | DEFSYM (Qxwidget ,"xwidget"); | 960 | DEFSYM (Qxwidget ,"xwidget"); |
| 916 | 961 | ||
| 917 | DEFSYM (Qcxwidget ,":xwidget"); | 962 | DEFSYM (Qcxwidget ,":xwidget"); |