Pisanie wtyczek/rozszerzeń do chrome i przeglądarek

Witam. Chciałbym zacząć pisanie wtyczek czy rozszerzeń do przeglądarek ( np: powiadomienie o starcie rakiety nasa ). Jaka wiedza jest do tego potrzebna, co muszę wiedzieć? Języki programowania? Znam c++, troszkę Javy i C#. HTML, CSS również. Wydaję mi się, że do tego potrzebna jest JAVA EE. Tylko ta Java nie jest po mojej stronie, nie lubię w niej pisać i same podstawy denerwują. Wiecie: cout a System.out.println() no to różnica. Proszę o odpowiedzi.

Jak poznałeś tyle języków programowania bez znajomości Google’a?

 

Rozszerzenia tworzy się w technologiach webowych - HTML, CSS, JavaScript, a w przypadku Firefoxa także XUL (XML do modelowania interfejsu, opcjonalny). Reszta na dedykowanych stronach:

 

https://developer.chrome.com/extensions

Należy zacząć od rozróżnienia wtyczek od rozszerzeń, w kontekście wtyczek i rozszerzeń do przeglądarek to są to dwie różne rzeczy i są one pisane w innych technologiach/językach.

Wtyczki (pluginy) dodają do przeglądarki możliwość odtwarzania/uruchamiania na stronach typów plików/mediów których przeglądarka sama w sobie nie obsługuje np. flash (chrome ma wbudowany odtwarzacz flash), java czy jakiś dodatkowy kodek audio/video dla formatu nie wspieranego przez przeglądarkę.

Wtyczki pisze się głównie w C++ lub innym kompilowanym języku.

Natomiast rozszerzenia (dodatki typu Add-on) mogą pełnić w zasadzie każdą inną funkcję, mogą dodawać do przeglądarki jakieś dodatkowe elementy interfejsu (np. jakieś przyciski lub całe tool-bary) albo w inny sposób modyfikować interfejs lub zachowanie przeglądarki (najprostsze dodają jedynie wizualny interfejs do modyfikowania zaawansowanych ustawień przeglądarki by można było łatwo włączać/wyłączać określone funkcjonalności).

Mogą one również modyfikować wygląd i zachowanie stron wczytywanych w oknie przeglądarki (dodawać, usuwać lub zmieniać umiejscowienie ich elementów), mogą dodawać do określonych stron elementy łączące je z API przeglądarki by z poziomu danej strony można było uruchamiać konkretną funkcję przeglądarki lub nawet uruchamiać inne oprogramowanie zainstalowane w systemie czy nawet same funkcje systemowe (w tym przypadku najwięcej możliwości daje chyba API Firefoxa) i wiele więcej.

Rozszerzenia jak już wspomniał kolega wyżej pisze w zasadzie tylko przy użyciu HTML, JS i CSS (w Firefoxie XUL używa się tylko przy modyfikacji elementów interfejsu ale można też to robić z poziomu JS co jest niezbędne aby rozszerzenie nie wymagało restartu przeglądarki).

Rozszerzenia mogą też zawierać skompilowane wykonywalne moduły/biblioteki pisane np. w C++ ale należy to robić tylko w uzasadnionych przypadkach gdy niezbędna jest funkcja której nie dostarcza API przeglądarki, w przypadku Firefoxa API daje dostęp również do funkcji systemowych (np. uruchamianie zewnętrznych aplikacji; wczytywanie/modyfikacja rejestru systemowego itp.) więc zespół zajmujący się weryfikacją rozszerzeń uważnie sprawdza zachowanie i funkcjonowanie dodatków i nie przepuszcza do oficjalnej bazy dodatków zawierających skompilowane moduły jeśli nie zostanie dostarczony ich kod do weryfikacji.

Biorąc pod uwagę powyższe aby zaimplementować w przeglądarce wyświetlanie jakichś newsów typu “start rakiety NASA” należy napisać rozszerzenie o raczej niskim poziomie skomplikowania.