Linux için kendi kendine barındırıcı

Linux, Chrome kullanıcılarının Chrome Web Mağazası. Bu makalede crx paketinin nasıl paketleneceği, barındırılacağı ve güncelleneceği açıklanmaktadır. dosyalar içeren bir web sunucusudur. Yalnızca bir uzantı veya tema dağıtıyorsanız Chrome Web Mağazası'ndan Web Mağazası barındırma güncelleme hakkında daha fazla bilgi edinin.

Paket

Uzantılar ve temalar .crx dosyaları olarak sunulur. Chrome Geliştirici aracılığıyla yüklerken Kontrol Paneli'nde, kontrol paneli crx dosyasını otomatik olarak oluşturur. Yayınlanmışsa crx dosyasının yerel olarak oluşturulması veya Chrome'dan indirilmesi gerekir. Web Mağazası.

Chrome Web Mağazası'ndan .crx dosyasını indirin

Uzantı Chrome Web Mağazası'nda barındırılıyorsa .crx dosyası şu kaynaktan indirilebilir: Geliştirici Kontrol Paneli. "Girişleriniz" bölümünde uzantıyı bulun ve "Daha fazla bilgi"yi tıklayın. pop-up penceresinde mavi main.crx bağlantısını tıklayın.

Geliştirici Kontrol Paneli'nden .crx dosyasını indirme

İndirilen dosya kişisel bir sunucuda barındırılabilir. Bu, bir web sitesi barındırmanın en güvenli uzantısına sahip olur. Aksi halde, uzantının içeriği Chrome Web Mağazası tarafından imzalanır. Bu olası saldırıları ve kurcalamaları tespit etmeye yardımcı olur.

Yerel olarak .crx oluşturun

Uzantı dizinleri, Uzantı Yönetimi Sayfası'nda .crx dosyalarına dönüştürülür. Şuraya git: çok amaçlı adres çubuğunda chrome://extensions/'i seçin veya Chrome menüsünü tıklayıp işaretçiyi "Diğer Araçlar"ın üzerinde tutun ardından "Uzantılar"ı seçin.

Uzantı Yönetimi sayfasında, Geliştirici modu Ardından PAKET UZANTISI düğmesini seçin.

Geliştirici Modu Kontrol Edildi ve Uzantıyı Paketle'yi tıklayın

Uzantının kök dizini alanında uzantının klasörünün yolunu belirtin ve ardından PAKET UZANTISI düğmesi. İlk kez gönderilecek paket için Özel anahtar alanını yoksayın.

Uzantı Yolunu Belirtin ve ardından Uzantıyı Paketle'yi tıklayın

Chrome, .crx dosyası ve uzantının adını içeren .pem dosyası olmak üzere iki dosya oluşturur. gizli anahtardır.

Paketlenmiş Uzantı Dosyaları

Özel anahtarı kaybetmeyin. .pem dosyasını gizli ve güvenli bir yerde saklayın; olacak Uzantıyı güncellemek için gerekenler.

.crx paketini güncelleme

manifest.json içindeki sürüm numarasını artırarak bir uzantının .crx dosyasını güncelleyin.

{
  ...
  "version": "1.5",
  ...
  }
}
{
  ...
  "version": "1.6",
  ...
  }
}

Uzantı Yönetimi Sayfası'na dönün ve PAKET UZANTISI düğmesini tıklayın. Belirtin: uzantı dizinine ve özel anahtarın konumuna giden yol.

Uzantı Dosyalarını Güncelleme

Sayfa, güncellenen paketlenmiş uzantının yolunu sağlar.

Uzantı Dosyalarını Güncelleme

Komut satırından paketle

chrome.exe komutunu çağırarak uzantıları komut satırında paketleyin. --pack-extension kullanın işaretinin bulunduğu yeri belirtmek için --pack-extension-key işaretini ve uzantının özel anahtar dosyasının konumunu belirtin.

chrome.exe --pack-extension=C:\myext --pack-extension-key=C:\myext.pem

Ana makine

.crx dosyalarını barındıran bir sunucu, kullanıcıların bir bağlantıyı tıklayarak uzantınızı görebilirsiniz.

Aşağıdakilerden biri doğruysa Google Chrome bir dosyayı yüklenebilir olarak kabul eder:

  • Dosyanın içerik türü application/x-chrome-extension
  • Dosya soneki .crx şeklindedir ve aşağıdakilerin ikisi de doğrudur:
    • Dosya X-Content-Type-Options: nosniff HTTP başlığıyla sunulmaz
    • Dosya, aşağıdaki içerik türlerinden biriyle yayınlanır:
    • boş dize
    • "text/plain"
    • "application/octet-stream"
    • "unknown/unknown"
    • "application/unknown"
    • "\*/\*"

