# WebKit

WebKit es una plataforma para aplicaciones que funciona como base para el navegador web Safari y Epiphany, entre otros. También fue base de Dooble Web Browser, Midori, Maxthon, Opera y QupZilla. Está basado originalmente en el motor de renderizado KHTML del navegador web del proyecto KDE, Konqueror. WebKit logra 100/100 en la prueba Acid3 desde el 26 de marzo de 2008. Desde junio de 2005 es software libre bajo las licencias GNU GPL, GNU LGPL y BSD.

## Características de la Aplicación

La API de WebKit está desarrollada en Objective-C y posibilita interactuar con un servidor web para recuperar y renderizar páginas web, descargar archivos, y administrar plugins.
Webkit incluye dos frameworks de más bajo nivel: WebCore, un analizador sintáctico y motor de renderizado de HTML basado en KHTML, y JavaScriptCore, un intérprete de JavaScript basado en KJS.
Con los lanzamientos pre-alfa se está incluyendo un depurador de Javascript llamado Drosera.

## Historia

El código que se convertiría en WebKit se inició en 1998 como parte de un proyecto KDE de renderizado HTML denominado KHTML y del motor JavaScript de KDE (KJS). El nombre del proyecto y 'WebKit' fueron creados en 2002, cuando Apple Inc. creó un «fork» (bifurcación) de KHTML y KJS. Los desarrolladores de Apple explicaron en un correo electrónico a los desarrolladores de KDE que estos motores permiten un desarrollo más fácil que otras tecnologías por el hecho de ser pequeños (menos de 140.000 líneas de código), diseñados limpiamente y compatibles con las normas. KHTML y KJS fueron portados a Mac OS X con la ayuda de una biblioteca adaptada y renombrada como WebCore y JavaScriptCore. JavaScriptCore se anunció en un correo electrónico a una lista de correo de KDE en junio de 2002, junto con la primera versión de los cambios de Apple. WebCore fue anunciado en la Macworld Expo en enero de 2003 por el CEO de Apple Steve Jobs con el lanzamiento del navegador web Safari. JavaScriptCore se incluyó por primera vez con el Mac OS X v10.2 como un framework privado, que Apple utilizaba en su aplicación Sherlock, mientras que WebCore debutó con la primera beta de Safari. Mac OS X v10.3 fue el primer lanzamiento de un sistema operativo de Apple que instalaba el paquete WebKit, a pesar de que ya se había compilado como una versión menor del OsX 10,2.

## Software libre

El 7 de junio de 2005, Dave Hyatt, desarrollador de Safari, anunció en su blog que Apple estaba liberando el código fuente de WebKit como software libre (anteriormente, solo eran libres WebCore y JavaScriptCore) y el acceso a la estructura de árbol de WebKit CVS además de la base de datos de errores. De esta manera se anunció en la WWDC (Conferencia Mundial de Desarrolladores de Apple) del 2005 por el vicepresidente Senior de Ingeniería de Apple Bertrand Serlet. A mediados de diciembre de 2005, se incluyó soporte para SVG (gráficos vectoriales escalables) y se incluyó en la distribución estándar y a principios de enero de 2006, el código fuente se migró desde el CVS a Subversion. JavaScriptCore WebKit y los componentes WebCore están disponibles bajo la GNU General Public License, mientras que el resto de WebKit está disponible bajo una licencia tipo BSD.

## WebKit2

WebKit2 se anunció el 8 de abril de 2010. WebKit2 está diseñado desde cero para generar un modelo de procesos divididos, donde el contenido de la web (Javascript, HTML, diseño, etc) se ejecuta cada uno en proceso separado. Este modelo es similar a lo que a día de hoy Google Chrome tiene implementado, la principal diferencia es que en WebKit2 ha construido el modelo de proceso de separación directamente en un framework, permitiendo que otros desarrolladores lo puedan utilizar. Actualmente WebKit2 está disponible para MacOS, GNU/Linux (con el proyecto WebkitGTK+) y Windows, cualquiera que desee portar el código a otro sistema puede hacerlo sin restricciones, ya que es software libre.

## Cronología

El 7 de junio de 2005, Dave Hyatt, uno de los desarrolladores de Safari, anunció que Apple Computer convertía a WebKit y sus dos componentes en un desarrollo de código abierto y permitiría el acceso al sistema CVS y a la herramienta Bugzilla dedicados al mismo.
El 13 de junio de 2005, Nokia anunció que se encontraba desarrollando un navegador web basado en WebKit, que finalmente sería conocido como Web Browser for S60.
El 15 de diciembre de 2005 se implementó el soporte para Gráficos Vectoriales Escalables.
El 10 de enero de 2006 se oficializó el cambio del sistema de control de versiones CVS por Subversion.
El 2 de junio de 2008, el intérprete de JavaScript pasó a ser SquirrelFish. Este proyecto pasó a ser SquirrelFish Extreme (SFX) en septiembre del 2008. SFX compila JavaScript en código máquina eliminando la necesidad de un intérprete y por lo tanto acelerando la velocidad de ejecución de JavaScript. Hasta la fecha (28 de septiembre de 2008) la única arquitectura soportada es la x86.
El 13 de febrero de 2013, se anuncia que el navegador web Opera deja Presto, su propio motor de renderizado, para unirse a Webkit y contribuir con sus desarrollos a este motor y a Chromium, y anuncia que dará soporte a sus navegadores para Android y Apple iOS en los próximos meses.
El 3 de abril de 2013, se anuncia que el navegador web Google Chrome abandona WebKit, para crear su propio motor de renderizado Blink. Opera secunda la propuesta.

## Aplicaciones que utilizan WebKit
### Navegadores web

* Dooble Web Browser hasta el año 2018.
* Konqueror (desde su versión 4.5 tiene la opción para usarlo, desde la 4.6 tiene la opción para usarlo por defecto)
* Safari
* Google Chrome (antes de usar Blink)
* Chromium (antes de usar Blink)
* Microsoft Edge (solo en iOS)
* Epiphany
* Arora
* Rekonq
* Swift
* OmniWeb (desde su versión 5.5)
* Shiira
* Web Browser for S60
* SRWare Iron (bifurcación de Google Chrome)
* Palm Pre & Pixi
* RockMelt
* Maxthon
* Playstation 3 (navegador) (desde su versión de firmware 4.10)
* Mijitt Explorer (Navegador de Mijitt OS)
* Opera (desde la versión 15) (antes de usar Blink)
* WebPositive

### Editores de texto

Estos editores de texto utilizan WebKit para permitirle al usuario ver páginas web.
* BBEdit
* skEdit
* SubEthaEdit
* TextMate

### Agregadores

Estos agregadores utilizan WebKit para mostrar canales web (y posiblemente también para permitir navegar por Internet).
* NetNewsWire
* NewsFire
* Vienna
* Liferea

### Otras aplicaciones

* Adium, un cliente de mensajería instantánea multiprotocolo, usa WebKit para mostrar los mensajes.
* Colloquy, un cliente IRC y SILC, usa WebKit para mostrar las conversaciones.
* Drosera, un depurador de JavaScript incluido con WebKit.
* Growl, un notificador que usa WebKit para algunos de sus avisos.
* Xyle scope, un depurador de hojas de estilo en cascada, utiliza WebKit para las diferentes visualizaciones del código fuente.
* Android, el sistema operativo para móviles por Google.
* Steam, plataforma de distribución digital de videojuegos desarrollado por Valve Corporation.
* Blackberry OS 6