WebKit

motore usato per il rendering delle pagine web

WebKit è un motore di rendering per browser web utilizzato per il rendering delle pagine web. Il progetto WebKit è stato creato da Apple il 25 giugno 2001[3].

WebKit
software
Logo
Logo
Generemotore di rendering (non in lista)
SviluppatoreKDE, Apple[1], Nokia, Google, RIM, Palm, Samsung e altri
Ultima versione
  • 611.3.10.1.18 (10 febbraio 2023)
  • 7617 (1º novembre 2023)
Sistema operativoMultipiattaforma
LicenzaAlcune componenti GNU Lesser General Public License e il resto con licenze stile BSD[2]
(licenza libera)
Sito webwebkit.org/

Viene rilasciato con licenza BSD 2-Clause. La base mondiale installata ammonta alla quota di circa il 50.3%[4] di tutti i browsers.

Esso viene utilizzato oggi da browser come ad esempio Safari di Apple per macOS e iOS, PlayStation a partire da PS3, Dolphin di Samsung, Opera dalla v16, Tizen, Amazon Kindle, BlackBerry browser, Symbian con S60, Midori, Rekonq di KDE e molti altri sia come motore browser, che come motore di rendering web all'interno di applicazioni eterogenee come ad esempio in Creative Suite di Adobe o Steam di Valve o Plasma Workspace.

È stato usato in passato da Google Chrome fino alla versione 27, Android Web browser fino alla versione KitKat, e successivamente al 2013 questi hanno proseguito derivando dal WebKit un proprio fork WebCore/JavaScriptCore denominato Blink.

In generale, quando si crea un browser si inizia dall'individuazione del motore di rendering su cui basare il client. WebKit nacque in Apple, sviluppato inizialmente da parte di Don Melton nel 2001 (a capo del WebKit Team e del Safari Team di Apple) da un fork del motore open source KHTML e il motore JavaScript di KDE (KJS), grazie ad un adattamento e modifica delle librerie iniziali fu poi sviluppato col nome WebCore e JavaScriptCore. Melton ha spiegato in un'e-mail agli sviluppatori di KDE[5] che KJS e KHTML hanno permesso uno sviluppo più facile rispetto alle altre tecnologie disponibili in virtù dell'essere di piccole dimensioni (meno di 140.000 linee di codice) e progettato in modo pulito nonché conforme agli standard.

Il suo sviluppo fu annunciato da Steve Jobs ed, all'epoca di Mac OS X v 10.2, fu integrato nel software di sistema Sherlock; successivamente debuttò il 7 gennaio 2003 nella versione Mac OS X Panther come nuovo browser web Safari.

Il 7 giugno 2005 lo sviluppatore Dave Hyatt di Safari annunciò sul suo blog che Apple stava per pubblicare il codice sorgente di WebKit, aprendo l'accesso al CVS e al tool Bugzilla. L'annuncio coincise con il WWDC del 2005.

Sono poi stati eseguiti molti porting, ad esempio per Windows (ora abbandonato da Apple), AmigaOS, MorphOS, Gnome, GTK toolkit per Linux, Enlightenment Foundation (EFL), QT Software per Linux (ora abbandonato dalla versione successiva alla 4.4), Orygin WB, ed altri.

Ad oggi tutte le compagnie che integrano il Webkit collaborano con Apple nel suo sviluppo attuale.

Caratteristiche

modifica

WebKit è un progetto open source che nasce dalla combinazione di componenti di codice KDE con tecnologie e sviluppo di Apple. WebKit può interagire con un server web, richiamare e visualizzare le pagine web, scaricare i file e gestire i plugin. È disponibile come aggiornamento per macOS a partire dalla versione 10.2.7 e integrato in Mac OS X Panther e successivi. Esso permette a sviluppatori terzi di includere con facilità nelle loro applicazioni molte delle funzioni proprie di Safari.

Webkit ha passato i test Acid2 e Acid3, essendo completamente aderente al pixel-perfect rendering ed esente da problemi di scorrevolezza sull'hardware di riferimento;

esso include due framework di basso livello che incapsulano:

