Manifest V3'teki uzantı işlemleri

Simeon Vincent
Simeon Vincent

Chrome uzantılarının kullanıma sunulmasından bu yana platform, geliştiricilerin uzantıyı göstermesine olanak tanıdı. işlemleri kullanarak işlevleri doğrudan üst düzey Chrome kullanıcı arayüzünde görebilirsiniz. İşlem, düğmenin gösterilmesi için bir pop-up açabilir veya uzantıdaki bazı işlevleri tetikleyebilir. Geçmişte Chrome, işlem türleri, tarayıcı işlemleri ve sayfa işlemleri; Manifest V3, kendi verilerini birleştirerek yeni chrome.action API'sine entegre edebilirsiniz.

Uzantı işlemlerinin kısa geçmişi

chrome.action, manifest V3'te yeni olsa da sağladığı temel işlev daha eski tarihlidir. . İlk kararlı Chrome'un uzantılar platformunun yayınlanması iki farklı işlem türünü destekliyordu: tarayıcı işlemleri ve sayfa işlemlerini kapsar.

Tarayıcı işlemlerine, uzantı geliştiricilerinin ana Google Chrome araç çubuğunda bir "simge", tıklayın" (kaynak) ve kullanıcılara kolay bir yol özelliğini kullanabilirsiniz. Öte yandan sayfa işlemleri, "geçerli sayfada yapılabilen ancak tüm sayfalar için geçerli olmayan işlemleri temsil eder" (kaynak).

Çok amaçlı adres çubuğunda, uzantının bu sayfada bir işlem yapabileceğini belirten bir sayfa işlemi (solda) görünür. Tarayıcı işlemi (sağda) her zaman görünür.

Başka bir deyişle, tarayıcı işlemleri, uzantı geliştiricilere tarayıcıda kalıcı bir kullanıcı arayüzü yüzeyi sağladı ancak sayfa işlemleri, yalnızca uzantı geçerli sayfada yararlı bir şey yapabildiğinde görünüyordu.

Her iki işlem türü de isteğe bağlıdır. Bu nedenle, uzantı geliştirici işlemler, sayfa işlemi veya tarayıcı işlemi (birden fazla işlemin belirtilmesine izin verilmez).

Yaklaşık altı yıl sonra, Chrome 49 uzantılar için yeni bir kullanıcı arayüzü paradigmasını kullanıma sundu. Şimdi genel hatlarıyla kullanıcıların hangi uzantılara sahip olduğunu anladığını fark ettikten sonra, Chrome tüm etkin uzantıları sağ düğmesini tıklayın. Kullanıcılar, Chrome menüsüne ekleyebiliyorlar.

Gizli uzantı simgeleri Chrome menüsünde görünür.

Bu güncelleme, her bir uzantı için bir simge görüntülenmesini sağlayacak şekilde Chrome'un kullanıcı arayüzündeki uzantıların davranışı. İlk olarak, tüm uzantılar araç çubuğunda simgeler görüntülemeye başladı. Uzantının simgesi yoksa Chrome bunun için otomatik olarak bir simge oluşturur. İkincisi, sayfa işlemleri tarayıcı işlemleriyle birlikte araç çubuğuna taşındı ve farklı versiyonları "programları" arasında ve "gizle" eyaletler.

Devre dışı bırakılmış bir sayfa işlemi (solda) araç çubuğunda gri tonlamalı bir resim olarak oluşturulurken, etkin bir sayfa işlemi (sağda) tam renkli olarak görüntülenir.

Bu değişiklik, sayfa işlemi uzantılarının beklendiği gibi çalışmaya devam etmesini sağladı, ancak aynı zamanda azaldı. zaman içindeki rolünü görebilirsiniz. Kullanıcı arayüzünün yeniden tasarımının etkilerinden biri de, sayfa işlemlerinin ve tarayıcı eylemlerinin etkisi altındadır. Tüm uzantılar araç çubuğunda gösterildiğinden, kullanıcılar bir uzantının araç çubuğu simgesini tıklamanın uzantıyı çağırmasını ve tarayıcı işlemlerini Chrome uzantıları için giderek daha önemli bir etkileşim haline geldi.

Manifest V3 değişiklikleri

