5267926250_a5c285c0b5_b

Jak Napisać Extension do Google Chrome

Dość prosto. Nawet nie spodziewałem się  jak prosto :) Wystarczą 3 pliki:

  • minifest.json
  • background.html
  • script.js

Manifest jest najważniejszy. To on definiuje do czego mamy dostęp a do czego nie. W manifeście umieszczamy także informacje o samym rozszerzeniu, takie jak nazwa, opis, numer wersji. Oto przykładowy manifest:

{
  "name": "Nasz Extension",
  "description": "Opis",
  "version": "0.1",
  "permissions": ["contextMenus","tabs"],
  "background_page": "background.html"
}

permissions to lista uprawnien do których chcemy mieć dostęp. Listę uprawnień można znaleźć w API.
background_page to strona html która będzie odpalana w tle. W moim przypadku zawiera on tylko kod JS, a dokładnie link do pliku script.js

API jest dość proste. Po prostu używamy obiektu chrome i dodajemy potrzebne nam funkcje :) Np aby dodać dodatkową funkcje w context menu które pojawia się po naciśnięciu prawego przycisku myszy wystarczy:

var properties = {
    title: 'tytuł wyświetlany użytkownikowi',
    contexts: ['link'],
    onclick: function(info, tab) {
        // kod po kliknieciu
    }
};

chrome.contextMenus.create(properties);

Proste jednak jęzeli chcecie się podzielić rozszerzeniem z światem za pomocą Google Web Store to musicie przygotować ikonkę (128×128), screena, video albo pokaz slajdów oraz 5$ za rejestracje developera w Google Web Store.

Autor zdjęcia: Zack Casey

bing

„Nieuczciwy” Bing czyli czarny PR

W ostatnim tygodniu zrobiło się głośno o nieuczciwych praktykach Binga. O co dokładniej chodzi? Osoby używające bing toolbara z włączoną opcją pomocy w poprawie aplikacji poprzez wysyłanie anonimowych informacji do Microsoftu były źródłem problemu. Wydaje się nic wielkiego.

Google także za pomocą swojego toolbaru śledzi co użytkownicy robią i używa tych danych później do polepszenia jakości swoich produktów.

Problem się pojawił gdy się okazało, że duża część użytkowników która ma włączony Bing Toolbar korzysta z wyszukiwarki Google, W ten oto sposób wyniki na zapytania w Google szybko powędrowały do wyszukiwarki Bing. Nic wielkiego, ale gdy Google zauważyło to i przedstawiło całemu światu dowody że Bing kopiuje wyniki od Google to zamiast przyznać się do praktyki panowie od PR Microsoftu postanowili udawać że nic się nie stało i zaprzeczyć wszystkiemu.

Dział PR podał także że wyniki pochodzą z genialnego algorytmu Bingu, który pobiera dane z różnych źródeł. Niestety był to zły pomysł, oto dlaczego:

Oczywiście to wierzchołek góry lodowej.Znacznie więcej i mniej humorystycznych opinii pojawiło się w serwisach newsowych, gdzie ogólnie ing jest obecnie uznawany za tego złego, a Google świeci swoim Don’t be evil.

Wniosek: Jeżeli coś naprawdę zrobiłeś źle to nie ukrywaj tego tylko zaproponuj rozwiązanie problemu bo wszyscy i tak dowiedzą się prawdy a przy okazji wytrą Cię z błotem.

jQuery

jQuery 1.5

Team jQuery wydał nową dużą wersje bblioteki. Tym razem mamy do pobrania jQuery 1.5 A co w nim takiego nowego?

Przepisany od nowa $.ajax

Biblioteka do obsługi AJAXu została całkowicie przepisana. Pierwszą rzeczą która się rzuca w oczy jest zmiana definicji. Od teraz wygląda ona następująco:

$.ajax(url, [settings]);

Według mnie jest to uproszczenie bardzo pożądane. Szczególnie początkującym będzie znacznie łatwiej zrozumieć tak poteżną bibliotekę do obsługi AJAXa. Kolejną zmianą jest enkapsulacja XHR do obiektu jqXHR. Sam obiekt jqXHR jest instancją kolejnej nowości w jQuery 1.5 – Deferred Object. Ten nowy typ obiektu ma tą właściwość że może do dowolnego eventu podpiąć nie jeden callback ale kilka. Na dodatek callbaki są ustawiane w kolejkę i są według tej kolejki uruchamiane. Jednak to nie wszystko :) Kolejne callbacki można dodawać w trakcie lotu :) nawet po wywołaniu eventu. Dodany callback w locie zostaje dodany do kolejki i zostanie wykonany jak tylko kolejka się opróżni.

var jqXHR = $.ajax(url, [settings]);
// kod aplikacji
jqXHR.error(function() { alert('Cos poszlo nie tak') });

Rozszerzono także API, dzięki ktoremu programiści mogą pisać pluginy do biblioteki jQuery.ajax wprowadzają now typy danych, filtry czy transportery.

jQuery.sub()

Nie podoba ci się implementacja jakiejś metody w jQuery? Teraz przy pomocy jQuery.sub() możesz spokojnie nadpisać co tylko sobie chcesz w całej bibliotece jQuery, a jednocześnie zachowując pewność że nie zepsujesz działania żadnego pluginu.

Wydajność

W nowej wersji pod młotek optymalizacji poszły takie metody jak children(), prev() i next(). Ponieważ są to chyba najczęściej używane metody w aplikacji opartych na jQuery więc zysk dla prawdziwych aplikacji będzie naprawdę spory.