chrome & opera extensions - gug spŠ tábor

58
Chrome & Opera Extensions Radek Šimko [email protected] Martin Štekl [email protected] 16. března 2011 Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 1 / 58

Upload: radek-simko

Post on 21-Dec-2014

520 views

Category:

Technology


5 download

DESCRIPTION

GUG SPŠ Tábor (Czech Republic) - Chrome & Opera Extensions http://sps-tabor.gug.cz/2011/02/zveme-na-akci-chrome-opera-extensions.html

TRANSCRIPT

Page 1: Chrome & Opera Extensions - GUG SPŠ Tábor

Chrome & Opera Extensions

Radek Š[email protected]

Martin Š[email protected]

16. března 2011

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 1 / 58

Page 2: Chrome & Opera Extensions - GUG SPŠ Tábor

GTUGGoogle Technical User Groups

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 2 / 58

Page 3: Chrome & Opera Extensions - GUG SPŠ Tábor

GUG v České republice

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 3 / 58

Page 4: Chrome & Opera Extensions - GUG SPŠ Tábor

Proběhlé akce

Google Maps Application DevelopmentEffective programming in IntelliJ IDEAGoogle Web Toolkit (lecture, workshop)CZNIC: Internet administration, routing protocols and the way to IPv6In what are Chrome extensions better than Firefox plugins?Google Chrome hackatonGUGcampOpen source Red Hat vs. GoogleDjango and Google App EngineFlash and HTML5HTML5 and Android hackatonSelenium...

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 4 / 58

Page 5: Chrome & Opera Extensions - GUG SPŠ Tábor

Jak zůstat v kontaktu?

http://www.gug.cz

http://twitter.com/gugcz

http://www.facebook.com/GUG.cz

http://www.youtube.com/gugczgroup

http://groups.google.com/group/gugcz

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 5 / 58

Page 6: Chrome & Opera Extensions - GUG SPŠ Tábor

Vytvořte HTML5/CSS3 aplikaci velikosti max. do 1kB (1024 bajtů)/připojené jQuery se nepočítá/ a krátce nám ji před akcí představte.

Nejlepší 3 aplikace získají ceny! Prezentace vašich aplikací budou zároveňzpropagovány na GUG.cz.

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 6 / 58

Page 7: Chrome & Opera Extensions - GUG SPŠ Tábor

Agenda

Chrome Extensions (30-45 min)UIAPIpublishing (WebStore)měření úspěšnosti (Google Analytics)FAQ

Opera Extensions (30-45 min)Struktura rozšířeníTypy rozšířeníAPIPublikační proces

Live coding show - Chrome Extension

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 7 / 58

Page 8: Chrome & Opera Extensions - GUG SPŠ Tábor

Proč Chrome Extensions?

Vše již léta známé technologie (HTML & CSS & JS)Spolehlivě obsáhlá implementace HTML5 & CSS3Integrované debuggovací nástrojePřipravené nástroje pro deployment (Google Code)Veřejná galerie rozšíření, kam kdokoliv může přispívat

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 8 / 58

Page 9: Chrome & Opera Extensions - GUG SPŠ Tábor

manifest.json

manifest.json

{"name": "FIT Checker","version": "0.7","description": "Extension pro studenty FIT CTU","icons": {

"16": "media/img/icon-16.png","48": "media/img/icon-48.png","128": "media/img/icon-128.png"},

"browser_action": {"default_icon": "media/img/icon-19.png","default_title": "FIT Checker","default_popup": "popup.html"

},"options_page": "settings.html","permissions": [

"tabs","https://edux.fit.cvut.cz/*"

]}

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 9 / 58

Page 10: Chrome & Opera Extensions - GUG SPŠ Tábor

Chrome UIJak může extension interagovat s uživatelem

1 Browser action2 Page action3 Override pages

1 Bookmark manager2 History3 New tab

4 Desktop Notifications5 Context Menu6 Option Pages

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 10 / 58

Page 11: Chrome & Opera Extensions - GUG SPŠ Tábor

I. Browser actionAkce vyvolaná po kliknutí na ikonku v toolbaru

manifest.json

// ..."browser_action": {