Yüklenebilir bir dosyayı tanıyamamanın en yaygın nedeni, sunucunun başlık X-Content-Type-Options: nosniff. En yaygın ikinci neden, sunucunun bilinmeyen içerik türü (önceki listede yer almayan bir içerik türü) HTTP üst bilgisi sorununu düzeltmek için aşağıdakilerden birini değiştirin: veya .crx dosyasını başka bir sunucuda barındırmayı deneyin.

Güncelle

Tarayıcı, birkaç saatte bir yüklü uzantılarda güncelleme URL'si olup olmadığını kontrol eder. Her biri için bir isteği iletebilir.

  • 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.

Güncelleme manifest'inde yüklü olandan daha yeni bir sürümden bahsediliyorsa tarayıcı yeni sürümü indirir ve yükler. Manuel güncellemelerde olduğu gibi, yeni .crx dosyası da imzalanmalıdır yüklü olan sürümle aynı özel anahtara sahip olduğundan emin olun.

Not: Google Chrome, kullanıcı gizliliğini korumak için otomatik güncelleme manifest istekleri içeren Cookie başlıkları göndermez ve bu isteklere verilen yanıtlardaki Set-Cookie başlıklarını yok sayar.

URL'yi güncelle

Chrome Web Mağazası dışındaki sunucularda barındırılan uzantıların update_url alanını içermelidir. manifest.json dosyasına aktarmalıdır.

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

Manifest güncelleme

Sunucu tarafından döndürülen güncelleme manifesti bir XML belgesi olmalıdır.

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='https://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. İlgili içeriği oluşturmak için kullanılan uzantıları sistemi şu özelliklerin <app> ve <updatecheck> öğeleri için aşağıdaki özellikleri kullanır: manifestoyu güncelleyin:

appid
Uzantı kimliği, paketleme bölümünde açıklandığı gibi ortak anahtarın karma değeri temel alınarak oluşturulur. Uzantıların kimliği, Uzantı Yönetimi Sayfası'nda görüntülenir.
kod tabanı
.crx dosyasının HTTPS URL'si.
sürüm
İstemci tarafından, codebase tarafından belirtilen .crx dosyasını indirip indirmeyeceğini belirlemek için kullanılır. 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. <app> öğeleri.

Test

Varsayılan güncelleme kontrolü sıklığı birkaç saattir, ancak Güncelleme hemen uzantıları ekle düğmesini tıklamanız yeterlidir.

Uzantıları Şimdi Güncelle

Bu işlem, yüklü tüm uzantılar için kontrolleri başlatır.

Gelişmiş kullanım: istek parametreleri

Temel otomatik güncelleme mekanizması, sunucu tarafında çalışan bir öğeyi bir herhangi bir düz web sunucusuna (örneğin, Apache) yükleme ve bu XML dosyasını yeni bir uzantı sürümleri yayınlandı.

Birden fazla uzantı barındıran geliştiriciler, uzantı kimliğini gösteren istek parametrelerini kontrol edebilirler. ve sürümünü de eklemeniz gerekir. Bu parametrelerin eklenmesi, uzantıların aynı URL'nin çalıştırılmasına olanak tanır.

İstek parametrelerinin biçimi şu şekildedir:

?x=EXTENSION_DATA

Burada EXTENSION_DATA, şu biçimdeki URL kodlamalı bir dizedir:

id=EXTENSION_ID&v=EXTENSION_VERSION

Örneğin, iki uzantı aynı güncelleme URL'sine (https://test.com/extension_updates.php) yönlendiriyor:

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

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

https://test.com/extension_updates.php?x=id%3Daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%26v%3D1.1

ve

https://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. Önceki için Örneğin, kullanıcıda uzantıların her ikisi de yüklüyse bu iki istek tek bir tekli istek:

https://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 eklendikçe, çalışan bir uzantının çalışması için güncellenmiş bir sürümü tarayıcı yalnızca yeni sürümleriyle kullanıma sunulabilir. Google Chrome'un kendisi otomatik olarak güncellense de kullanıcı tabanının çoğunluğunun belirli bir yeni sürüme güncellenmesi birkaç gün sürebilir. Alıcı: belirli bir güncellemenin yalnızca belirli bir sürümdeki veya daha yeni Google Chrome sürümlerine uygulanacağından emin olmak için sürümünü kullanıyorsanız özelliğini <app> öğesine ekleyebilirsiniz.

<?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 güncelleme yapmasını sağlar. 3.0.193.0 veya üzeri.