using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Diagnostics; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Net;   namespace ChromiumUpdate {     public partial class Form1 : Form     {         public const string VERSION = "0.2 BETA";         WebClient webClient = new WebClient();         private String latestver = "";           public Form1()         {             InitializeComponent();         }           private void button1_Click(object sender, EventArgs e)         {             webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);             webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);             String temp = "http://commondatastorage.googleapis.com/chromium-browser-snapshots/Win/" + latestver + "/mini_installer.exe";             webClient.DownloadFileAsync(new Uri(temp), @"./mini_installer.exe");             button1.Text = "Download in progress...";             button1.Enabled = false;             button2.Enabled = false;         }           private void Form1_Load(object sender, EventArgs e)         {             StringBuilder sb = new StringBuilder();             byte[] buf = new byte[8192];             HttpWebRequest request = (HttpWebRequest)                 WebRequest.Create("http://commondatastorage.googleapis.com/chromium-browser-snapshots/Win/LAST_CHANGE");             HttpWebResponse response = (HttpWebResponse)                 request.GetResponse();             Stream resStream = response.GetResponseStream();               string tempString = null;             int count = 0;               do             {                 count = resStream.Read(buf, 0, buf.Length);                   if (count != 0)                 {                     tempString = Encoding.ASCII.GetString(buf, 0, count);                     sb.Append(tempString);                 }             }             while (count > 0);             latestver = sb.ToString();         }           private void button2_Click(object sender, EventArgs e)         {             webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);             webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);             String temp = "http://commondatastorage.googleapis.com/chromium-browser-snapshots/Win/" + textBox1.Text + "/mini_installer.exe";             try             {                 webClient.DownloadFileAsync(new Uri(temp), @"./mini_installer.exe");                 button1.Enabled = false;                 button2.Enabled = false;                 button2.Text = "Download in progress...";             }             catch (Exception Z)             {                 MessageBox.Show(textBox1.Text+" is not a valid Chromium build number.");             }         }         private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)         {             progressBar1.Value = e.ProgressPercentage;         }         private void Completed(object sender, AsyncCompletedEventArgs e)         {             MessageBox.Show("Download completed!");             button1.Enabled = true;             button2.Enabled = true;             Process.Start(@"mini_installer.exe");         }             } }