update_engine: Migrate update_engine_client to chrome DBus bindings.

chromeos-dbus-bindings now generates the proxy inteface that we can use
to interact with update_engine DBus daemon. This CL migrates
update_engine_client to use this proxy insterface instead of dbus-glib,
removing all glib dependencies from update_engine_client.

There's a small functionallity change in the --follow flag. With this patch,
instead of polling the status every 5 seconds, we use the signals sent by
update_engine (about once a second) to monitor the update status.

BUG=chromium:419827
TEST=deployed and tested manually most flags of update_engine_client and its interaction with update_engine. Specifically, the blocking functionality was also tested.

Change-Id: Id27922cb1cdcef750d623ce4f816fbc5ecbc2354
Reviewed-on: https://chromium-review.googlesource.com/280878
Trybot-Ready: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/update_engine.gyp b/update_engine.gyp
index 17cd718..e9e5a63 100644
--- a/update_engine.gyp
+++ b/update_engine.gyp
@@ -60,19 +60,6 @@
     },
     # D-Bus glib bindings.
     {
-      'target_name': 'update_engine-dbus-client',
-      'type': 'none',
-      'variables': {
-        'dbus_glib_type': 'client',
-        'dbus_glib_out_dir': 'include/update_engine',
-        'dbus_glib_prefix': 'update_engine_service',
-      },
-      'sources': [
-        'dbus_bindings/org.chromium.UpdateEngineInterface.xml',
-      ],
-      'includes': ['../common-mk/dbus_glib.gypi'],
-    },
-    {
       'target_name': 'update_engine-dbus-server',
       'type': 'none',
       'variables': {
@@ -216,15 +203,8 @@
     {
       'target_name': 'update_engine_client',
       'type': 'executable',
-      'dependencies': [
-        'update_engine-dbus-client',
-      ],
       'variables': {
         'exported_deps': [
-          'dbus-1',
-          'dbus-glib-1',
-          'glib-2.0',
-          'gthread-2.0',
           'libchrome-<(libbase_ver)',
           'libchromeos-<(libbase_ver)',
         ],
@@ -238,8 +218,20 @@
         },
       },
       'sources': [
-        'glib_utils.cc',
         'update_engine_client.cc',
+      ],
+      'actions': [
+        {
+          'action_name': 'update_engine-dbus-proxies',
+          'variables': {
+            'dbus_service_config': 'dbus_bindings/dbus-service-config.json',
+            'proxy_output_file': 'include/update_engine/dbus_proxies.h'
+          },
+          'sources': [
+            'dbus_bindings/org.chromium.UpdateEngineInterface.xml',
+          ],
+          'includes': ['../common-mk/generate-dbus-proxies.gypi'],
+        },
       ]
     },
     # server-side code. This is used for delta_generator and unittests but not