"default_icon": "images/icon19.png","default_title": "Google Mail","default_popup": "popup.html"

},// ...

(a) Popup (b) Action

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 11 / 58

Page 12: Chrome & Opera Extensions - GUG SPŠ Tábor

II. Page action

manifest.json

// ..."page_action": {

"default_icon": "icons/foo.png","default_title": "Do action","default_popup": "popup.html"

}// ...

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 12 / 58

Page 13: Chrome & Opera Extensions - GUG SPŠ Tábor

III. Override pages

1 Bookmark manager - chrome://bookmarks2 History - chrome://history3 New tab - chrome://newtab

manifest.json

// ..."chrome_url_overrides" : {"pageToOverride": "myPage.html"// pageToOverride = (bookmarks|history|newtab)},// ...

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 13 / 58

Page 14: Chrome & Opera Extensions - GUG SPŠ Tábor

IV. Desktop Notifications

HTML nebo plain-text hodnoty částí toastuvar notification1 = webkitNotifications.createNotification(

’48.png’,’Hello!’,’Lorem ipsum...’

);

var notification2 = webkitNotifications.createHTMLNotification(’notification.html’

);

notification1.show();

DEMORadek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 14 / 58

Page 15: Chrome & Opera Extensions - GUG SPŠ Tábor

V. Context Menu

integer chrome.contextMenus.create(object createProperties, function callback)

chrome.contextMenus.remove(integer menuItemId, function callback)

chrome.contextMenus.removeAll(function callback)

chrome.contextMenus.update(integer id, object updateProperties, functioncallback)

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 15 / 58

Page 16: Chrome & Opera Extensions - GUG SPŠ Tábor

VI. Option PagesOddělená strana pro nastavení celé extension

Možnost ukládat nastavení lokálně do prohlížečeLocalStoragevar foo = localStorage.getItem("bar");localStorage.setItem("bar", foo);

WebSQL (SQLite)var db = openDatabase(’foo’, ’1.0’, ’foo’, 2 * 1024);db.transaction(function (tx) {

tx.executeSql(’INSERT INTO foo (id, text) VALUES (1, "foobar")’);}, function(tx, result){

sucessCallback(result);}, function(tx, error){

errorCallback(error);});

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 16 / 58

Page 17: Chrome & Opera Extensions - GUG SPŠ Tábor

Chrome APIs

1 Background page2 Content script3 Message passing4 Cross-origin XHR5 Bookmarks6 Cookies7 Tabs

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 17 / 58

Page 18: Chrome & Opera Extensions - GUG SPŠ Tábor

I. Background pageOtevřená HTML stránka po celou dobu životního cyklu prohlížeče

Dokud běží alespoň jedna instance Chrome, beží všechny background page.

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 18 / 58

Page 19: Chrome & Opera Extensions - GUG SPŠ Tábor

II. Content script

Otravná reklama a její „standardní“ odstranění je neobvykle nemožné,nebo drahé (AdBlock apod.)Doplnění funkčnosti webu (často funkčnosti, která je jinak „premium“)

manifest.json

// ..."content_scripts": [

{"matches": ["http://www.google.com/*"],"css": ["mystyles.css"],"js": ["jquery.js", "myscript.js"]

}]// ...

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 19 / 58

Page 20: Chrome & Opera Extensions - GUG SPŠ Tábor

III. Message passingZpůsob komunikace mezi jednotlivými částmi rozšíření

contentScript.js

chrome.extension.sendRequest({greeting: "hello"}, function(response) {console.log(response.farewell);

});

background.html

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {console.log(sender.tab ?

"from a content script:" + sender.tab.url :"from the extension");

if (request.greeting == "hello")sendResponse({farewell: "goodbye"});

elsesendResponse({});

});

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 20 / 58

Page 21: Chrome & Opera Extensions - GUG SPŠ Tábor

IV. Cross-origin XHR

var xhr = new XMLHttpRequest();xhr.open("GET", "https://www.google.com", true);xhr.onreadystatechange = function() {if (xhr.readyState == 4) {

console.log(xhr.responseText);}

};xhr.send();

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 21 / 58

Page 22: Chrome & Opera Extensions - GUG SPŠ Tábor

V. Bookmarks

chrome.bookmarks.create(object bookmark, function callback)

chrome.bookmarks.get(string or array of string idOrIdList, function callback)

chrome.bookmarks.getTree(function callback)

chrome.bookmarks.search(string query, function callback)

chrome.bookmarks.remove(string id, function callback)

chrome.bookmarks.onCreated.addListener(function(string id, BookmarkTreeNodebookmark) {...});

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 22 / 58

Page 23: Chrome & Opera Extensions - GUG SPŠ Tábor

VI. Cookies

chrome.cookies.get(object details, function callback)

chrome.cookies.set(object details)

chrome.cookies.getAll(object details, function callback)

chrome.cookies.onChanged.addListener(function(object changeInfo) {...});

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 23 / 58

Page 24: Chrome & Opera Extensions - GUG SPŠ Tábor

VII. Tabs

chrome.tabs.create(object createProperties, function callback)

chrome.tabs.captureVisibleTab(integer windowId, object options, functioncallback)

chrome.tabs.detectLanguage(integer tabId, function callback)

chrome.tabs.executeScript(integer tabId, object details, function callback)

chrome.tabs.insertCSS(integer tabId, object details, function callback)

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 24 / 58

Page 25: Chrome & Opera Extensions - GUG SPŠ Tábor

Aktualizace

Aktualizační mechanismus Extensions (XML) – plně automatizováno

Změna oprávněníPokud se změní oprávnění v nové verzi, uživatel je dotázán

Každé rozšíření == unikátní ID vygenerované privátním klíčemNikdo jiný, než majitel privátního klíče, nemůže vydat aktualizaci kdané extension

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 25 / 58

Page 26: Chrome & Opera Extensions - GUG SPŠ Tábor

FAQ - Answers

Kdo z vás vyvinul nějakou Chrome Extension?

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 26 / 58

Page 27: Chrome & Opera Extensions - GUG SPŠ Tábor

FAQ - Answers

Jak přesunout extension z vlastního hostingu na WebStore a neztratituživatele?

Vydat novou verzi s WebStore-ovou update URLPřibalit key.pem (stávající privátní klíč)

manifest.json

"update_url": "http://clients2.google.com/service/update2/crx",

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 27 / 58

Page 28: Chrome & Opera Extensions - GUG SPŠ Tábor

FAQ - Answers

Jak může extension využít již uložené přihlašovací údaje v prohlížeči?Otevřít tab na pozadí a spustit vlastní JS kód

chrome.tabs.create({’url’: ’https://server.with.saved.credentials.com’,’selected’: false

}, function(tab) {chrome.tabs.executeScript(tab.id, {

’code’:"var data = {};" +"data.user = document.forms[’login’].username.value;" +"data.pass = document.forms[’login’].password.value;" +"data.tab_id = " + tab.id + ";" +"chrome.extension.sendRequest(data);"

});});

chrome.extension.onRequest.addListener(function(request) {

chrome.tabs.remove(request.tab_id);success(request);

});

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 28 / 58

Page 29: Chrome & Opera Extensions - GUG SPŠ Tábor

FAQ - Answers

Jaká úskalí může skrývat komunikace se servery via HTTPS?Nedůvěryhodný certifikát => komunikace nemožná

Měření úspěchů pomocí Google AnalyticsWebStore

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 29 / 58

Page 30: Chrome & Opera Extensions - GUG SPŠ Tábor

Q & A

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 30 / 58

Page 31: Chrome & Opera Extensions - GUG SPŠ Tábor

Opera Extensions

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 31 / 58

Page 32: Chrome & Opera Extensions - GUG SPŠ Tábor

Proč Opera Extensions?

Ano nebo ne?Podobné jako Chrome Extensions:

SpolečnéHTML, CSS, JavaScriptVeřejná galerie rozšíření

Opera postrádáPodpora HTML5 a CSS3 není kompletníDebuggovací nástroje nemají přímý přístup k rozšířeníNěkteré API funkce

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 32 / 58

Page 33: Chrome & Opera Extensions - GUG SPŠ Tábor

Struktura rozšíření

/config.xml/index.html/background.js/popup.html/icons/example.png/options.html

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 33 / 58

