[epiphany] Move code to get application title from DOM to ephy-dom-utils
- From: Xan Lopez <xan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] Move code to get application title from DOM to ephy-dom-utils
- Date: Sat, 2 Mar 2013 14:11:46 +0000 (UTC)
commit 4b8da0f21ae7ea5a47dbf4a0afce79b1437c3bf2
Author: Manuel Rego Casasnovas <rego igalia com>
Date: Mon Feb 25 13:13:59 2013 +0100
Move code to get application title from DOM to ephy-dom-utils
https://bugzilla.gnome.org/show_bug.cgi?id=694144
lib/ephy-web-dom-utils.c | 35 +++++++++++++++++++++++++++++++++++
lib/ephy-web-dom-utils.h | 2 ++
src/window-commands.c | 27 +++------------------------
3 files changed, 40 insertions(+), 24 deletions(-)
---
diff --git a/lib/ephy-web-dom-utils.c b/lib/ephy-web-dom-utils.c
index 40b324b..184cf67 100644
--- a/lib/ephy-web-dom-utils.c
+++ b/lib/ephy-web-dom-utils.c
@@ -96,3 +96,38 @@ ephy_web_dom_utils_has_modified_forms (WebKitDOMDocument *document)
return FALSE;
}
+
+/**
+ * ephy_web_dom_utils_get_application_title:
+ * @document: the DOM document.
+ *
+ * Returns web application title if it is defined in <meta> elements of
+ * @document.
+ **/
+char *
+ephy_web_dom_utils_get_application_title (WebKitDOMDocument *document)
+{
+ WebKitDOMNodeList *metas;
+ char *title = NULL;
+ gulong length, i;
+
+ metas = webkit_dom_document_get_elements_by_tag_name (document, "meta");
+ length = webkit_dom_node_list_get_length (metas);
+
+ for (i = 0; i < length && title == NULL; i++) {
+ char *name;
+ char *property;
+ WebKitDOMNode *node = webkit_dom_node_list_item (metas, i);
+
+ name = webkit_dom_html_meta_element_get_name (WEBKIT_DOM_HTML_META_ELEMENT (node));
+ property = webkit_dom_element_get_attribute (WEBKIT_DOM_ELEMENT (node), "property");
+ if (g_strcmp0 (name, "application-name") == 0
+ || g_strcmp0 (property, "og:site_name") == 0) {
+ title = webkit_dom_html_meta_element_get_content (WEBKIT_DOM_HTML_META_ELEMENT (node));
+ }
+ g_free (property);
+ g_free (name);
+ }
+
+ return title;
+}
diff --git a/lib/ephy-web-dom-utils.h b/lib/ephy-web-dom-utils.h
index f3cde81..d98344c 100644
--- a/lib/ephy-web-dom-utils.h
+++ b/lib/ephy-web-dom-utils.h
@@ -35,6 +35,8 @@ G_BEGIN_DECLS
gboolean ephy_web_dom_utils_has_modified_forms (WebKitDOMDocument *document);
+char * ephy_web_dom_utils_get_application_title (WebKitDOMDocument *document);
+
G_END_DECLS
#endif
diff --git a/src/window-commands.c b/src/window-commands.c
index 7356b83..04b1e29 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -48,6 +48,7 @@
#include "ephy-shell.h"
#include "ephy-string.h"
#include "ephy-web-app-utils.h"
+#include "ephy-web-dom-utils.h"
#include "ephy-zoom.h"
#include "pdm-dialog.h"
@@ -701,30 +702,8 @@ fill_default_application_title (EphyApplicationDialogData *data)
#ifdef HAVE_WEBKIT2
/* TODO: DOM Bindindgs */
#else
- WebKitDOMDocument *document;
- WebKitDOMNodeList *metas;
- gulong length, i;
-
- document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (data->view));
- metas = webkit_dom_document_get_elements_by_tag_name (document, "meta");
- length = webkit_dom_node_list_get_length (metas);
-
- for (i = 0; i < length && title == NULL; i++)
- {
- char *name;
- char *property;
- WebKitDOMNode *node = webkit_dom_node_list_item (metas, i);
-
- name = webkit_dom_html_meta_element_get_name (WEBKIT_DOM_HTML_META_ELEMENT (node));
- property = webkit_dom_element_get_attribute (WEBKIT_DOM_ELEMENT (node), "property");
- if (g_strcmp0 (name, "application-name") == 0
- || g_strcmp0 (property, "og:site_name") == 0)
- {
- title = webkit_dom_html_meta_element_get_content (WEBKIT_DOM_HTML_META_ELEMENT
(node));
- }
- g_free (property);
- g_free (name);
- }
+ WebKitDOMDocument *document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (data->view));
+ title = ephy_web_dom_utils_get_application_title (document);
#endif
if (title == NULL)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]