summaryrefslogtreecommitdiff
path: root/core/app.vala
diff options
context:
space:
mode:
Diffstat (limited to 'core/app.vala')
-rw-r--r--core/app.vala37
1 files changed, 37 insertions, 0 deletions
diff --git a/core/app.vala b/core/app.vala
index 454b1753..7c3e8bd4 100644
--- a/core/app.vala
+++ b/core/app.vala
@@ -133,6 +133,16 @@ namespace Midori {
context.get_cookie_manager ().set_accept_policy (
settings.first_party_cookies_only ? WebKit.CookieAcceptPolicy.NO_THIRD_PARTY : WebKit.CookieAcceptPolicy.ALWAYS);
});
+ apply_proxy_settings (settings, context);
+ settings.notify["proxy-type"].connect ((pspec) => {
+ apply_proxy_settings (settings, context);
+ });
+ settings.notify["http-proxy"].connect ((pspec) => {
+ apply_proxy_settings (settings, context);
+ });
+ settings.notify["proxy-port"].connect ((pspec) => {
+ apply_proxy_settings (settings, context);
+ });
add_action_entries (actions, this);
@@ -239,6 +249,23 @@ namespace Midori {
request.unref ();
}
+ void apply_proxy_settings (CoreSettings settings, WebKit.WebContext context) {
+ switch (settings.proxy_type) {
+ case ProxyType.AUTOMATIC:
+ context.set_network_proxy_settings (WebKit.NetworkProxyMode.DEFAULT, null);
+ break;
+ case ProxyType.HTTP:
+ string proxy_uri = "%s:%d".printf (settings.http_proxy, settings.http_proxy_port);
+ context.set_network_proxy_settings (
+ WebKit.NetworkProxyMode.CUSTOM,
+ new WebKit.NetworkProxySettings (proxy_uri, null));
+ break;
+ case ProxyType.NONE:
+ context.set_network_proxy_settings (WebKit.NetworkProxyMode.NO_PROXY, null);
+ break;
+ }
+ }
+
internal WebKit.WebContext ephemeral_context () {
var context = new WebKit.WebContext.ephemeral ();
context.register_uri_scheme ("internal", (request) => {
@@ -270,6 +297,16 @@ namespace Midori {
context.get_cookie_manager ().set_accept_policy (
settings.first_party_cookies_only ? WebKit.CookieAcceptPolicy.NO_THIRD_PARTY : WebKit.CookieAcceptPolicy.ALWAYS);
});
+ apply_proxy_settings (settings, context);
+ settings.notify["proxy-type"].connect ((pspec) => {
+ apply_proxy_settings (settings, context);
+ });
+ settings.notify["http-proxy"].connect ((pspec) => {
+ apply_proxy_settings (settings, context);
+ });
+ settings.notify["proxy-port"].connect ((pspec) => {
+ apply_proxy_settings (settings, context);
+ });
return context;
}