libproxy as external dependency
- From: Nathaniel McCallum <nathaniel natemccallum com>
- To: desktop-devel-list gnome org
- Subject: libproxy as external dependency
- Date: Tue, 21 Oct 2008 10:30:37 -0400
Hi,
I'd like to propose libproxy (LGPL 2.1+;
http://code.google.com/p/libproxy/) as a blessed external dependency for
GNOME 2.26. libproxy is currently used by vlc and neon and libsoup and
webkit are considering adopting it.
libproxy is a library for handling all aspects of proxy configuration
and evaluation. Currently, GNOME stores proxy configuration in gconf
and expects each application to read settings from there and evaluate
them in some manner (i.e. exceptions, WPAD, PAC). This doesn't really
scale because things like exceptions, WPAD and PAC are non-trivial,
which leads to inconsistent and impartial implementations.
For instance, if a user specifies to use "auto-configure" and does not
specify a PAC file, auto-configure does not work for any GNOME
application (that I know of). Even if a PAC file is specified, only
those applications that provide javascript will actually use it.
Applications developers really only have one question when it comes to
proxies: Given a network resource, how do I reach it?
libproxy answers this question in a simple, consistent, performant and
spec-compliant way. There are currently three functions in the (stable)
external API. Two of these functions instantantiate/destantiate the a
ProxyFactory object. This object provides caching for WPAD/PAC,
allowing for increased speed when dealing with these mechanisms. The
third function is the get_proxies(char *url) function. Just call the
function for each url that you want to fetch and you are guaranteed a
spec compliant proxy configuration evaluation. Version 0.3, to be
released before GNOME 2.26, will also contain two more functions for
getting and setting proxy credentials.
Currently we support using mozjs or webkit (javascriptcore), detectable
at runtime. We also can determine proxy information on a per-session
basis. In other words, if you run a GNOME app in KDE (and it uses
libproxy) it will respect KDE's proxy settings (and vice versa).
libproxy has no external dependencies in its core. Support for GNOME,
KDE, NetworkManager, WebKit, Firefox/mozjs, etc are implemented via plugins.
For more detailed information, please see the website listed above. I
am also glad to answer any questions you might have.
Nathaniel
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]