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
- 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ınmanifest.json
dosyasında.
Güncelleme manifesti XML dosyası, birden fazla uzantı ekleyerek birden çok uzantı hakkında bilgi içerebilir.
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
<?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.