NPAPI
La NPAPI (o Netscape Plugin Application Programming Interface') è un architettura multipiattaforma per i plugin utilizzata da molti browser web. Sviluppata inizialmente per la famiglia di browser Netscape, a partire da Netscape Navigator 2.0, è stata implementata in seguito in altri browser, tra cui Mozilla Application Suite, Mozilla Firefox, Safari, Opera, Konqueror ed alcune versioni di Microsoft Internet Explorer.
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.
L'API richiede che ogni plugin implementi e pubblichi un numero abbastanza piccolo di funzioni. Si tratta approsimativamente 15 funzioni in totale per l'inizializzazione, la creazione, la distruzione e il posizionamento dei plugin. La NPAPI supporta anche lo scripting, la stampa, la visualizzazione a schermo intero, i plugin windowless e lo streaming dei contenuti.
Storia
L'origine della funzionalità dei plugin Netscape va ricercata non in Netscape, ma in Adobe Systems. John Warnock, amministratore delegato di Adobe, ed Allan Padget, uno dei principali autori di Acrobat Reader, speravano che il formato di file di punta di Adobe, PDF, potesse espandere la propria sfera d'uso ben oltre l'ambito desktop.
Perciò, poco tempo dopo il rilascio della prima versione di Navigator da parte di Netscape, Padgett, insieme all'ingegner Eshwar Priyadrshan, tentò di trovare un modo per rendere PDF parte integrante dell'esperienza del Web. Il risultato fu un'applicazione dimostrativa mostrata a Warnock e a Jim Clark, amministratore delegato di Netscape. Prima di quella demo, gli unici formati nativi sul Web erano le pagine HTML e le immagini mostrate al loro interno. I collegamenti ad ogni altro tipo di file comportavano la richiesta all'utente di scaricare il file: fatto ciò, l'utente poteva aprire il file con l'applicazione più appropriata. In quella dimostrazione, tuttavia, quando un utente faceva click su un collegamento ad un file PDF, il file veniva aperto immediatamente all'interno della finestra del browser, mescolando indifferentemente la fruizione di pagine HTML e documenti PDF. Clark chiese con eccitazione chi di Netscape avesse fornito supporto tecnico per rendere possibile l'integrazione, ma scoprì che essa era stata raggiunta senza il coinvolgimento di Netscape, ma con un po' di reverse engineering del browser.