Co nowego w Firefoxie – Social API

- autor: tsissput

Ostatnie doniesienia medialne informują nas o tym, że Mozilla z wersją 17 Firefoxa chce przybliżyć nam sieci społecznościowe umożliwiając im wyjście z zakładki przeglądarki na boczny panel sieci społecznościowych. Spróbujmy przyjrzeć się tej próbie przybliżenia tych usług zarówno z punktu widzenia użytkownika przeglądarki jak i dostawcy treści – co nas zirytuje i na jakie nowe sposoby będziemy mogli być bliżej  naszych użytkowników.

Projekt graficzny Social API

Projekt graficzny Social API

Dla typowego użytkownika przeglądarki ma być to przełom pokroju pojawienia się dodatkowego pola dla szybkiego wyszukiwania w ulubionej wyszukiwarce. Poświęcona temu zagadnieniu strona wiki Mozilli stawia przed rozszerzeniem cztery podstawowe wymagania. Pierwsze z nich to przybliżenie powiadomień, dzięki czemu będziemy na bieżąco informowani o nowych tweetach, żądaniach dodania do znajomych itp. bez potrzeby przełączania się między kartami w celu sprawdzenia czy pojawiło się coś nowego. Powiadomienia pojawiają się jako ikona z licznikiem powiadomień w ramach paska nawigacji.

Drugie wymaganie to ciągły dostęp do listy kontaktów czy najnowszych wiadomości w zależności od dostawcy usługi społecznościowej. Jest to realizowane za pomocą bocznego panelu w ramach którego dostawca wyświetla swoją treść. Propozycja graficzna pokazuje na przykładzie facebooka listę kontaktów wraz z ostatnimi powiadomieniami oraz ciekawą propozycję małego panelu bocznego składającego się ze zminimalizowanej listy kontaktów (jedynie awatary i stan znajomych).

Trzecim wymaganiem jest umożliwienie nieprzerwanego prowadzenia konwersacji przy użyciu chatu czy wideo konferencji. To zostało osiągnięte dzięki możliwości przenoszenia znanych nam już przeglądarkowych czatów pomiędzy zakładkami – czat będzie wyświetlał się zawsze w aktywnej zakładce, a nie tylko w zakładce dostawcy usługi społecznościowej. Z mojego punktu widzenia jest to jedyna rzecz dla której uruchomił bym Social API w swojej przeglądarce.

Ostatnim wymaganiem jest możliwość natychmiastowego podzielenia się ze światem oglądaną treścią niezależnie od tego czy ma odpowiedni guzik dodany przez twórcę strony. Tutaj dostajemy dodatkową ikonę w ramach pasku adresu, która pozwoli nam wyrazić poparcie dla przeglądanego zasobu.

Jeżeli jesteście zainteresowani jak to wygląda w praktyce wersja 17 przeglądarki posiada zdefiniowany testowy provider dla Facebooka. Aby go uruchomić musimy dostać się do konfiguracji przeglądarki udając się do zasobu about:config i ustawić flagę social.enabled na true (W dokumentacji możemy się doczytać, że można to uruchomić gdzieś na stronie facebooka, aczkolwiek nie sprawdzałem).

Teraz przyjrzyjmy się jak stworzyć własnego dostawcę dla Social API. Podczas modyfikacji ustawień możemy natknąć się na definicję manifestu facebookowego dostawcy. W ramach wpisu social.manifest.facebook mamy zdefiniowany obiekt JSON wskazujący nazwę dostawcy, adres zarówno do treści do wyświetlenia w panelu, głównego pliku JavaScript odpowiedzialnego za pobieranie powiadomień itp.  jak i strony głównej usługi, ikonę dostawcy (możliwe jest podanie zarówno samej ikony jako dane base64 jak i adresu do obrazka). Dodatkowo w przykładowym dostawcy zamieszczonym w serwisie GitHub możemy dopatrzeć się dodatkowych pól w postaci adresu do kopii manifestu w postaci pliku, flagi aktywności czy czasu ostatniej zmiany manifestu.

Jako, że z poziomu JavaScript co oczywiste nie możemy wykonać zmian w konfiguracji przeglądarki nasz dostawca zapewne będzie musiał być dostarczany jako typowe rozszerzenie przeglądarki ,aby móc z tego poziomu dodać wpis do konfiguracji. W przypadku dużych usług społecznościowych możemy się spodziewać, że z czasem odpowiednie definicje zostaną przez Mozillę bezpośrednio w przeglądarce.

Jedyną różnicą pomiędzy normalną stroną / skryptem JavaScript, a tymi wskazanymi w ramach manifestu dostawcy (pola workerURL dla JavaScript i sidebarURL dla HTML panelu bocznego) to dostęp do obiektu navigator.mozSocial w drzewie DOM dokumentu. To własnie navigator.mozSocial udostępnia API pozwalające na realizację postawionych przed Social API wymagań. Dodatkowo oczekuje się, że kod wskazywany przez workerURL będzie implementował HTML5 Shared Worker definiując przynajmniej metody onconnect oraz ondisconnect wywoływane odpowiednio przy uruchomieniu i zamknięciu przeglądarki – kod ten ma realizować funkcje związane między innymi z obsługą powiadomień, a także akcji użytkownika np. kliknięcia w guzik rekomendacji oraz obsługą dalszych zdarzeń w wyświetlonym dialogu.

Obiekt navigator.mozSocial definiuje atrybut isVisible zawierający informację o tym czy panel boczny i powiązane panele są widoczne jak również definiuje kolejne metody:

  • getWorker() – zwraca referencję do obiektu wskazanego w manifeście jako worker
  • openPanel(url, offset, callback) – otworzy mały panel powiązany z panelem bocznym w zadanej odległości, informując o tym obiekt wskazany jako callback
  • closePanel() – zamknie panel utworzony przez openPanel
  • openChatWindow(url, callabck) – utworzy nam niezależny panel przypięty do dolnej ramki przeglądarki wyświetalający się zawsze w aktywnej zakładce – stworzony z myślą o oknach czatu
  • getAttention() – ma na celu zwrócenie uwagi użytkownika, w zależności do wersji będzie to mogło być miganie, wydanie odpowiedniego dźwięku czy jakiś inny efekt.

Pełniejszą dokumentacje znajdziemy na stronach fundacji Mozilla – Social API przy czym powinniśmy pamiętać, że prace nad tą propozycją standardu w dalszym ciągu trwają. Na chwilę obecną można przyznać, że Social API przedstawia ciekawe możliwości w dodatku w sposób przystępny dla twórców kolejnych dostawców usług społecznościowych do przeglądarki Firefox.

To czy rzeczywiście coś leży na rzeczy i taka integracja z przeglądarką jest potrzebna, a co więcej czy zostanie przyjęta pozostanie do oceny historii, aczkolwiek ja widzę pewien potencjał na oszczędzenie tutaj paru kliknięć podczas typowego przeglądania internetu oraz spore pole do zastosowań w ramach powstających w technologii HTML5 przeglądarkowych gier.

Autor: Kamil „Mamut” Balwierz

Korekta ortografii: Tomek „Monastor” Niedźwiedź

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: