Otomatik güncelleme

Uzantıların ve uygulamaların, Google Chrome'un kendisiyle aynı nedenlerden dolayı otomatik olarak güncellenmesini isteriz: hata ve güvenlik düzeltmelerini dahil etmek, yeni özellikler veya performans iyileştirmeleri eklemek ve çok kolaylaşır.

Chrome Geliştirici Kontrol Paneli'ni kullanarak yayınlarsanız bu sayfayı yoksaymalısınız. Chrome Web Önizlemeyi geçen mağaza gönderimleri, uzantının Chrome Web Mağazası öğe listesinde otomatik olarak kullanıma sunulur ve son kullanıcılara dağıtılır.

Bir CRX dosyasını bir web sunucusunda barındırıyorsanız ve bu dosyayı yönetilen sunucuya aktarmak için kurumsal politikalar kullanıyorsanız merak ediyorsanız okumaya devam edin. Ayrıca Barındırma ve Paketleme bölümlerini de okumalısınız.

Önceden mağaza dışı uzantılar desteklendiğinde, yerel ikili programlar ve uzantının kilitlenme adımında güncellenmesi gerekir. Bununla birlikte, Chrome Web Mağazası'nda barındırılan uzantılar Geliştiricilerin kontrol edemediği Chrome güncelleme mekanizması aracılığıyla güncellenir. Uzantı geliştiricileri, yerel ikili programa bağımlılığı olan uzantıları güncellerken dikkatli olun (örneğin, NPAPI kullanan eski uzantılar).

Genel Bakış

  • Manifest, "update_url" içerebilir için bir konuma işaret eder.
  • Bir güncelleme kontrolüyle döndürülen içerik, en son güncellemeleri listeleyen güncelleme manifesti XML dokümanıdır: sürümünü kullanabilirsiniz.

Tarayıcı, birkaç saatte bir yüklü uzantıların veya uygulamaların bir güncelleme URL'si olup olmadığını kontrol eder. Örneğin, her biri, bir güncelleme manifest XML dosyası arayan URL'ye bir istek gönderir. Güncelleme manifest'inde yüklü olandan daha yeni bir sürümden bahsediliyor. yeni sürümü yükler. Manuel güncellemelerde olduğu gibi, yeni .crx dosyası da aynı özel anahtarı kullanın.

URL'yi güncelle

Kendi uzantınızı veya uygulamanızı barındırıyorsanız "update_url" eklemeniz gerekir alanına manifest.json dosyasını şu şekilde değiştirin:

{
  "name": "My extension",
  ...
  "update_url": "http://myhost.com/mytestextension/updates.xml",
  ...
}

Manifest güncelleme

Sunucu tarafından döndürülen güncelleme manifesti, aşağıdaki gibi görünen bir XML dokümanı olmalıdır (vurgular, değiştirmeniz gereken bölümleri gösterir):

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' />
  </app>
</gupdate>

Bu XML biçimi, Google'ın güncelleme altyapısı olan Omaha tarafından kullanılan biçimden alınmıştır. Görüntüleyin http://code.google.com/p/omaha/ adresini ziyaret edebilirsiniz. Uzantı sistemi güncelleme manifestinin ve öğeleri için özellikleri:

appid

Aşağıdaki gibi ortak anahtarın karmasına göre oluşturulan uzantı veya uygulama kimliği: Paketleme. Bir uzantının veya Chrome uygulamasının kimliğini Uzantılar sayfasına giderek bulabilirsiniz (chrome://extensions).

Ancak barındırılan uygulamalar, Uzantılar sayfasında listelenmez. Herhangi bir uygulamanın kimliğini şu adımları uygulayın:

  • Uygulamayı açın. Bunu, Yeni Sekme sayfasındaki simgesini tıklayarak yapabilirsiniz.
  • JavaScript konsolunu açın. Bunu, İngiliz anahtarı simgesini tıklayıp Araçlar > JavaScript Konsolu.
  • JavaScript konsoluna şu ifadeyi girin: chrome.app.getDetails().id. İlgili içeriği oluşturmak için kullanılan konsolu, uygulama kimliğini tırnak içine alınmış bir dize olarak gösterir.
kod tabanı

.crx dosyasının URL'si.

sürüm

İstemci tarafından.crx codebase. Bu değer, "version" değeriyle eşleşmelidir. .crx dosyasının manifest.json dosyasında.

Güncelleme manifesti XML dosyası, birden fazla uzantı ekleyerek birden çok uzantı hakkında bilgi içerebilir. öğeleri.

Test

Varsayılan güncelleme denetimi sıklığı birkaç saattir, ancak Uzantılar sayfasının Uzantıları şimdi güncelleyin düğmesi.

Gelişmiş kullanım: istek parametreleri

Temel otomatik güncelleme mekanizması, sunucu tarafında çalışan bir öğeyi bir statik XML dosyasını Apache gibi herhangi bir düz web sunucusuna yüklemek ve XML dosyasını yayınladığınız sırada güncellemek uzantılarınızın yeni sürümlerini kullanabilirsiniz.

Daha ileri düzey geliştiriciler, uzantı kimliğini ve sürümünü belirtmek için güncelleme manifesti isteğinde bulunun. Daha sonra aynı bunun yerine dinamik sunucu tarafı kodu çalıştıran bir URL'ye işaret ederek tüm uzantıları için URL'yi güncelleyin olabilir.

İstek parametrelerinin biçimi şu şekildedir:

?x=_<extension_data>_

Burada _<extension_data>_, şu biçimdeki URL kodlamalı bir dizedir:

_id=<id>_&v=_<version>_

Örneğin, her ikisi de aynı güncelleme URL'sine yönlendiren iki uzantınız olduğunu varsayalım (http://test.com/extension_updates.php):

  • Uzantı 1
    • Kimlik: "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    • Sürüm: "1.1"
  • Uzantı 2
    • Kimlik: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
    • Sürüm: "0.4"

Her bir uzantıyı tek tek güncelleme isteği şöyle olur:

  • http://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1
  • http://test.com/extension_updates.php?x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4

Her benzersiz güncelleme URL'si için tek bir istekte birden çok uzantı listelenebilir. Yukarıdakiler için Örneğin, kullanıcıda uzantıların her ikisi de yüklüyse bu iki istek tek bir tekli istek:

http://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1&x=id%3Dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%26v%3D0.4

Aynı güncelleme URL'sini kullanan yüklü uzantıların sayısı bir GET isteğine karşılık gelecek kadar fazlaysa URL çok uzun (2000 veya daha fazla karakterden fazlası), güncelleme kontrolü gerekir.

Gelişmiş kullanım: minimum tarayıcı sürümü

Uzantılar sistemine daha fazla API ekledikçe, güncellenmiş bir bir uzantı veya uygulamanın yalnızca tarayıcının yeni sürümleriyle çalışan yeni sürümleridir. Google'da Chrome'un kendisi otomatik olarak güncellenir. Kullanıcı tabanının çoğunun yeni sürüme geçmesi birkaç gün sürebilir. belirtilen yeni sürüme güncellenir. Belirli bir güncellemenin yalnızca Google Chrome'da geçerli olmasını sağlamak için veya daha yüksek bir sürüm kullanıyorsanız "prodversionmin" özelliğini öğesini eklemeniz gerekir. Örneğin:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/mte_v2.crx' version='2.0' prodversionmin='3.0.193.0'/>
  </app>
</gupdate>

Bu, yalnızca Google Chrome çalıştıran kullanıcıların sürüm 2'ye otomatik olarak güncelleme yapmasını sağlar. 3.0.193.0 veya üzeri.