niedziela, grudnia 11, 2016

Rozszerzenia Chrome - Content Script nie wszystko może...

Popełniłem ostatnio w pracy małe rozszerzenie do Chrome, które ma pomagać w pisaniu smoke testów*.
Robić to powinno w taki sposób, że obserwuje co robi user na stronie i pisze skrypt w Gosu, który powinien to symulować.

No i odkryłem w trakcie pisania tego rozszerzenia, że dokumentacja Chrome trochę kłamie.
Sugeruje, że można swobodnie wysyłać i odbierać komunikaty w każdej części rozszerzenia (czyli w background script, popup'ach i w content script), a okazuje się, że content script nie może odbierać komunikatów....

Może tylko wysyłać ;-)

Stąd w planie było by user klikał na guzik Record w popupie rozszerzenia i by to wysyłało komunikat do content script'u (czyli tego co jest wstrzykiwane w treść strony).

Tak się nie da. Trzeba było zrobić tak, że i popup i content script wysyłają komunikaty do background script'u, ten ma prostą maszynę stanów i razie popup wyśle komunikat to przełącza się w tryb "nagrywania" i rejestruje to co wysyła content script.

Stąd trzeba jednak podchodzić sceptycznie do dokumentacji ;-)

* - nie lubię smoke testów, a rozszerzenie wynika z tego, że wydaje mi się, że jednym z istotnych kawałków mojej filozofii życiowej jest, że należy zautomatyzować wszystko co się da ;-)


Podobne postybeta
Wtyczka na pamięć - brniemy dalej ;-)
Zaskakujący killer feature....
Tunel... ciąg dalszy ;-)
Chrome2ChromeV2 na GitHub :-)
Piszemy rozszerzenie dla Chrome ;-)