AU: Don't use network on expensive connection types
Specifically:
- FlimFlam proxy class to query the current network status and find
out if it's expensive.
- Dbus Interface, so dbus can be mocked.
- Libcurl change to redirect the URL if we are on an expensive
connection. This may seem hacky, but the reason I avoided retooling
the whole class is that we may decide that some network usage is
okay on pricy connections. Perhaps it's okay to throttle. So, for
now this is a more minimal change.
BUG=chromium-os:2397
TEST=Unit tests, tested that flimflam proxy works on the device.
Review URL: http://codereview.chromium.org/4029002
Change-Id: Ic4dcde1ca863bda890bc46a55c552e2b32d9433d
diff --git a/SConstruct b/SConstruct
index 1a73466..bd2a5d8 100644
--- a/SConstruct
+++ b/SConstruct
@@ -248,6 +248,7 @@
filesystem_copier_action.cc
filesystem_iterator.cc
file_writer.cc
+ flimflam_proxy.cc
graph_utils.cc
gzip.cc
libcurl_http_fetcher.cc
@@ -288,6 +289,7 @@
file_writer_unittest.cc
filesystem_copier_action_unittest.cc
filesystem_iterator_unittest.cc
+ flimflam_proxy_unittest.cc
graph_utils_unittest.cc
http_fetcher_unittest.cc
mock_http_fetcher.cc