autoupdate: Don't hardcode 9999

Also, use int comparison for version parts.

BUG=chromium:771236
TEST=None

Change-Id: I13bc7729f3a6b8a7f2fc3260a0f6b30a770217e0
Reviewed-on: https://chromium-review.googlesource.com/700815
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Tested-by: Paul Hobbs <phobbs@google.com>
diff --git a/autoupdate.py b/autoupdate.py
index 552b5c2..3fb9ff4 100644
--- a/autoupdate.py
+++ b/autoupdate.py
@@ -262,7 +262,8 @@
     parts = latest_version.split('-')
     # If we can't get a version number from the directory, default to a high
     # number to allow the update to happen
-    return parts[1] if len(parts) == 3 else "9999.0.0"
+    # TODO(phobbs) refactor this.
+    return parts[1] if len(parts) == 3 else "999999.0.0"
 
   @staticmethod
   def _CanUpdate(client_version, latest_version):
@@ -272,8 +273,14 @@
     client_tokens = client_version.replace('_', '').split('.')
     latest_tokens = latest_version.replace('_', '').split('.')
 
+    def _SafeInt(part):
+      try:
+        return int(part)
+      except ValueError:
+        return part
+
     if len(latest_tokens) == len(client_tokens) == 3:
-      return latest_tokens > client_tokens
+      return map(_SafeInt, latest_tokens) > map(_SafeInt, client_tokens)
     else:
       # If the directory name isn't a version number, let it pass.
       return True