[Dextrose] [PATCH 51/54] au#687: Add network proxy config extension to CP

Aleksey Lim alsroot at activitycentral.org
Sat Nov 19 17:06:06 EST 2011

On Sat, Nov 19, 2011 at 10:25:02PM +0100, Sascha Silbe wrote:
> Excerpts from Anish Mangal's message of 2011-11-08 19:18:02 +0100:
> > This work has been done and maintained by:
> > 
> > Aleksey Lim <alsroot at activitycentral.org>
> > 
> > here:
> > 
> > http://git.sugarlabs.org/alsroot/proxy_cp
> This is rather complicated, both code- and UI-wise. Let's check where we
> can simplify:
> 1. Direct connection is equivalent to configuring no proxy at all.
> 2. Does anybody seriously use different proxies for HTTP, HTTPS and/or
>    FTP?
> 3. Does OLPC AU need SOCKS proxies? On a non-standard port?
> 4. The example given for automatic configuration
>    ("http://wpad.ntschools.net/wpad.dat") suggests WPAD is supported. We
>    should use that (by not setting autoconfig_url [1]) instead of
>    letting the user enter proxy configuration settings manually. Should
>    be the default, i.e. the behaviour in absence of manual configuration.
> 5. Is authentication support required?
> Ideally the proxy settings would be bound to a NetworkManager connection
> (and even be managed by NM), but as that won't happen in the short term
> users will want a way to temporarily disable the proxy settings (e.g. if
> they're at home), in contrast to #1/#4.
> Similarly, I don't think what most users want is a list of host names to
> bypass the proxy for (what you call "Ignore Host List"), but rather have
> it connect to hosts on the same LAN directly. Unfortunately Gnome (and
> thus the gconf settings we're using) doesn't seem to support that.

This CP section is a trying to exactly reimplement the UI in gnome/mozilla
proxy configurator, i.e., would be useful to not invent new users'
experince in that case.

> [configure.ac, data/icons/Makefile.am, extensions/cpsection/Makefile.am]
> Please keep the lists sorted.
> [data/icons/module-proxy.svg]
> Interesting icon for proxy settings. But I don't have any idea myself
> and the gnome-control-center choice of icon for the proxy settings isn't
> really any better.
> What's the license for this file and where did it come from? There are
> Creative Commons tags in that file, but none that give a source, author
> or license.

initially I didn't added any icons to Feature/ implementation
(btw, the source of this feature is exactly
i.e., might be useful to exclude icons the the patch at all and ask
designers, who work on that last time, to implement it.
> [extensions/cpsection/proxy/__init__.py]
> [...]
> > +CLASS = 'Proxy'
> > +ICON = 'module-proxy'
> > +TITLE = _('Proxy')
> I wonder whether this would be better suited as an additional "page" in
> the existing "Network" control panel section. We should ask Gary for
> advice.

The initial reason was exactly because there is a special proxy UI in
gnome/mozilla. At least, having huge Network dialog might be not useful
and having tabs in these dialogs might be also an overkill (two levels of
entities instead of only one, CP page).

> > diff --git a/extensions/cpsection/proxy/model.py b/extensions/cpsection/proxy/model.py
> > new file mode 100644
> > index 0000000..c88b116
> > --- /dev/null
> > +++ b/extensions/cpsection/proxy/model.py
> > @@ -0,0 +1,14 @@
> > +# Copyright (C) 2011, Aleksey Lim
> > +#
> > +# This program is free software: you can redistribute it and/or modify
> > +# it under the terms of the GNU General Public License as published by
> > +# the Free Software Foundation, either version 3 of the License, or
> > +# (at your option) any later version.
> > +#
> > +# This program is distributed in the hope that it will be useful,
> > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > +# GNU General Public License for more details.
> > +#
> > +# You should have received a copy of the GNU General Public License
> > +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> [no further content in this file]
> If you add a real model file, you can get rid of some of your code, e.g.
> the undo stuff. jarabe.controlpanel.gui.ModelWrapper has generic undo
> support that gets used if you follow the Control Panel programming
> conventions. I don't really like the way it does things and there's a
> lot we could do better, but we should at least make use of what we have.

I didn't check if Shell won't fail for absent model files. If it won't,
yes, would be useful to get rid of this file at all.

> [extensions/cpsection/proxy/view.py]
> [...]
> > +def _register_bool_key(key, widget, reverse=False):
> [...]
> > +def _register_string_key(key, widget):
> [...]
> > +def _register_int_key(key, widget):
> [...]
> This looks like it could be simplified by using a mapping (dictionary)
> from type to constants etc..

It will make code more curly and less unified (there are also funcitons
like _register_selector_key)

> Bug: On first usage, switching to "Manual proxy configuration" did not
> enable the settings grouped below it. The following Tracebacks appeared
> in shell.log:
> === Begin ===
> Traceback (most recent call last):
>   File "/home/sascha.silbe/sugar-jhbuild/install/share/sugar/extensions/cpsection/proxy/view.py", line 363, in signal_cb
>     value = get_cb()
> NameError: free variable 'get_cb' referenced before assignment in enclosing scope
> Traceback (most recent call last):
>   File "/home/sascha.silbe/sugar-jhbuild/install/share/sugar/extensions/cpsection/proxy/view.py", line 363, in signal_cb
>     value = get_cb()
> NameError: free variable 'get_cb' referenced before assignment in enclosing scope
> Traceback (most recent call last):
>   File "/home/sascha.silbe/sugar-jhbuild/install/share/sugar/extensions/cpsection/proxy/view.py", line 363, in signal_cb
>     value = get_cb()
> NameError: free variable 'get_cb' referenced before assignment in enclosing scope
> === End ===

hmm, it is something weird...
get_cb is declared as an argument of the top function and python somehow
manged to forget about it... it needs investigation.


More information about the Dextrose mailing list