NPAPI: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 1:
La ''NPAPI'' (o ''Netscape Plugin Application Programming Interface
Il suo successo può essere in parte attribuito alla sua semplicità. Un plugin dichiara di gestire alcuni tipi [[MIME]] (ad esempio "audio/mp3") mediante le informazioni sui file presentati. Quando il browser incontra tale tipo di contenuti carica il plugin associato, delimita lo spazio all'interno dell'area di visualizzazione da assegnare al plugin, e infine vi trasferisce dati. Al plugin viene, quindi, assegnato il compito di gestire i dati nel modo più opportuno, sia esso visivo, audio o qualunque altra cosa. In questo modo, un plugin viene eseguito nella propria parte di pagina, a differenza dei browser precedenti, che dovevano lanciare un'applicazione esterna per gestire i tipi di contenuto a loro ignoti.
Riga 13:
Le aziende stabilirono di incontrarsi la settimana successiva per trovare il modo di rendere appetibile quello che era conosciuto come "l'hack di Allan" per il mercato. Sebbene Netscape fosse pronta ad incorporare i PDF direttamente all'interno del browser, e certamente Adobe ne avrebbe guadagnato, Padgett propose un approccio diverso: un'architettura basata sui plugin. Gli ingegneri Adobe Gordon Dow e Nabeel Al-Shamma avevano da poco aggiunto un'architettura a plugin ad Acrobat Reader, per ridurre gli sforzi degli sviluppatori di terze parti. Padgett aveva partecipato allo sviluppo, e riteneva che se si fosse fornita l'occasione, altre aziende (e magari altri team all'interno di Adobe) avrebbero scelto di estendere le capacità del Web. Clark ed il team alla fine si convinsero, e cominciarono a disegnare l'API che avrebbe dovuto supportare il nuovo modello di sviluppo. Sebbene PDF sia stato il pioniere, si potrebbe affermare che plugin successivi, quali [[Macromedia Flash]] e [[Java]], abbiano inciso molto di più sul panorama del web.
== Supporto agli script ==
<!--▼
=== LiveConnect ===
Con Netscape 4, la NPAPI venne estesa per permettere di sfruttare i plugin tramite degli script. Questa funzionalità venne chiamata [[LiveConnect]]. Un plugin poteva implementare e restituire un'istanza di una classe [[Java]]. I metodi pubblici esposti da questa classe rappresentavano l'interfaccia cui potevano essere applicati degli script. La classe poteva essere chiamata tramite codice [[JavaScript]], come anche da altre applet Java in esecuzione all'interno della pagina, mentre il browser vigilava sulle chiamate tra i diversi
contesti d'esecuzione.
Lo svantaggio di LiveConnect risiedeva nell'essere legato a doppio filo con la versione di Java integrata all'interno del browsr Netscape. Ciò impediva al browser di utilizzare altri runtime, ed appesantiva significativamente il download del browser, dal momento che Java era un componente fondamentale per lo scripting dei plugin.
Inoltre, la programmazione di LiveConnect non era affatto immediata. Lo sviluppatore doveva definire una classe Java per il plugin, eseguirla tramite un compilatore di intestazioni Java specializzato ed implementare i metodi nativi. La gestione delle stringhe, delle eccezioni e degli altri oggetti Java dal [[C++]] era frustrante e certamente non lapalissiana. A peggiorare le cose era il fatto che LiveConnect utilizzava un'API adesso obsoleta per invocare metodi C++ nativi da Java, chiamato JRI. La tecnologia JRI è stata da tempo sostituita dalla [[Java Native Interface|JNI]].
▲<!--
=== XPConnect ===
LiveConnect proved extremely problematic for Mozilla. The dependency on an obsolete and proprietary Java runtime and the JRI API meant that LiveConnect never really worked.
|