Moduły udostępnione to bez uprawnień zbiory zasobów, które mogą być współużytkowane rozszerzeń. Typowe zastosowania modułów udostępnionych to:
- Jako interfejs API. Możesz rozpowszechnić udostępniany moduł, który może zawierać kod HTML, JS i inne zasoby udostępniają interfejs API, który można aktualizować niezależnie od zależnych od niego rozszerzeń.
- W celu optymalizacji pobierania. Moduł udostępniony zawiera wspólne zasoby wykorzystywane przez wiele rozszerzeń. Jest pobierane raz, przy pierwszym instalowaniu rozszerzenia zależnego.
Plik manifestu
Moduły udostępnione są używane w dwóch polach manifestu: "export"
i "import"
.
Eksportuj
Pole eksportu wskazuje, że rozszerzenie jest modułem udostępnionym, który eksportuje swoje zasoby:
{
"version": "1.0",
"name": "My Shared Module",
"export": {
// Optional list of extension IDs explicitly allowed to
// import this Shared Module's resources. If no allowlist
// is given, all extensions are allowed to import it.
"allowlist": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
]
}
// Note: no permissions are allowed in Shared Modules
}
Importuj
Rozszerzenia i aplikacje używają pola import do deklarowania, że są zależne od zasobów konkretnych modułów udostępnionych:
{
"version": "1.0",
"name": "My Importing Extension",
...
"import": [
{"id": "cccccccccccccccccccccccccccccccc"},
{"id": "dddddddddddddddddddddddddddddddd"
"minimum_version": "0.5" // optional
},
]
}
Dostęp do zasobów
Dostęp do zasobów modułu udostępnionego jest uzyskiwany przez zarezerwowaną ścieżkę _modules/SHARED_MODULE_ID w katalogu głównym
rozszerzenia do importowania. Aby na przykład uwzględnić skrypt foo.js
z modułu udostępnionego z
Identyfikator „cccccccccccccccccccccccccccccccc” – użyj tej ścieżki głównej rozszerzenia:
<script src="_modules/cccccccccccccccccccccccccccccccc/foo.js">
Jeśli rozszerzenie do importowania ma identyfikator „aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”, pełny adres URL zasobów w module udostępnionym to:
chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/_modules/cccccccccccccccccccccccccccccccc/
Ponieważ zasoby z modułów udostępnionych są nałożone na źródło importu wszystkie uprawnienia przyznane rozszerzeniu do importowania są dostępne w kodzie w Moduły. Moduł udostępniony ma również dostęp do zasobów w rozszerzeniu importowania za pomocą bezwzględnych ścieżek konwersji.
Zainstaluj / odinstaluj
Moduł udostępniany jest automatycznie instalowany z Chrome Web Store, gdy wymaga tego rozszerzenie zależne, i odinstalowany automatycznie po odinstalowaniu ostatniego rozszerzenia, które się do niego odwołuje. Aby przesłać rozszerzenie, które korzysta z modułu udostępnionego, ten moduł musi być opublikowany w Sklep Chrome Web Store i to rozszerzenie nie mogą być ograniczane do korzystania z modułu udostępnionego przez lista dozwolonych.
W trakcie programowania musisz ręcznie zainstalować wszelkie moduły współdzielone, których używa Twoje rozszerzenie. Automatyczne instalacje nie są wykonywane w przypadku rozszerzeń, które są ładowane z innego miejsca lub wczytywane jako rozpakowane rozszerzeń. W przypadku zainstalowanych lokalnie, rozpakowanych modułów udostępnionych należy użyć pola key, aby sprawdź, czy moduły udostępnione używają prawidłowych identyfikatorów.