-
Notifications
You must be signed in to change notification settings - Fork 5
Chrome
Chrome, uygulama penceresinin, pencerenin içerik alanının dışında kalan kullanıcı arayüzü öğeleri kümesidir. Araç çubukları, menü çubukları, ilerleme çubukları ve pencere başlık çubukları tipik olarak chrome'un parçası olan öğelere örnektir.
chrome.manifest dosyaları, chrome protokolü için XPCOM bileşenlerini ve kaynaklarını kaydetmek için kullanılır. Her uygulama, Mozilla'nın başlangıçta okuduğu bir kök chrome.manifest dosyası sağlar.
Belirli bir pencere türü için (örneğin tarayıcı penceresi için) krom tedarikçisine krom sağlayıcısı denir. Sağlayıcılar, araç çubuğu düğmelerindeki resimlerden pencerenin metin, içerik ve görünümünü tanımlayan dosyalara kadar belirli bir pencere için eksiksiz bir krom seti sağlamak üzere birlikte çalışır.
Bir pencere açıklamasının ana kaynak dosyası içerik sağlayıcıdan gelir ve Mozilla içinden görüntülenebilen herhangi bir dosya türü olabilir. XUL, pencerelerin ve iletişim kutalarının içeriğini tanımlamak için tasarlandığından, genellikle bir XUL dosyası olacaktır. Kullanıcı arayüzünü tanımlayan JavaScript dosyaları da içerik paketleri içinde yer alır.
Yerelleştirilebilir uygulamalar, tüm yerelleştirilmiş bilgilerini ayrı olarak ele alınan yerel ayar sağlayıcılarında ve Fluent FTL dosyalarında tutar. Bu, çevirmenlerin kaynak kodun geri kalanını değiştirmeden bir uygulamayı çevirmek için farklı bir chrome paketi eklemelerine olanak tanır. Bir chrome sağlayıcısında, yerelleştirilebilir dosyalar çoğunlukla Java tarzı özellik dosyalarıdır.
Bir dış görünüm sağlayıcısı, chrome'un görsel görünümünü tanımlayan eksiksiz bir dosya seti sağlamaktan sorumludur. Tipik olarak bir dış görünüm sağlayıcısı CSS dosyaları ve resimler sağlar.
Gecko çalışma zamanı, chrome paket adlarından chrome paketlerinin diskteki fiziksel konumuna eşlemeler sağlayan chrome kayıt defteri olarak bilinen bir hizmeti sürdürür.
Bu chrome kayıt defteri yapılandırılabilir ve kalıcıdır ve böylece bir kullanıcı farklı chrome sağlayıcıları yükleyebilir ve tercih edilen bir görünüm ve yerel ayar seçebilir. Bu, xpinstall ve uzantı yöneticisi aracılığıyla gerçekleştirilir.
Mevcut chrome'u chrome kayıt defterine bildirmek için bir metin manifestosu kullanılır: bu manifesto bir uzantının, temanın veya XULRunner uygulamasının kökünde “chrome.manifest” şeklindedir.
Düz metin chrome manifestoları basit bir satır tabanlı formattadır. Her satır ayrı ayrı çözümlenir; satır çözümlenebilirse chrome kayıt defteri o satırda tanımlanan eylemi gerçekleştirir, aksi takdirde chrome kayıt defteri o satırı yok sayar (ve çalışma zamanı hata konsoluna bir uyarı mesajı yazdırır).
locale packagename localename path/to/files skin packagename skinname path/to/files
NOT:" @ # ; : ? / Bunlar gibi özel karakterlere izin verilmez"
#bu bir yorum satırıdır istediğini yaz...
Bir satır '#' karakteri ile başlıyorsa bir yorumdur. Aynı satırda takip eden herhangi bir karakter yok sayılır.
manifest subdirectory/foo.manifest [flags]
Bu, ikincil bir bildirim dosyası yükleyecektir. Bu, bileşen ve krom kayıt talimatlarını veya platforma özgü ayrı kayıt verilerini ayırmak için yararlı olabilir.
component {00000000-0000-0000-0000-000000000000} components/mycomponent.js [flags]
JavaScript'te (veya varsa başka bir komut dosyası dilinde) uygulanan bir XPCOM bileşeni tarafından uygulanan bir bileşen CID'si hakkında Mozilla'yı bilgilendirir. ClassID {0000...}, bileşen tarafından uygulanan ClassID ile eşleşmelidir. Benzersiz bir ClassID oluşturmak için bir UUID oluşturucu program veya site kullanın.
contract @foobar/mycontract;1 {00000000-0000-0000-0000-000000000000} [flags]
Bir sözleşme kimliğini (okunabilir bir dize) belirli bir uygulama için ClassID ile eşler. Tipik olarak bir sözleşme kimliği hemen öncesindeki bir bileşen girişi ile eşleştirilir.
category category entry-name value [flags]
Kategori yöneticisine bir giriş kaydeder. Kategori girişlerinin özel biçimi ve anlamı kategoriye bağlıdır.
Satır ile bir içerik paketi kaydedilir:
content packagename uri/to/files/ [flags]
Bu, URI chrome://packagename/content/.... çözümlenirken kullanılacak bir konum kaydedecektir. URI, manifesto dosyasının konumuna göre mutlak veya göreceli olabilir. Not: '/' ile bitmelidir.
Satır ile bir locale paketi kaydedilir:
locale packagename localename uri/to/files/ [flags]
Bu, URI chrome://packagename/locale/... çözümlenirken bir yerel paket kaydedecektir. Yerel ad genellikle düz bir dil tanımlayıcısı “en” veya bir dil-ülke tanımlayıcısı “en-US” şeklindedir. Bir paket için birden fazla yerel ayar kaydedilmişse, chrome kayıt defteri kullanıcının tercihlerini kullanarak en uygun yerel ayarı seçecektir.
Bir dış görünüm paketi şu satırla kaydedilir:
skin packagename skinname uri/to/files/ [flags]
Bu, URI chrome://packagename/skin/... çözümlenirken bir dış görünüm paketi kaydedecektir. Dış görünüm adı, yüklü bir dış görünümü tanımlayan opak bir dizedir. Bir paket için birden fazla dış görünüm kaydedilmişse, chrome kayıt defteri kullanıcının tercihlerini kullanarak en uygun dış görünümü seçecektir.
Stil kaplamaları (bir chrome sayfasına uygulanacak özel CSS) aşağıdaki sözdizimiyle kaydedilir:
style chrome://URI-to-style chrome://stylesheet-URI [flags]
Bazı durumlarda bir uzantı veya yerleştirici, uygulama veya XULRunner tarafından sağlanan bir chrome dosyasını geçersiz kılmak isteyebilir. Buna izin vermek için, chrome kayıt bildirimi “geçersiz kılma” talimatlarına izin verir:
override chrome://package/type/original-uri.whatever new-resolved-URI [flags]
Not: geçersiz kılmalar özyinelemeli değildir (yani chrome://foo/content/bar/ dosyasını file:///home/john/blah/ ile geçersiz kılmak genellikle istediğiniz veya beklediğiniz şeyi yapmayacaktır). Ayrıca, geçersiz kılınan dosyaların içindeki yol, orijinal yola değil, geçersiz kılınan yola görelidir (bu, örneğin CSS dosyalarında can sıkıcı ve/veya yararlı olabilir).
Takma adlar kaynak yönergesi kullanılarak oluşturulabilir:
resource aliasname uri/to/files/ [flags]
Bu,resource://<aliasname>/
URI'leri için verilen yola bir eşleme oluşturacaktır.
**_Not: Web içeriğinin resource: URI'ları, bu nedenle orada neyi görünür kıldığınıza dikkat edin._**
Manifesto satırları, kayıt satırının sonuna boşluk bırakılarak eklenen birden fazla bayrağa sahip olabilir. Bu bayraklar, söz konusu paketteki kromun özel niteliklerini işaretler veya satırın kullanılacağı koşulları sınırlar.
Uzantılar birden fazla uygulamaya yüklenebilir. Yalnızca belirli bir uygulama için geçerli olan krom kayıt satırları olabilir. Bayrak
application=app-ID
talimatın yalnızca uzantının app-ID ile tanımlanan uygulamaya yüklenmesi durumunda uygulanması gerektiğini belirtir. Birden fazla uygulama bayrağı tek bir satıra dahil edilebilir, bu durumda bayraklardan herhangi biri eşleşirse satır uygulanır.
Bu örnek, farklı uygulamalar için farklı bir kaplamanın nasıl kullanılabileceğini göstermektedir:
overlay chrome://browser/content/browser.xul chrome://myaddon/content/ffOverlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
overlay chrome://messenger/content/mailWindowOverlay.xul chrome://myaddon/content/tbOverlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6}
overlay chrome://songbird/content/xul/layoutBaseOverlay.xul chrome://myaddon/content/sbOverlay.xul [email protected]
Daha fazla bilgi için: https://firefox-source-docs.mozilla.org/build/buildsystem/chrome-registration.html#chrome-registration