Twoje rozszerzenie do Chrome wciąż odrzucane? Oto co robisz źle
Dlaczego każdy developer Chrome extensions potrzebuje lintera compliance
Budowanie rozszerzeń do Chrome to świetna forma dystrybucji — użytkownicy instalują je jednym kliknięciem, integracja z przeglądarką działa out of the box, a baza potencjalnych odbiorców jest ogromna. Problem zaczyna się w momencie, gdy chcesz swoje rozszerzenie wrzucić do Chrome Web Store. Weryfikacja potrafi zająć dni, a rezultat bywa... zaskakujący.
W społeczności developerów narzekających na proces review panuje pewna zgodność: najgorsze nie są same wymagania, tylko sposób, w jaki się o nich komunikuje. Dostajesz odrzucenie z feedbackiem, który brzmi jak zagadka. Kod napisany — wyrzucisz go do kosza. I tak w kółko.
Dlatego coraz więcej osób sięga po narzędzia, które wychwytują problemy zanim w ogóle myślisz o wysyłce. Jednym z nich jest tabsmith-lint — open-source'owy linter compliance stworzony specjalnie dla rozszerzeń w Manifest V3.
Manifest V3 — nie tylko numer版本 update
Dla tych, którzy pisali rozszerzenia przed wielką migracją: zmiana z V2 na V3 to nie była kosmetyka. Google przepisało fundamenty tego, jak rozszerzenia działają. Chodziło o bezpieczeństwo, prywatność i wydajność — cele szczytne, ale realizacja boleśnie dotknęła developerów.
Co się zmieniło na poziomie kodu:
- Service workers zamiast background pages — logika działająca w tle działa teraz inaczej, ma swój cykl życia
- Declarative Net Request zamiast webRequest — filtrowanie ruchu sieciowego przeszło totalny remake
- Restrykcyjne uprawnienia hostów — zapomnij o żądaniu pełnego dostępu do wszystkich stron
- Zmiany w content security policy — skrypty działają w bardziej restrykcyjnym sandbox
I tutaj pojawia się clou problemu. Te zmiany nie są opcjonalne. Chrome Web Store wymusza je podczas weryfikacji bezwzględnie. Jedno nieprecyzyjne żądanie permission albo wywołanie deprecated API — i Twoje rozszerzenie wraca z odpowiedzią, która niewiele wyjaśnia.
tabsmith-lint — jak to właściwie działa
Linting w kontekście Chrome Web Store to jak sprawdzanie pisowni, ale dla polityk compliance sklepu. tabsmith-lint analizuje Twój manifest.json i strukturę projektu, szukając potencjalnych problemów zanim cokolwiek wyślesz.
Co konkretnie wyłapuje:
- Żądania uprawnień, które automatycznie uruchamiają dodatkową weryfikację — możesz ich unikać świadomie
- Deprecated API calls — te, które na pewno spowodują odrzucenie
- Błędy konfiguracji manifestu — niezgodne z aktualnymi wytycznymi sklepu
- Problemy ze strukturą plików — mogące powodować błędy ładowania
Narzędzie działa lokalnie, integruje się z workflow developerskim i zwraca konkretne wskazówki — nie losowy walls of red text.
Czas to pieniądz — dosłownie
Każdy, kto przeszedł przez cykl review-weryfikacja-wróć-do-punktu-zero, wie ile kosztuje jedno odrzucenie. Dla startupów i firm liczy się każdy dzień. Każdy dzień bez obecności w sklepie to dzień bez użytkowników, bez przychodów, bez walidacji produktu.
Wychwytywanie problemów compliance podczas разработки — kiedy i tak myślisz o strukturze kodu — jest nieporównanie efektywniejsze niż czekanie na email odrzucenia i reverse-engineering tego, co poszło nie tak.
Poza oszczędnością czasu jest też benefit psychologiczny. Świadomość, że Twoje rozszerzenie prawdopodobnie przejdzie weryfikację, usuwa jedno źródło stresu z procesu release. Zamiast gonić za policy, budujesz features.
Pierwsze kroki
Projekt znajdziesz na GitHubie i jest zaprojektowany tak, by wskoczyć do istniejącego workflow bezboleśnie. Nieważne czy startujesz od zera, czy migrujesz starsze rozszerzenie — linter powinien być na Twojej liście pre-commit.
Typowy scenariusz:
- Zainstaluj tabsmith-lint w projekcie
- Uruchamiaj przed każdym commitem albo jako część CI/CD pipeline
- Popraw zgłoszone problemy
- Wysyłaj z czystym sumieniem
Open-source'owa natura projektu oznacza, że społeczność może go aktualizować w miarę jak Google będzie wprowadzać nowe wymagania czy deprecated kolejne API. W przeciwieństwie do proprietarnych narzędzi — nie jesteś uzależniony od cudzego harmonogramu release'ów.
Większy obrazek
Tabsmith-lint to symptom szerszego trendu: validation shifted left. Zamiast odkrywać problemy w najgorszym możliwym momencie (produkcja, wysyłka, skargi użytkowników), doświadczeni developerzy budują walidację w każdym etapie procesu.
Dla twórców rozszerzeń Chrome ta zmiana jest krytyczna. Plik manifest.json wygląda banalnie prosto, ale rządzi dosłownie wszystkim — od zachowania po uprawnienia. Jeden zły wpis może cicho zepsuć całą wysyłkę.
Narzędzia takie jak tabsmith-lint dojrzewają w ekosystemie Manifest V3. W miarę jak Google przyspiesza migrację i ostatecznie wyłączy Manifest V2, developerzy będą potrzebować czegoś więcej niż dokumentacji — potrzebują praktycznych narzędzi działających w czasie rzeczywistym.
Na koniec
Rozszerzenia Chrome nadal stanowią wartościowy kanał dystrybucji dla narzędzi webowych, aplikacji productivity i usług opartych na przeglądarce. Wymagania Manifest V3 są rygorystyczne, ale nie znikną. Pytanie brzmi: czy Twój czas разработки spędzisz na budowaniu funkcji, czy na gonieniu za compliance?
tabsmith-lint nie rozwiąże każdego problemu, ale adresuje jedną z najbardziej frustrujących części procesu: rozłam między napisaniem kodu a uzyskaniem akceptacji. Jeśli poważnie myślisz o shippingu rozszerzeń, które zostają — dodanie compliance lintera do toolkitu to obvious move.
Sprawdź projekt na GitHubie, zostaw star, a jeśli trafisz na edge case'y których jeszcze nie łapie — rozważ contribute. Najlepsze narzędzia tworzą ci, którzy ich faktycznie używają.
A jakie Twoje doświadczenia z Chrome Web Store submissions? Znalazłeś inne narzędzia czy workflowy, które pomagają? Podziel się w komentarzach.