[evolution-rss] add GNOME_PROXY_RESOLVER for webkit session
- From: Lucian Langa <lucilanga src gnome org>
- To: svn-commits-list gnome org
- Subject: [evolution-rss] add GNOME_PROXY_RESOLVER for webkit session
- Date: Wed, 13 May 2009 09:18:14 -0400 (EDT)
commit 6861b5f8ce74a7cc21b1ab4dc4c01296fda94e84
Author: Lucian Langa <lucilanga gnome org>
Date: Wed May 13 16:18:01 2009 +0300
add GNOME_PROXY_RESOLVER for webkit session
---
ChangeLog | 6 ++++++
src/network-soup.c | 32 +++++++++++++++++++-------------
src/rss.c | 9 +++++++++
3 files changed, 34 insertions(+), 13 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index c546ee5..1732dc3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-05-12 Lucian Langa <lucilanga gnome org>
+
+ * src/network-soup.c: add GNOME_PROXY_RESOLVER for webkit session
+ * src/rss.c (webkit_set_preferences), (gecko_set_preferences),
+ (finish_website): fix compiler defines
+
2009-05-09 Lucian Langa <lucilanga gnome org>
* src/network-soup.c: correctly use gnome settings entry
diff --git a/src/network-soup.c b/src/network-soup.c
index 5b8387d..004ccdc 100644
--- a/src/network-soup.c
+++ b/src/network-soup.c
@@ -40,6 +40,7 @@
#define d(x)
+SoupCookieJar *rss_soup_jar = NULL;
gint proxy_type = 0;
extern rssfeed *rf;
extern GConfClient *rss_gconf;
@@ -194,23 +195,30 @@ void
proxify_webkit_session(EProxy *proxy, gchar *uri)
{
SoupURI *proxy_uri = NULL;
+ gint ptype = gconf_client_get_int (rss_gconf, KEY_GCONF_EVO_PROXY_TYPE, NULL);
- if (e_proxy_require_proxy_for_uri (proxy, uri)) {
- proxy_uri = e_proxy_peek_uri_for (proxy, uri);
- g_print("webkit proxified %s with %s:%d\n", uri, proxy_uri->host, proxy_uri->port);
- } else
- g_print("webkit no PROXY-%s\n", uri);
+ switch (ptype) {
+ case 2:
+ if (e_proxy_require_proxy_for_uri (proxy, uri)) {
+ proxy_uri = e_proxy_peek_uri_for (proxy, uri);
+ g_print("webkit proxified %s with %s:%d\n", uri, proxy_uri->host, proxy_uri->port);
+ } else
+ g_print("webkit no PROXY-%s\n", uri);
+ break;
+ g_object_set (G_OBJECT (webkit_session), SOUP_SESSION_PROXY_URI, proxy_uri, NULL);
+ case 0:
+ soup_session_add_feature_by_type (webkit_session, SOUP_TYPE_PROXY_RESOLVER_GNOME);
+ break;
+ }
- g_object_set (G_OBJECT (webkit_session), SOUP_SESSION_PROXY_URI, proxy_uri, NULL);
}
//this will insert proxy in the session
void
proxify_session(EProxy *proxy, SoupSession *session, gchar *uri)
{
- gint ptype = gconf_client_get_int (rss_gconf, KEY_GCONF_EVO_PROXY_TYPE, NULL);
-
SoupURI *proxy_uri = NULL;
+ gint ptype = gconf_client_get_int (rss_gconf, KEY_GCONF_EVO_PROXY_TYPE, NULL);
switch (ptype) {
case 2:
@@ -498,6 +506,7 @@ net_get_unblocking(gchar *url,
// soup_session_async_new_with_options(SOUP_SESSION_TIMEOUT, SS_TIMEOUT, NULL);
soup_session_async_new();
+ soup_session_add_feature(soup_sess, SOUP_SESSION_FEATURE(rss_soup_jar));
proxify_session(proxy, soup_sess, url);
if (cb && data) {
info = g_new0(CallbackInfo, 1);
@@ -587,6 +596,7 @@ net_post_blocking(gchar *url, GSList *headers, GString *post,
else
soup_sess = rf->b_session;
+
g_signal_connect (soup_sess, "authenticate",
G_CALLBACK (authenticate), soup_sess);
#if LIBSOUP_VERSION < 2003000
@@ -731,9 +741,5 @@ abort_all_soup(void)
void
rss_soup_init(void)
{
- proxy_type = gconf_client_get_int (rss_gconf, KEY_GCONF_EVO_PROXY_TYPE, NULL);
- if (proxy_type < PROXY_TYPE_SYSTEM || proxy_type > PROXY_TYPE_AUTO_URL)
- proxy_type = PROXY_TYPE_SYSTEM;
- // SoupCookieJar *soup_jar;
-// soup_jar = soup_cookie_jar_sqlite_new ("/home/cooly/.newcookies.sqlite", TRUE);
+ //rss_soup_jar = soup_cookie_jar_sqlite_new ("/home/cooly/.newcookies.sqlite", FALSE);
}
diff --git a/src/rss.c b/src/rss.c
index 7b26724..9cd855f 100644
--- a/src/rss.c
+++ b/src/rss.c
@@ -182,6 +182,7 @@ gsize pixfilelen;
extern int xmlSubstituteEntitiesDefaultValue;
extern EProxy *proxy;
SoupSession *webkit_session = NULL;
+SoupCookieJar *rss_soup_jar;
rssfeed *rf = NULL;
guint upgrade = 0; // set to 2 when initailization successfull
@@ -1450,6 +1451,7 @@ webkit_set_preferences(void)
{
#ifdef HAVE_WEBKIT
webkit_session = webkit_get_default_session();
+ soup_session_add_feature(webkit_session, SOUP_SESSION_FEATURE(rss_soup_jar));
#endif
}
@@ -1467,6 +1469,8 @@ gecko_set_preferences(void)
gchar *agstr = g_strdup_printf("Evolution/%s; Evolution-RSS/%s",
EVOLUTION_VERSION_STRING, VERSION);
gecko_prefs_set_string("general.useragent.extra.firefox", agstr);
+ gecko_prefs_set_int("browser.ssl_override_behaviour", 2);
+ gecko_prefs_set_bool("browser.xul.error_pages.enabled", FALSE);
g_free(agstr);
//I'm only forcing scheme here
uri = e_proxy_peek_uri_for(proxy, "http:///");
@@ -1556,6 +1560,7 @@ webkit_click (GtkEntry *entry,
return TRUE;
}
+#ifdef HAVE_GECKO
gboolean
gecko_click(GtkMozEmbed *mozembed, gpointer dom_event, gpointer user_data)
{
@@ -1599,6 +1604,7 @@ gecko_click(GtkMozEmbed *mozembed, gpointer dom_event, gpointer user_data)
g_print("button:%d\n", button);
return TRUE;
}
+#endif
#ifdef HAVE_RENDERKIT
static gboolean
@@ -2791,6 +2797,7 @@ finish_website (SoupMessage *msg, gpointer user_data)
finish_website (SoupSession *soup_sess, SoupMessage *msg, gpointer user_data)
#endif
{
+ g_return_if_fail(rf->mozembed);
GString *response = g_string_new_len(msg->response_body->data, msg->response_body->length);
guint engine = fallback_engine();
g_print("browser full:%d\n", (int)response->len);
@@ -2804,8 +2811,10 @@ finish_website (SoupSession *soup_sess, SoupMessage *msg, gpointer user_data)
g_print("len:%d\n", len);
if (len>0) {
browser_write(str, len, user_data);
+#ifdef HAVE_GECKO
if (engine == 2)
gtk_moz_embed_close_stream(GTK_MOZ_EMBED(rf->mozembed));
+#endif
g_string_free(response, 1);
// gtk_widget_show(rf->mozembed);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]