Provide identification string and proxy server preferences
This works with libSoup stable, if WebKit uses libSoup.
This commit is contained in:
parent
e1075f1aae
commit
219c6bdf4c
4 changed files with 228 additions and 17 deletions
|
@ -1274,7 +1274,9 @@ cookie_jar_changed_cb (SoupCookieJar* jar,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAVE_LIBSOUP
|
||||||
/* The following code hooks up to any created cookie jar in order to
|
/* The following code hooks up to any created cookie jar in order to
|
||||||
load and save cookies. This is *not* a generally advisable technique
|
load and save cookies. This is *not* a generally advisable technique
|
||||||
but merely a preliminary workaround until WebKit exposes its
|
but merely a preliminary workaround until WebKit exposes its
|
||||||
|
@ -1283,15 +1285,18 @@ static GObjectConstructed old_jar_constructed_cb;
|
||||||
static void
|
static void
|
||||||
cookie_jar_constructed_cb (GObject* object)
|
cookie_jar_constructed_cb (GObject* object)
|
||||||
{
|
{
|
||||||
|
#if HAVE_LIBSOUP_2_25_2
|
||||||
gchar* config_path;
|
gchar* config_path;
|
||||||
gchar* config_file;
|
gchar* config_file;
|
||||||
SoupCookieJar* jar;
|
SoupCookieJar* jar;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (old_jar_constructed_cb)
|
if (old_jar_constructed_cb)
|
||||||
old_jar_constructed_cb (object);
|
old_jar_constructed_cb (object);
|
||||||
g_type_set_qdata (SOUP_TYPE_COOKIE_JAR,
|
g_type_set_qdata (SOUP_TYPE_COOKIE_JAR,
|
||||||
g_quark_from_static_string ("midori-has-jar"), (void*)1);
|
g_quark_from_static_string ("midori-has-jar"), (void*)1);
|
||||||
|
|
||||||
|
#if HAVE_LIBSOUP_2_25_2
|
||||||
config_path = g_build_filename (g_get_user_config_dir (),
|
config_path = g_build_filename (g_get_user_config_dir (),
|
||||||
PACKAGE_NAME, NULL);
|
PACKAGE_NAME, NULL);
|
||||||
g_mkdir_with_parents (config_path, 0700);
|
g_mkdir_with_parents (config_path, 0700);
|
||||||
|
@ -1301,6 +1306,7 @@ cookie_jar_constructed_cb (GObject* object)
|
||||||
g_signal_connect_data (jar, "changed",
|
g_signal_connect_data (jar, "changed",
|
||||||
G_CALLBACK (cookie_jar_changed_cb), config_file,
|
G_CALLBACK (cookie_jar_changed_cb), config_file,
|
||||||
(GClosureNotify)g_free, 0);
|
(GClosureNotify)g_free, 0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1433,12 +1439,22 @@ static void
|
||||||
soup_session_constructed_cb (GObject* object)
|
soup_session_constructed_cb (GObject* object)
|
||||||
{
|
{
|
||||||
MidoriApp* app;
|
MidoriApp* app;
|
||||||
|
MidoriWebSettings* settings;
|
||||||
SoupSession* session;
|
SoupSession* session;
|
||||||
|
SoupURI* proxy_uri;
|
||||||
|
|
||||||
if (old_session_constructed_cb)
|
if (old_session_constructed_cb)
|
||||||
old_session_constructed_cb (object);
|
old_session_constructed_cb (object);
|
||||||
app = g_type_get_qdata (SOUP_TYPE_SESSION,
|
app = g_type_get_qdata (SOUP_TYPE_SESSION,
|
||||||
g_quark_from_static_string ("midori-app"));
|
g_quark_from_static_string ("midori-app"));
|
||||||
|
settings = katze_object_get_object (app, "settings");
|
||||||
|
proxy_uri = soup_uri_new (katze_object_get_string (settings, "http-proxy"));
|
||||||
|
g_object_set (object,
|
||||||
|
"user-agent", katze_object_get_string (settings, "ident-string"),
|
||||||
|
"proxy-uri", proxy_uri,
|
||||||
|
NULL);
|
||||||
|
if (proxy_uri)
|
||||||
|
soup_uri_free (proxy_uri);
|
||||||
|
|
||||||
session = SOUP_SESSION (object);
|
session = SOUP_SESSION (object);
|
||||||
g_signal_connect (session, "authenticate",
|
g_signal_connect (session, "authenticate",
|
||||||
|
@ -1566,7 +1582,7 @@ main (int argc,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_LIBSOUP_2_25_2
|
#if HAVE_LIBSOUP
|
||||||
/* This is a nasty trick that allows us to manipulate cookies
|
/* This is a nasty trick that allows us to manipulate cookies
|
||||||
even without having a pointer to the jar. */
|
even without having a pointer to the jar. */
|
||||||
soup_cookie_jar_get_type ();
|
soup_cookie_jar_get_type ();
|
||||||
|
@ -1578,8 +1594,6 @@ main (int argc,
|
||||||
old_jar_constructed_cb = G_OBJECT_CLASS (jar_class)->constructed;
|
old_jar_constructed_cb = G_OBJECT_CLASS (jar_class)->constructed;
|
||||||
G_OBJECT_CLASS (jar_class)->constructed = cookie_jar_constructed_cb;
|
G_OBJECT_CLASS (jar_class)->constructed = cookie_jar_constructed_cb;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#if HAVE_LIBSOUP
|
|
||||||
/* This is a nasty trick that allows us to manipulate preferences
|
/* This is a nasty trick that allows us to manipulate preferences
|
||||||
even without having a pointer to the session. */
|
even without having a pointer to the session. */
|
||||||
soup_session_get_type ();
|
soup_session_get_type ();
|
||||||
|
|
|
@ -220,6 +220,16 @@ proxy_download_manager_icon_cb (GtkWidget* entry,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
midori_preferences_notify_identify_as_cb (MidoriWebSettings* settings,
|
||||||
|
GParamSpec* pspec,
|
||||||
|
GtkWidget* entry)
|
||||||
|
{
|
||||||
|
MidoriIdentity identify_as = katze_object_get_enum (settings, "identify-as");
|
||||||
|
|
||||||
|
gtk_widget_set_sensitive (entry, identify_as == MIDORI_IDENT_CUSTOM);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_OSX
|
#ifdef HAVE_OSX
|
||||||
static void
|
static void
|
||||||
midori_preferences_help_clicked_cb (GtkWidget* button,
|
midori_preferences_help_clicked_cb (GtkWidget* button,
|
||||||
|
@ -480,35 +490,52 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
|
||||||
WIDGET_ADD (button, 1, 2, 5, 6);
|
WIDGET_ADD (button, 1, 2, 5, 6);
|
||||||
|
|
||||||
/* Page "Network" */
|
/* Page "Network" */
|
||||||
#if 0
|
#if HAVE_LIBSOUP
|
||||||
|
/* If a cookie jar was created, WebKit is using Soup */
|
||||||
|
if (g_type_get_qdata (SOUP_TYPE_COOKIE_JAR,
|
||||||
|
g_quark_from_static_string ("midori-has-jar")))
|
||||||
|
{
|
||||||
PAGE_NEW (GTK_STOCK_NETWORK, _("Network"));
|
PAGE_NEW (GTK_STOCK_NETWORK, _("Network"));
|
||||||
FRAME_NEW (_("Network"));
|
FRAME_NEW (_("Network"));
|
||||||
TABLE_NEW (2, 2);
|
TABLE_NEW (4, 2);
|
||||||
label = katze_property_label (settings, "http-proxy");
|
label = katze_property_label (settings, "http-proxy");
|
||||||
INDENTED_ADD (label, 0, 1, 0, 1);
|
INDENTED_ADD (label, 0, 1, 0, 1);
|
||||||
button = katze_property_proxy (settings, "http-proxy", NULL);
|
button = katze_property_proxy (settings, "http-proxy", NULL);
|
||||||
FILLED_ADD (button, 1, 2, 0, 1);
|
FILLED_ADD (button, 1, 2, 0, 1);
|
||||||
label = katze_property_label (settings, "cache-size");
|
label = katze_property_label (settings, "identify-as");
|
||||||
INDENTED_ADD (label, 0, 1, 1, 2);
|
INDENTED_ADD (label, 0, 1, 1, 2);
|
||||||
|
button = katze_property_proxy (settings, "identify-as", NULL);
|
||||||
|
FILLED_ADD (button, 1, 2, 1, 2);
|
||||||
|
label = katze_property_label (settings, "ident-string");
|
||||||
|
INDENTED_ADD (label, 0, 1, 2, 3);
|
||||||
|
entry = katze_property_proxy (settings, "ident-string", NULL);
|
||||||
|
g_signal_connect (settings, "notify::identify-as",
|
||||||
|
G_CALLBACK (midori_preferences_notify_identify_as_cb), entry);
|
||||||
|
midori_preferences_notify_identify_as_cb (settings, NULL, entry);
|
||||||
|
FILLED_ADD (entry, 1, 2, 2, 3);
|
||||||
|
label = katze_property_label (settings, "cache-size");
|
||||||
|
INDENTED_ADD (label, 0, 1, 3, 4);
|
||||||
hbox = gtk_hbox_new (FALSE, 4);
|
hbox = gtk_hbox_new (FALSE, 4);
|
||||||
entry = katze_property_proxy (settings, "cache-size", NULL);
|
entry = katze_property_proxy (settings, "cache-size", NULL);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("MB")),
|
gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("MB")),
|
||||||
FALSE, FALSE, 0);
|
FALSE, FALSE, 0);
|
||||||
FILLED_ADD (hbox, 1, 2, 1, 2);
|
FILLED_ADD (hbox, 1, 2, 3, 4);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Page "Privacy" */
|
/* Page "Privacy" */
|
||||||
PAGE_NEW (GTK_STOCK_INDEX, _("Privacy"));
|
PAGE_NEW (GTK_STOCK_INDEX, _("Privacy"));
|
||||||
#if HAVE_LIBSOUP_2_25_2
|
#if HAVE_LIBSOUP_2_25_2
|
||||||
|
/* If a cookie jar was created, WebKit is using Soup */
|
||||||
|
if (g_type_get_qdata (SOUP_TYPE_COOKIE_JAR,
|
||||||
|
g_quark_from_static_string ("midori-has-jar")))
|
||||||
|
{
|
||||||
FRAME_NEW (_("Web Cookies"));
|
FRAME_NEW (_("Web Cookies"));
|
||||||
TABLE_NEW (3, 2);
|
TABLE_NEW (3, 2);
|
||||||
label = katze_property_label (settings, "accept-cookies");
|
label = katze_property_label (settings, "accept-cookies");
|
||||||
INDENTED_ADD (label, 0, 1, 0, 1);
|
INDENTED_ADD (label, 0, 1, 0, 1);
|
||||||
button = katze_property_proxy (settings, "accept-cookies", NULL);
|
button = katze_property_proxy (settings, "accept-cookies", NULL);
|
||||||
/* If a cookie jar was created, WebKit is using Soup */
|
|
||||||
gtk_widget_set_sensitive (button, g_type_get_qdata (SOUP_TYPE_COOKIE_JAR,
|
|
||||||
g_quark_from_static_string ("midori-has-jar")) != NULL);
|
|
||||||
FILLED_ADD (button, 1, 2, 0, 1);
|
FILLED_ADD (button, 1, 2, 0, 1);
|
||||||
button = katze_property_proxy (settings, "original-cookies-only", "blurb");
|
button = katze_property_proxy (settings, "original-cookies-only", "blurb");
|
||||||
SPANNED_ADD (button, 0, 2, 1, 2);
|
SPANNED_ADD (button, 0, 2, 1, 2);
|
||||||
|
@ -516,13 +543,11 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
|
||||||
INDENTED_ADD (label, 0, 1, 2, 3);
|
INDENTED_ADD (label, 0, 1, 2, 3);
|
||||||
hbox = gtk_hbox_new (FALSE, 4);
|
hbox = gtk_hbox_new (FALSE, 4);
|
||||||
entry = katze_property_proxy (settings, "maximum-cookie-age", NULL);
|
entry = katze_property_proxy (settings, "maximum-cookie-age", NULL);
|
||||||
/* If a cookie jar was created, WebKit is using Soup */
|
|
||||||
gtk_widget_set_sensitive (entry, g_type_get_qdata (SOUP_TYPE_COOKIE_JAR,
|
|
||||||
g_quark_from_static_string ("midori-has-jar")) != NULL);
|
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("days")),
|
gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("days")),
|
||||||
FALSE, FALSE, 0);
|
FALSE, FALSE, 0);
|
||||||
FILLED_ADD (hbox, 1, 2, 2, 3);
|
FILLED_ADD (hbox, 1, 2, 2, 3);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
FRAME_NEW (_("History"));
|
FRAME_NEW (_("History"));
|
||||||
TABLE_NEW (3, 2);
|
TABLE_NEW (3, 2);
|
||||||
|
|
|
@ -16,6 +16,10 @@
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#if HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
struct _MidoriWebSettings
|
struct _MidoriWebSettings
|
||||||
{
|
{
|
||||||
WebKitWebSettings parent_instance;
|
WebKitWebSettings parent_instance;
|
||||||
|
@ -64,9 +68,16 @@ struct _MidoriWebSettings
|
||||||
gboolean remember_last_downloaded_files;
|
gboolean remember_last_downloaded_files;
|
||||||
|
|
||||||
gchar* http_proxy;
|
gchar* http_proxy;
|
||||||
|
MidoriIdentity identify_as;
|
||||||
|
gchar* ident_string;
|
||||||
gint cache_size;
|
gint cache_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _MidoriWebSettingsClass
|
||||||
|
{
|
||||||
|
WebKitWebSettingsClass parent_class;
|
||||||
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (MidoriWebSettings, midori_web_settings, WEBKIT_TYPE_WEB_SETTINGS)
|
G_DEFINE_TYPE (MidoriWebSettings, midori_web_settings, WEBKIT_TYPE_WEB_SETTINGS)
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
@ -118,6 +129,8 @@ enum
|
||||||
PROP_REMEMBER_LAST_DOWNLOADED_FILES,
|
PROP_REMEMBER_LAST_DOWNLOADED_FILES,
|
||||||
|
|
||||||
PROP_HTTP_PROXY,
|
PROP_HTTP_PROXY,
|
||||||
|
PROP_IDENTIFY_AS,
|
||||||
|
PROP_IDENT_STRING,
|
||||||
PROP_CACHE_SIZE
|
PROP_CACHE_SIZE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -150,7 +163,7 @@ midori_preferred_encoding_get_type (void)
|
||||||
{ MIDORI_ENCODING_RUSSIAN, "MIDORI_ENCODING_RUSSIAN", N_("Russian (KOI8-R)") },
|
{ MIDORI_ENCODING_RUSSIAN, "MIDORI_ENCODING_RUSSIAN", N_("Russian (KOI8-R)") },
|
||||||
{ MIDORI_ENCODING_UNICODE, "MIDORI_ENCODING_UNICODE", N_("Unicode (UTF-8)") },
|
{ MIDORI_ENCODING_UNICODE, "MIDORI_ENCODING_UNICODE", N_("Unicode (UTF-8)") },
|
||||||
{ MIDORI_ENCODING_WESTERN, "MIDORI_ENCODING_WESTERN", N_("Western (ISO-8859-1)") },
|
{ MIDORI_ENCODING_WESTERN, "MIDORI_ENCODING_WESTERN", N_("Western (ISO-8859-1)") },
|
||||||
{ MIDORI_ENCODING_WESTERN, "MIDORI_ENCODING_CUSTOM", N_("Custom...") },
|
{ MIDORI_ENCODING_CUSTOM, "MIDORI_ENCODING_CUSTOM", N_("Custom...") },
|
||||||
{ 0, NULL, NULL }
|
{ 0, NULL, NULL }
|
||||||
};
|
};
|
||||||
type = g_enum_register_static ("MidoriPreferredEncoding", values);
|
type = g_enum_register_static ("MidoriPreferredEncoding", values);
|
||||||
|
@ -211,6 +224,25 @@ midori_accept_cookies_get_type (void)
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GType
|
||||||
|
midori_identity_get_type (void)
|
||||||
|
{
|
||||||
|
static GType type = 0;
|
||||||
|
if (!type)
|
||||||
|
{
|
||||||
|
static const GEnumValue values[] = {
|
||||||
|
{ MIDORI_IDENT_MIDORI, "MIDORI_IDENT_MIDORI", N_("Midori") },
|
||||||
|
{ MIDORI_IDENT_SAFARI, "MIDORI_IDENT_SAFARI", N_("Safari") },
|
||||||
|
{ MIDORI_IDENT_FIREFOX, "MIDORI_IDENT_FIREFOX", N_("Firefox") },
|
||||||
|
{ MIDORI_IDENT_EXPLORER, "MIDORI_IDENT_EXPLORER", N_("Internet Explorer") },
|
||||||
|
{ MIDORI_IDENT_CUSTOM, "MIDORI_IDENT_CUSTOM", N_("Custom...") },
|
||||||
|
{ 0, NULL, NULL }
|
||||||
|
};
|
||||||
|
type = g_enum_register_static ("MidoriIdentity", values);
|
||||||
|
}
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_web_settings_finalize (GObject* object);
|
midori_web_settings_finalize (GObject* object);
|
||||||
|
|
||||||
|
@ -538,7 +570,11 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
|
||||||
_("What type of cookies to accept"),
|
_("What type of cookies to accept"),
|
||||||
MIDORI_TYPE_ACCEPT_COOKIES,
|
MIDORI_TYPE_ACCEPT_COOKIES,
|
||||||
MIDORI_ACCEPT_COOKIES_ALL,
|
MIDORI_ACCEPT_COOKIES_ALL,
|
||||||
|
#if HAVE_LIBSOUP
|
||||||
G_PARAM_READWRITE));
|
G_PARAM_READWRITE));
|
||||||
|
#else
|
||||||
|
G_PARAM_READABLE));
|
||||||
|
#endif
|
||||||
|
|
||||||
g_object_class_install_property (gobject_class,
|
g_object_class_install_property (gobject_class,
|
||||||
PROP_ORIGINAL_COOKIES_ONLY,
|
PROP_ORIGINAL_COOKIES_ONLY,
|
||||||
|
@ -605,7 +641,52 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
|
||||||
_("HTTP Proxy"),
|
_("HTTP Proxy"),
|
||||||
_("The proxy used for HTTP connections"),
|
_("The proxy used for HTTP connections"),
|
||||||
NULL,
|
NULL,
|
||||||
|
#if HAVE_LIBSOUP
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
#else
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MidoriWebSettings:identify-as:
|
||||||
|
*
|
||||||
|
* What to identify as to web pages.
|
||||||
|
*
|
||||||
|
* Since: 0.1.2
|
||||||
|
*/
|
||||||
|
g_object_class_install_property (gobject_class,
|
||||||
|
PROP_IDENTIFY_AS,
|
||||||
|
g_param_spec_enum (
|
||||||
|
"identify-as",
|
||||||
|
_("Identify as"),
|
||||||
|
_("What to identify as to web pages"),
|
||||||
|
MIDORI_TYPE_IDENTITY,
|
||||||
|
MIDORI_IDENT_MIDORI,
|
||||||
|
#if HAVE_LIBSOUP
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
#else
|
||||||
|
G_PARAM_READABLE));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MidoriWebSettings:ident-string:
|
||||||
|
*
|
||||||
|
* The browser identification string.
|
||||||
|
*
|
||||||
|
* Since: 0.1.2
|
||||||
|
*/
|
||||||
|
g_object_class_install_property (gobject_class,
|
||||||
|
PROP_IDENT_STRING,
|
||||||
|
g_param_spec_string (
|
||||||
|
"ident-string",
|
||||||
|
_("Identification string"),
|
||||||
|
_("The application identification string"),
|
||||||
|
NULL,
|
||||||
|
#if HAVE_LIBSOUP
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
#else
|
||||||
|
G_PARAM_READABLE));
|
||||||
|
#endif
|
||||||
|
|
||||||
g_object_class_install_property (gobject_class,
|
g_object_class_install_property (gobject_class,
|
||||||
PROP_CACHE_SIZE,
|
PROP_CACHE_SIZE,
|
||||||
|
@ -659,6 +740,69 @@ midori_web_settings_finalize (GObject* object)
|
||||||
G_OBJECT_CLASS (midori_web_settings_parent_class)->finalize (object);
|
G_OBJECT_CLASS (midori_web_settings_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gchar*
|
||||||
|
generate_ident_string (MidoriIdentity identify_as)
|
||||||
|
{
|
||||||
|
const gchar* platform =
|
||||||
|
#ifdef GDK_WINDOWING_X11
|
||||||
|
"X11";
|
||||||
|
#elif defined(GDK_WINDOWING_WIN32)
|
||||||
|
"Windows";
|
||||||
|
#elif defined(GDK_WINDOWING_QUARTZ)
|
||||||
|
"Macintosh";
|
||||||
|
#elif defined(GDK_WINDOWING_DIRECTFB)
|
||||||
|
"DirectFB";
|
||||||
|
#else
|
||||||
|
"Unknown";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const gchar* os =
|
||||||
|
#if defined (HAVE_OSX)
|
||||||
|
/* #if defined (HAVE_X86) */
|
||||||
|
"Intel Mac OS X";
|
||||||
|
/* #else
|
||||||
|
"PPC Mac OS X";
|
||||||
|
#endif */
|
||||||
|
#elif defined (G_OS_UNIX)
|
||||||
|
/* struct utsname name;
|
||||||
|
if (uname (&name) != -1)
|
||||||
|
String::format ("%s %s", name.sysname, name.machine);
|
||||||
|
else
|
||||||
|
"Unknown";*/
|
||||||
|
"Linux";
|
||||||
|
#elif defined (G_OS_WIN32)
|
||||||
|
// FIXME: Windows NT version
|
||||||
|
"Windows";
|
||||||
|
#else
|
||||||
|
"Unknown";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const gchar* appname = "Midori/" PACKAGE_VERSION;
|
||||||
|
|
||||||
|
const gchar* lang = pango_language_to_string ( gtk_get_default_language ());
|
||||||
|
|
||||||
|
switch (identify_as)
|
||||||
|
{
|
||||||
|
case MIDORI_IDENT_MIDORI:
|
||||||
|
return g_strdup_printf ("%s (%s; %s; U; %s) WebKit/532+",
|
||||||
|
appname, platform, os, lang);
|
||||||
|
case MIDORI_IDENT_SAFARI:
|
||||||
|
return g_strdup_printf ("Mozilla/5.0 (%s; U; %s; %s) "
|
||||||
|
"AppleWebKit/532+ (KHTML, like Gecko) Safari/419.3 %s",
|
||||||
|
platform, os, lang, appname);
|
||||||
|
case MIDORI_IDENT_FIREFOX:
|
||||||
|
return g_strdup_printf ("Mozilla/5.0 (%s; U; %s; %s; rv:1.8.1) "
|
||||||
|
"Gecko/20061010 Firefox/2.0 %s",
|
||||||
|
platform, os, lang, appname);
|
||||||
|
case MIDORI_IDENT_EXPLORER:
|
||||||
|
return g_strdup_printf ("Mozilla/4.0 (compatible; "
|
||||||
|
"MSIE 6.0; Windows NT 5.1; %s) %s",
|
||||||
|
lang, appname);
|
||||||
|
default:
|
||||||
|
return g_strdup_printf ("%s", appname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_web_settings_set_property (GObject* object,
|
midori_web_settings_set_property (GObject* object,
|
||||||
guint prop_id,
|
guint prop_id,
|
||||||
|
@ -807,6 +951,18 @@ midori_web_settings_set_property (GObject* object,
|
||||||
case PROP_HTTP_PROXY:
|
case PROP_HTTP_PROXY:
|
||||||
katze_assign (web_settings->http_proxy, g_value_dup_string (value));
|
katze_assign (web_settings->http_proxy, g_value_dup_string (value));
|
||||||
break;
|
break;
|
||||||
|
case PROP_IDENTIFY_AS:
|
||||||
|
web_settings->identify_as = g_value_get_enum (value);
|
||||||
|
if (web_settings->identify_as != MIDORI_IDENT_CUSTOM)
|
||||||
|
{
|
||||||
|
gchar* string = generate_ident_string (web_settings->identify_as);
|
||||||
|
g_object_set (object, "ident-string", string, NULL);
|
||||||
|
g_free (string);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PROP_IDENT_STRING:
|
||||||
|
katze_assign (web_settings->ident_string, g_value_dup_string (value));
|
||||||
|
break;
|
||||||
case PROP_CACHE_SIZE:
|
case PROP_CACHE_SIZE:
|
||||||
web_settings->cache_size = g_value_get_int (value);
|
web_settings->cache_size = g_value_get_int (value);
|
||||||
break;
|
break;
|
||||||
|
@ -947,6 +1103,12 @@ midori_web_settings_get_property (GObject* object,
|
||||||
case PROP_HTTP_PROXY:
|
case PROP_HTTP_PROXY:
|
||||||
g_value_set_string (value, web_settings->http_proxy);
|
g_value_set_string (value, web_settings->http_proxy);
|
||||||
break;
|
break;
|
||||||
|
case PROP_IDENTIFY_AS:
|
||||||
|
g_value_set_enum (value, web_settings->identify_as);
|
||||||
|
break;
|
||||||
|
case PROP_IDENT_STRING:
|
||||||
|
g_value_set_string (value, web_settings->ident_string);
|
||||||
|
break;
|
||||||
case PROP_CACHE_SIZE:
|
case PROP_CACHE_SIZE:
|
||||||
g_value_set_int (value, web_settings->cache_size);
|
g_value_set_int (value, web_settings->cache_size);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -104,10 +104,20 @@ midori_accept_cookies_get_type (void) G_GNUC_CONST;
|
||||||
#define MIDORI_TYPE_ACCEPT_COOKIES \
|
#define MIDORI_TYPE_ACCEPT_COOKIES \
|
||||||
(midori_accept_cookies_get_type ())
|
(midori_accept_cookies_get_type ())
|
||||||
|
|
||||||
struct _MidoriWebSettingsClass
|
typedef enum
|
||||||
{
|
{
|
||||||
WebKitWebSettingsClass parent_class;
|
MIDORI_IDENT_MIDORI,
|
||||||
};
|
MIDORI_IDENT_SAFARI,
|
||||||
|
MIDORI_IDENT_FIREFOX,
|
||||||
|
MIDORI_IDENT_EXPLORER,
|
||||||
|
MIDORI_IDENT_CUSTOM
|
||||||
|
} MidoriIdentity;
|
||||||
|
|
||||||
|
GType
|
||||||
|
midori_identity_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
#define MIDORI_TYPE_IDENTITY \
|
||||||
|
(midori_identity_get_type ())
|
||||||
|
|
||||||
GType
|
GType
|
||||||
midori_web_settings_get_type (void);
|
midori_web_settings_get_type (void);
|
||||||
|
|
Loading…
Reference in a new issue