* WebCore, un parser HTML e un renderer derivato da KHTML

È un DOM (Document Object Model) per SVG (Scalable Vector Graphics) del lay out e rendering, rilasciato sotto GNU Lesser General Public License (LGPL). L'API in Objective C di WebKit si interfaccia ai ''Web/JavaScript Cores'' in C++, permettendo un accesso facilitato alle applicazioni basate su Cocoa API. Nel tempo sono state incluse ulteriori migliorie, come l'astrazione cross-platform C++ , e port con accesso ad altre API.

* JavaScriptCore, un motore JavaScript derivato da KJS.

È una implementazione del motore JavaScript delle librerie PCRE (regular expression libraries) e dello JavaScript Engine KJS , ma da questi elementi si è poi diversificato moltissimo, con nuove funzioni e performances elevate, sino ad arrivare ad una completa riscrittura totale nel 2008, con un interprete bytecode denominato SquirrelFish, poi evoluto in SqurrelFish Extreme (SFX, Nitro) con ulteriori accelerazioni di esecuzione JavaScript. Nel 2014 è stato introdotto un compilatore ottimizzato Just-in-Time (JIT) denominato FTL (Fourth-Tier-LLVM, Faster-Than-Light) che usa LLVM per generare codice macchina ottimizzato, e nel 2016 fu poi sostituito da B3 (Bare Bones Backend).

Applicazioni che usano WebKit

modifica
Browser
Altri usi
  • Mail (Apple), un'applicazione che si occupa della gestione delle e-mail.[8]
  • Adium, un'applicazione di chat, che usa WebKit per visualizzare i messaggi.
  • BBEdit, un editor di testo e di pagine HTML, che usa WebKit per visualizzare l'anteprima delle pagine web.
  • Colloquy, un client chat che supporta IRC e SILC, che usa WebKit per visualizzare il traffico delle chat.
  • Growl, un sistema di notificazione globale, che usa WebKit per delle sue viste.
  • NetNewsWire, un lettore RSS che usa WebKit per visualizzare i feed RSS e per navigare sul web.
  • NewsFire, un gestore di feed RSS, che usa WebKit per la sua interfaccia.
  • Qt, un framework per la costruzione di applicazione che integra WebKit per il rendering delle pagine web.
  • Steam, la piattaforma di Valve usa WebKit nel suo browser interno dal cambiamento dell'interfaccia del 2010.
  • SubEthaEdit, un editor di testo collaborativo, che usa WebKit per generare l'anteprima delle pagine web.
  • TextWrangler, un editor di testo e HTML, versione ridotta (e freeware) di BBEdit.
  • WebKitGtk è un ambizioso progetto per il porting di WebKit su piattaforma GTK+.
  • Xcode, l'IDE di Apple, che usa WebKit per visualizzare la documentazione.

Una lista completa è disponibile sulla wiki del progetto WebKit.

  1. ^ '(fwd) Greetings from the Safari team at Apple Computer' — MARC, su lists.kde.org, 7 gennaio 2003. URL consultato il 13 gennaio 2013.
  2. ^ licenza bsd di webkit, su webkit.org. e licenza GNU LGPL di webkit, su webkit.org.
  3. ^ Melton, Don (August 25, 2011). "Attention Internets! WebKit is not 10 years old today. That happened on June 25. I know the date because that's when I started the project.". Twitter. Retrieved October 13, 2011.
  4. ^ "StatCounter". StatCounter archived from the original on May 26, 2012. Retrieved April 14, 2015.
  5. ^ "'(fwd) Greetings from the Safari team at Apple Computer' — MARC". Lists.kde.org. January 7, 2003. Retrieved January 13, 2013.
  6. ^ :HanSolaris Group, su hansolaris.org. URL consultato il 22 settembre 2012 (archiviato dall'url originale il 30 marzo 2013).
  7. ^ Limited Software Archiviato il 28 ottobre 2010 in Internet Archive.
  8. ^ Due vulnerabilità zero-day in iOS, iPadOS e macOS, punto-informatico.it, 18 agosto 2022

Voci correlate

modifica

Altri progetti

modifica

Collegamenti esterni

modifica