Chrome kullanıcı arayüzü ve uzantıları, 2016'nın uzantı kullanıcı arayüzünü takip eden yıllarda gelişmeye devam etti ancak tarayıcı işlemleri ve sayfa işlemleri büyük ölçüde değişmedi. Yani en azından Manifest V3 ile uzantı platformunu nasıl modernleştireceğimizi planlamaya başladık.

Uzantılar ekibi, tarayıcı işlemlerinin ve sayfa işlemlerinin gittikçe artan bir şekilde, ayrı ayrı düşünmek zorunda kalmazsınız. Daha da kötüsü, bunların küçük davranış farklılıkları geliştiricilerin hangisinin kullanılacağını belirler. Bu sorunları çözmek için tarayıcıdaki tarayıcı işlemi ve sayfa işlemini tek bir "işlem" haline getirmektir.

Action API'yi girin; chrome.action, chrome.browserAction ile en doğrudan benzerdir ancak dikkate değer birkaç farklılık vardır.

İlk olarak chrome.action, getUserSettings() adlı yeni bir yöntemi sunar. Bu yöntem uzantı geliştiricilere, kullanıcının uzantı işlemini araç çubuğunda bulabilirsiniz.

let userSettings = await chrome.action.getUserSettings();
console.log(`Is the action pinned? ${userSettings.isOnToolbar ? 'Yes' : 'No'}.`);

"getUserSettings" "Bu işlev" ile karşılaştırıldığında, bu işlev için biraz alışılmadık bir ad Chrome'daki işlem geçmişi, tarayıcı kullanıcı arayüzünün daha fazla bilgi edineceksiniz. Bu nedenle, bu API'deki amacımız, web'de işlemle ilgili kullanıcı tercihlerini kullanıcı kaybını en aza indirmek için genel arayüzler kullanma. Ayrıca, diğer tarayıcı tedarikçi firmalarının UserSettings nesnesindeki tarayıcıya özgü kullanıcı arayüzü kavramlarının üzerinden, bu yöntemidir.

İkinci olarak, bir uzantı işleminin simgesi ve etkin/devre dışı durumu Declarative Content API. Uzantıların, kullanıcıların göz atma işlemlerine tepki vermesine olanak tanıdığı için bu önemlidir. bile olsa ziyaret ettikleri sayfaların URL'lerine erişmeye gerek duymaz. Örneğin, kullanıcı example.com'daki sayfaları ziyaret ettiğinde bir uzantının işlemini nasıl etkinleştirebileceğini görebilirsiniz.

// Manifest V3
chrome.runtime.onInstalled.addListener(() => {
  chrome.declarativeContent.onPageChanged.removeRules(undefined, () => {
    chrome.declarativeContent.onPageChanged.addRules([
      {
        conditions: [
          new chrome.declarativeContent.PageStateMatcher({
            pageUrl: {hostSuffix: '.example.com'},
          })
        ],
        actions: [new chrome.declarativeContent.ShowAction()]
      }
    ]);
  });
});

Yukarıdaki kod, bir uzantının sayfa işleminde yapacağı işlemle hemen hemen aynıdır. Tek fark şudur: Manifest V3'te şu kaynak yerine declarativeContent.ShowAction kullanılmıştır: Manifest V2'de declarativeContent.ShowPageAction.

Son olarak, içerik engelleyiciler declarativeNetRequest API'sinin setExtensionActionOptions) yöntemini kullanarak belirli bir sekme için uzantı tarafından engellenen istekler. Bu özellik son derece önemlidir çünkü potansiyel olarak hassas tarama meta verilerini açığa çıkarmadan son kullanıcıları bilgilendirmeye yönelik içerik engelleyiciler ekleyin.

Son adım

Chrome uzantıları platformunu modernleştirmek, Manifest V3 için en önemli motivasyonlarımızdan biriydi. Birçok konuda Bu, yeni teknolojilere geçiş anlamına geliyordu ancak aynı zamanda API yüzeyimizi de basitleştirmemiz anlamına geliyordu. hedefimiz buydu.

Bu yayının, Manifest V3 platformunun bu köşesine ışık tutmamıza yardımcı olduğunu umuyorum. Alıcı: Chrome ekibinin, tarayıcı uzantılarının geleceğine nasıl yaklaştığı hakkında daha fazla bilgi edinmek için Platform vizyonu ve Manifest V3'e genel bakış sayfaları için geliştirici belgelerine göz atın. Ayrıca, chromium-extensions Google Grubu'na (Yalnızca İngilizce) gidin.