Google Chrome использует омаху для обновления клиентов. Протокол описан здесь: http://omaha.googlecode.com/svn/wiki/cup.html. Одна вещь, которую вы должны заметить, заключается в том, что Google Chrome автоматически загружает обновление на ваш компьютер, а затем уведомляет (с помощью значка в меню инструмента). Если вы не принудительно проверите проверку, открыв диалоговое окно about (в Windows).
Как вы заметили, Chrome GUID равен {8A69D345-D564-463c-AFF1-A69D9E530F96}
Лучший способ узнать, как обновляется Google Chrome, - проверить общедоступный исходный код. Google просто определяет их версию Chrome в Chromium.
Google Chrome Code
Базовый класс, где происходят все обновления, находится в UpgradeDetector , он в основном проверяет наличие обновлений каждые 1 час для канала разработчика и один раз в день для всех других каналов и сборок (стабильный / бета-версия) , Chromium может выполнять запланированные события с помощью Tasks, в этом случае он называется DetectUpgradeTask , который проверяет наличие определенного BrowserDistribution :: GetSpecificDistribution . Существует много браузерных дистрибутивов, для Windows он называется GoogleChromeDistribution , который отвечает за выяснение того, какую версию необходимо обновить ..
Так почему я все это говорю, Google Chrome просто запрашивает настройки реестра и локальные файлы, чтобы выяснить, существует ли новое обновление. UpgradeDetector
просто сравнивает распределения, если они одинаковы. Подразумевается, что Омаха выполняет весь механизм обновления. И лучшая часть, чтобы выяснить, что делает Омаха, это взглянуть на их протокол обновления Омахи .
Протокол Омахи
Из-за быстрого взгляда на протокол, ваш подход правильный, но вы должны выяснить открытый ключ. В этом случае w
, который отличается для каждого запроса . Подробнее об этом можно прочитать в «Протоколе наблюдений» в протоколе обновления омахи . Это делает это для безопасной проверки обновлений загрузки, и они делают это для защиты связи. Они хотят, чтобы соединение, которое проверяет наличие обновлений, было подлинным и свежим, поэтому злоумышленник не может заменить или изменить сообщение, а также не заставить клиента обновить уязвимую версию.
Так что теперь
Это не просто запрос к серверу выполнить проверку обновлений. Клиентский протокол Omaha предоставляет альтернативу SSL для проверки обновлений и выполняет запросы клиент-сервер, чтобы определить, является ли это допустимым соединением. Они делают все это, чтобы защитить общение, как объяснено ранее.
К сожалению, я не думаю, что есть HTML-способ «расширения Chrome», если вы не реализуете это рукопожатие самостоятельно, используя NPAPI. Не принимайте мои слова как должное, я могу быть совершенно неправ :) Если вы не можете выполнять рукопожатие в течение XHR-запросов.
Поскольку вы хотите проверить, был ли Chrome обновлен и не установлен, вы должны убедиться, что был загружен новый дистрибутив, как описано выше в коде GoogleChromeDistribution , который определенно требует NPAPI для чтения реестра.