2. Why?
• Integrate deeply with a service
• Add new features to the browser
• Implement a recent spec in a lagging
browser
• Anything you can think of!
3. History
• 20th Century: plugins, native addons
• 2002: Mozilla 1.0 written in XUL and Javascript
• 2004: Firefox 1.0 with a focus on extensions
• 2007: FUEL (Firefox User Extension Library)
• 2009: Jetpack, Chrome Extensions
23. STDMETHODIMP CExplorerBar::SetSite(IUnknown *punkSite) {
//If a site is being held, release it.
if(m_pSite) {
m_pSite->Release();
m_pSite = NULL;
}
//If punkSite is not NULL, a new site is being set.
if (punkSite) {
//Get the parent window.
IOleWindow *pOleWindow;
m_hwndParent = NULL;
if(SUCCEEDED(punkSite->QueryInterface(IID_IOleWindow,
(LPVOID*)&pOleWindow))) {
pOleWindow->GetWindow(&m_hwndParent);
pOleWindow->Release();
}
if(!m_hwndParent) return E_FAIL;
if(!RegisterAndCreateWindow()) return E_FAIL;
//Get and keep the IInputObjectSite pointer.
if(SUCCEEDED(punkSite->QueryInterface(IID_IInputObjectSite,
(LPVOID*)&m_pSite))) {
return S_OK;
}
return E_FAIL;
}
return S_OK;
}
* Javascript : dans les pages, dans les serveurs, mais pas seulement !\n
* Etendre les fonctionalites du navigateur (Google Gears), fonctionalités de niche (Chrome to Phone)\n* Fonctionalités transversales sur toutes les pages\n* Exemple de Spellbound: correction orthographique dans Firefox\n
* Mozilla 1.0 bloated => Firefox 1.0 minimaliste mais avec extensions\n* Forte influence de Mozilla - visionnaire a l’epoque du Javascript “etoiles qui suivent le curseur”\n* Extensions Chrome = Aaron Boodman de Greasemonkey\n
* Firefox se base sur la meme plate-forme de développement que les extensions (Firefox lui-meme est écrit en Javascript !)\n* Google Chrome a ete developpe principalement par des gens qui viennent du monde Mozilla et ont tire profit de l’experience de Firefox\n
* Chrome: points d’extension clairement definis par une API, seuls points d’intégration\n* Empeche des developpeurs de faire n’importe quoi (stabilite, performances)\n
100% technos web - très facile d’accès pour les développeurs web\n
\n
\n
\n
\n
\n
\n
* Firefox: liberté totale !\n* API et points d’extension existent, mais pas d’obligation de se limiter a cela\n* Reecriture de pans entiers du navigateur, desactivation de fonctionalités\n* Problemes de compatibilite avec les nouvelles version de Firefox\n
* Juste javascript, HTML, CSS pour les choses simples\n* XUL langage de balises XML pour décrire les interfaces graphiques, nécessaire pour étendre l’interface graphique de Firefox\n* XPCOM pour aller encore plus loin et ajouter des composants natifs\n
\n
\n
* Projet qui existe depuis pres de 3 ans mais reste a l’etat de prototype\n* Apporte a Firefox la simplicité de developpement et les extensions installables sans redemarrage\n
\n
\n
\n
\n
\n
\n
\n
* API Javascript pour ajouter un lien vers un site, avec notifications\n* Positif : fait progresser l’interaction application web / desktop\n => point d’evolution majeur des navigateurs aujourd’hui\n* IE = gros progres au niveau du support des standards depuis IE8, IE9, IE10\n => ajoutez un support d’extensions en Javascript !\n
\n
* Les extensions sont commodes mais ont des inconvéniants: installation, mise a jour, depend du navigateur\n* Utilisez du pur web quand c’est possible, extensions seulement quand necessaire\n