NPAPI: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Archive.today ___domain not accessible from Italy (x1)) #IABot (v2.0.9.5) (GreenC bot |
|||
(6 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1:
La '''NPAPI''' (''Netscape Plugin Application Programming Interface'') è un'architettura [[multipiattaforma]] per i [[plugin (informatica)|plugin]] utilizzata da molti [[browser web]]. Sviluppata inizialmente per la famiglia di browser [[Netscape Communications Corporation|Netscape]], a partire da [[Netscape Navigator]] 2.0, è stata implementata in seguito in altri browser, tra cui [[Mozilla Application Suite]], [[Mozilla Firefox]], [[Google Chrome|Chrome]], [[Safari (browser)|Safari]], [[Opera (browser)|Opera]], [[Konqueror]] e alcune versioni di [[Microsoft]] [[Internet Explorer]]. L'architettura è in via di [[obsolescenza]] e i browser più comuni hanno smesso di supportarla.
== Storia ==
Riga 25:
LiveConnect si rivelò estremamente problematico per Mozilla. La dipendenza da un runtime Java obsoleto e proprietario e dall'API JRI implicava l'impossibilità per LiveConnect di funzionare.
Mozilla stava già utilizzando [[XPCOM]] per definire le interfacce a molti oggetti implementati in C++. Ogni interfaccia veniva definita tramite un file [[Interface Description Language|IDL]] (Interface Definition Language), e passata a un compilatore IDL che produceva file d'intestazione e una libreria indipendente dal [[linguaggio di programmazione]] che costituiva la rappresentazione binaria dell'interfaccia: quest'ultima descriveva l'interfaccia, i metodi, i parametri, le strutture dati e le enumerazioni.
[[XPCOM]] usa le informazioni sul tipo di libreria per regolamentare le chiamate tra diversi contesti di thread e tra JavaScript codice nativo C++ compilato. Dal momento che XPConnect viene utilizzato pesantemente da Mozilla, è molto robusto, supportato e documentato. A partire da Netscape 6.1 e Mozilla 0.9.2, la NPAPI è stata estesa in modo tale che un plugin potesse restituire un'interfaccia a se stesso gestibile tramite script, mentre XPConnect si occupa di gestire le chiamate a detto plugin da JavaScript e dal codice C++.
Riga 31:
Ciò rese non più necessaria la dipendenza da Java, ma provocò alcuni problemi. In particolare, poiché l'implementazione viene effettuata utilizzando componenti XPCOM, una tecnologia simile a [[Component Object Model|Microsoft COM]], lo sviluppatore del plugin deve saper gestire il reference counting, le interfacce, l'IDL e così via per poter implementare lo scripting. Inoltre, la dipendenza da XPCOM comportava alcuni problemi nel collegamento dinamico delle librerie (ad esempio il problema della [[classe base fragile]]) che dovevano essere risolti per permettere al plugin di funzionare correttamente con browser differenti. XPCOM è stato in seguito modificato in modo tale da fornire una versione collegata staticamente per risolvere tali problemi. Quest'approccio richiede anche l'installazione di un file. xpt nella stessa locazione scelta per la DLL, altrimenti il plugin sembrerà funzionare, mentre la funzionalità di scripting non sarà disponibile.
===
Alla fine del 2004, tutti i maggiori sviluppatori di browser (eccetto [[Microsoft]]) scelsero congiuntamente [https://www.mozilla.org/projects/plugins/npruntime.html npruntime] come estensione alla NPAPI originaria per fornire funzionalità di scripting, tramite un'API simile alla vecchia API stile C, e indipendente da altre tecnologie quali Java o XPCOM.
Riga 105:
* {{en}} [https://www.mozilla.org/projects/plugins/plugin-host-control.html Un controllo ActiveX che offre supporto per i plugin] – Componente sostituivo per plugin.ocx, che è stato rimosso da Internet Explorer.
* {{cita web|url=http://news.com.com/IE+competitors+mull+ActiveX+alternative/2100-1032_3-5253504.html?tag=nl|titolo=I rivali di IE sostengono un'alternativa ad ActiveX – CNET|lingua=en|urlmorto=sì|urlarchivio=https://web.archive.org/web/20130308014956/http://news.com.com/IE+competitors+mull+ActiveX+alternative/2100-1032_3-5253504.html?tag=nl|dataarchivio=8 marzo 2013}}
{{Interfacce web}}
{{Portale|internet|telematica}}
[[Categoria:Browser]]
[[Categoria:Mozilla]]
|