Page 34: Chrome & Opera Extensions - GUG SPŠ Tábor

Struktura rozšířeníconfig.xml

W3C standardDefinice informací o rozšířeníPotřebná oprávněníPočáteční uživatelské nastavení

<?xml version="1.0" encoding="utf-8" ?><widget xmlns="http://www.w3.org/ns/widgets" id="extensions:example" version="

1.0.0"><name>Example Extension</name><description>Short description</description><author href="http://example.org/tony/" email="[email protected]">Tony Manero

</author><license>License text</license><icon src="icons/icon-128.png"/><access origin="http://ajax.googleapis.com"/><update-description href="http://example.org/example/updates.xml"/>

</widget>

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 34 / 58

Page 35: Chrome & Opera Extensions - GUG SPŠ Tábor

Struktura rozšířeníindex.html

Inicializace rozšířeníProces na pozadí

theButton = opera.contexts.toolbar.createItem({title : "Click here",icon : "icons/icon-18.png",popup : {

href : "popup.html",width : "460px",height : "600px"

}});opera.contexts.toolbar.addItem(theButton);

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 35 / 58

Page 36: Chrome & Opera Extensions - GUG SPŠ Tábor

Struktura rozšířeníoptions.html

Další obyčejná HTML stránkaExistuje vzor designu od OperyPravděpodobně bude obsahovat formulář a (hodně) javascriptUkládání nastavení přes background procesUkládání do widget.preferences

Pevně daný název souboru

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 36 / 58

Page 37: Chrome & Opera Extensions - GUG SPŠ Tábor

Typy rozšíření

Injected script + index.htmlButton + PopupA bookmarklet extensionContent analysisContent-aware actionAuto-action

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 37 / 58

Page 38: Chrome & Opera Extensions - GUG SPŠ Tábor

Typy rozšířeníInjected script + index.html

Jednoduché, nevyužívá výhody APIPrůběžně se něco vykonává, uživatel pravděpodobně ani neví, že tamněco takového jeNapříklad: Redirect to HTTPS

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 38 / 58

Page 39: Chrome & Opera Extensions - GUG SPŠ Tábor

Typy rozšířeníButton + Popup

Zobrazení HTML stránky v popupuUžitečné pro klienty webových služebPo otevření popupu vlastně jen obyčejný webNapříklad: FIT Checker

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 39 / 58

Page 40: Chrome & Opera Extensions - GUG SPŠ Tábor

Typy rozšířeníA bookmarklet extension

Pracuje se stránkouUmožňuje měnit design a UI webuNapříklad: AdBlock+

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 40 / 58

Page 41: Chrome & Opera Extensions - GUG SPŠ Tábor

Typy rozšířeníContent analysis

Provede se při načtení stránky, výsledky akce v popupu nebo natlačítkuAnalýza webu - použití nejvíce asi u vývojářských nástrojůMožnost použití: vytvoří v popupu galerii obrázků na stránce

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 41 / 58

Page 42: Chrome & Opera Extensions - GUG SPŠ Tábor

Typy rozšířeníContent-aware action

Podobné jako předchozí, jen pracuje až po kliknutí na tlačítkoNemusíme chtít validovat HTML při každém načtení stránkyNapříklad: Validator

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 42 / 58

Page 43: Chrome & Opera Extensions - GUG SPŠ Tábor

Typy rozšířeníAuto-action

"hlídací pes"Akce spouštěné jednou za daný časPoužití u hlídačů na různé novinkyNapříklad: GMail Checker

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 43 / 58

Page 44: Chrome & Opera Extensions - GUG SPŠ Tábor

Opera API

Background processBrowser ToolbarInjected ScriptsPopupWindows and TabsMessaging

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 44 / 58

Page 45: Chrome & Opera Extensions - GUG SPŠ Tábor

Opera APIBackground process

Přístup k toolbaruopera.contexts.toolbar;

Informace o rozšířeníwindow.widget.author;window.widget.preferences;

Jako jediný má přístup k rozšíření jako celkuPráva na práci s okny a tabyopera.extension.tabs;opera.extension.windows;

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 45 / 58

Page 46: Chrome & Opera Extensions - GUG SPŠ Tábor

