AU: Full proxy support

This CL Introduces a new proxy resolver that queries Chrome browser
for all URLs. This means the updater now works with Proxy
AutoConfiguration (PAC) files and automatic proxy detection.

BUG=chromium-os:9478
TEST=performed update, unittests

Review URL: http://codereview.chromium.org/6594025

Change-Id: I2c169aec06109e3eabc4011e0b536685dfd13f79
diff --git a/mock_dbus_interface.h b/mock_dbus_interface.h
index c817109..781b3f3 100644
--- a/mock_dbus_interface.h
+++ b/mock_dbus_interface.h
@@ -37,19 +37,70 @@
                                     GType var_arg3,
                                     GType var_arg4, gchar** var_arg5,
                                     GType var_arg6, GArray** var_arg7));
+  MOCK_METHOD10(ProxyCall, gboolean(DBusGProxy* proxy,
+                                    const char* method,
+                                    GError** error,
+                                    GType var_arg1, const char* var_arg2,
+                                    GType var_arg3, const char* var_arg4,
+                                    GType var_arg5, const char* var_arg6,
+                                    GType var_arg7));
+
+  MOCK_METHOD1(ConnectionGetConnection, DBusConnection*(DBusGConnection* gbus));
+
+  MOCK_METHOD3(DbusBusAddMatch, void(DBusConnection* connection,
+                                     const char* rule,
+                                     DBusError* error));
+
+  MOCK_METHOD4(DbusConnectionAddFilter, dbus_bool_t(
+      DBusConnection* connection,
+      DBusHandleMessageFunction function,
+      void* user_data,
+      DBusFreeFunction free_data_function));
+
+  MOCK_METHOD3(DbusConnectionRemoveFilter, void(
+      DBusConnection* connection,
+      DBusHandleMessageFunction function,
+      void* user_data));
+
+  MOCK_METHOD3(DbusMessageIsSignal, dbus_bool_t(DBusMessage* message,
+                                                const char* interface,
+                                                const char* signal_name));
+
+  MOCK_METHOD9(DbusMessageGetArgs, dbus_bool_t(
+      DBusMessage* message,
+      DBusError* error,
+      GType var_arg1, char** var_arg2,
+      GType var_arg3, char** var_arg4,
+      GType var_arg5, char** var_arg6,
+      GType var_arg7));
 
   // Since gmock only supports mocking functions up to 10 args, we
   // take the 11-arg function we'd like to mock, drop the last arg
   // and call the 10-arg version. Dropping the last arg isn't ideal,
   // but this is a lot better than nothing.
   gboolean ProxyCall(DBusGProxy* proxy,
-                       const char* method,
-                       GError** error,
-                       GType var_arg1, const char* var_arg2,
-                       GType var_arg3,
-                       GType var_arg4, gchar** var_arg5,
-                       GType var_arg6, GArray** var_arg7,
-                       GType var_arg8) {
+                     const char* method,
+                     GError** error,
+                     GType var_arg1, const char* var_arg2,
+                     GType var_arg3,
+                     GType var_arg4, gchar** var_arg5,
+                     GType var_arg6, GArray** var_arg7,
+                     GType var_arg8) {
+    return ProxyCall(proxy,
+                     method,
+                     error,
+                     var_arg1, var_arg2,
+                     var_arg3,
+                     var_arg4, var_arg5,
+                     var_arg6, var_arg7);
+  }
+  gboolean ProxyCall(DBusGProxy* proxy,
+                     const char* method,
+                     GError** error,
+                     GType var_arg1, const char* var_arg2,
+                     GType var_arg3, const char* var_arg4,
+                     GType var_arg5, const char* var_arg6,
+                     GType var_arg7, GType var_arg8) {
     return ProxyCall(proxy,
                      method,
                      error,