Opera APIBrowser Toolbar

Umožňuje práci s toolbaremopera.contexts.toolbar.length;

Vytváření, změny a rušení tlačítekvar button = opera.contexts.toolbar.createItem({

title : ’Example Extension’,icon : ’icons/icon-18.png’

});opera.contexts.toolbar.addItem(button);opera.contexts.toolbar.removeItem(button);

Nastavení popupuPráce s badge

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 46 / 58

Page 47: Chrome & Opera Extensions - GUG SPŠ Tábor

Opera APIInjected Scripts

Pracují s objektem prohlížečeopera.extension;opera.addEventListener();opera.removeEventListener();

Množství událostí k poslechuPosílání zprávopera.postError(); // odesle zpravu do error consoleopera.extension.postMessage();

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 47 / 58

Page 48: Chrome & Opera Extensions - GUG SPŠ Tábor

Opera APIPopup

Jednoduchéondisconnect;onmessage;

Posílání zprávpostMessage();

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 48 / 58

Page 49: Chrome & Opera Extensions - GUG SPŠ Tábor

Opera APIWindows and Tabs

Zatím nekompletníOtevírání a zavírání tabů/okenUmožňuje přístup ke všem otevřeným oknům

opera.extension.windows.addEventListener();opera.extension.windows.create();opera.extension.windows.getAll();

opera.extension.tabs.addEventListener();opera.extension.tabs.create();

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 49 / 58

Page 50: Chrome & Opera Extensions - GUG SPŠ Tábor

Opera APIMessaging

Posílání zpráv mezi jednotlivými částmi rozšířeníBackground processInjected scriptPopup

Řešení přes odchytávání událostíMezi Injected scriptem a popupem lze vytvořit komunikační kanál

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 50 / 58

Page 51: Chrome & Opera Extensions - GUG SPŠ Tábor

Přihlášení k webové aplikaci

Cookies nejsou sdílené s prohlížečemAni simulace otevření tabu na pozadí nepomůžeNutné vlastní přihlášeníUložené jméno a heslo ve widget.preferences

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 51 / 58

Page 52: Chrome & Opera Extensions - GUG SPŠ Tábor

Publikační proces

Nestačí jen nahrát na webSchvalovací proces

Nahrát rozšíření na web OperyPočkat, zda bude schválenoPublikováno nebo odmítnuto

Požadavky ke schváleníJménoKategorieLicencePopisIkona 64x64Alespoň jeden screenshot

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 52 / 58

Page 53: Chrome & Opera Extensions - GUG SPŠ Tábor

Aktualizace

Soubor ve formátu XMLPokud není třeba aktualizovat, je prázdnýAutomatické aktualizace každých 24 hodinNa vlastním serveru potřeba definice typu souboru pro rozšířeníUživatel musí dát souhlas s důvěryhodností

<?xml version="1.0" encoding="utf-8" ?><update-info

xmlns="http://www.w3.org/ns/widgets"src="http://example.org/tony/example.oex"version="1.0.0"

></update-info>

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 53 / 58

Page 54: Chrome & Opera Extensions - GUG SPŠ Tábor

Q & A

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 54 / 58

Page 55: Chrome & Opera Extensions - GUG SPŠ Tábor

Srovnání Chrome a Opery

PozitivaChrome

HTML5, CSS3Opera

BezpečnostPráce s uživatelským nastavenímSchvalovací proces

NegativaChrome

Cookies safety?Opera

HTML5, CSS3Nesdílené cookiesAPI omezenější než u Chrome

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 55 / 58

Page 56: Chrome & Opera Extensions - GUG SPŠ Tábor

Co teď?

Hurá programovat!

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 56 / 58

Page 57: Chrome & Opera Extensions - GUG SPŠ Tábor

Odkazy

http://dev.opera.com/articles/view/opera-extensions-quick-documentation-overview/http://code.google.com/chrome/extensions/index.html

betadevtrunk

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 57 / 58

Page 58: Chrome & Opera Extensions - GUG SPŠ Tábor

To už je vše přátelé

Děkujeme za pozornost

Radek Šimko, Martin Štekl (FIT ČVUT) Chrome & Opera Extensions 16. března 2011 58 / 58