Autor(es) original(es) | Google [1] |
---|---|
Desarrollador(es) | Los proyectos Chromium, [2] controlados por Google [3] |
Lanzamiento inicial | 2 de septiembre de 2008 ( 2 de septiembre de 2008 ) | [1]
Repositorio |
|
Escrito en | C++ principalmente, [4] HTML , CSS , JavaScript para la interfaz de usuario y el conjunto de pruebas [5] [6] |
Motores | Blink ( WebKit en iOS/iPadOS), V8 |
Sistema operativo |
|
Plataforma | IA-32 , x86-64 , ARM , ARM64 |
Licencia | BSD-3 [7] y otros [8] |
Sitio web | www.chromium.org/Inicio |
Chromium es un proyecto de navegador web gratuito y de código abierto , desarrollado y mantenido principalmente por Google . [3] Es una base de código ampliamente utilizada , que proporciona la gran mayoría del código para Google Chrome y muchos otros navegadores, incluidos Microsoft Edge , Samsung Internet y Opera . El código también lo utilizan varios marcos de aplicaciones .
Chromium es un proyecto de software libre y de código abierto . La parte creada por Google se comparte bajo la licencia BSD de 3 cláusulas . [7] Las dependencias de terceros están sujetas a una variedad de licencias, incluidas MIT , LGPL , Ms-PL y una licencia triple MPL / GPL / LGPL . [8]
Esta licencia permite a cualquier parte crear el código base y compartir el ejecutable resultante del navegador con el nombre y el logotipo de Chromium. Por eso, muchas distribuciones de Linux lo hacen, así como FreeBSD y OpenBSD . [9]
Chromium proporciona la gran mayoría del código fuente de Google Chrome , pero existen diferencias importantes.
A Chromium le faltan las siguientes características de Chrome : [9]
Google eligió primero el nombre "Chrome" para su navegador. [11] [12] Luego, la versión de código abierto se denominó "Chromium" porque el metal cromo se utiliza para hacer el cromado . [1]
Chrome tiene la misma interfaz de usuario que Chromium, pero con un esquema de colores de la marca Google. A diferencia de Chromium, Chrome no es de código abierto; sus archivos binarios tienen licencia de software gratuito según los Términos de servicio de Google Chrome. [13]
El código base del navegador Chromium contiene más de 32 millones de líneas de código fuente , excluyendo comentarios y líneas en blanco . [4]
Chromium ha sido un proyecto de Google desde sus inicios, [1] [3] y los empleados de Google han realizado la mayor parte del trabajo de desarrollo . [14]
Google se refiere a este proyecto y a su rama ChromiumOS como "los proyectos Chromium" [2] , y sus empleados utilizan direcciones de correo electrónico @chromium.org para este trabajo de desarrollo. Sin embargo, en términos de gobernanza, los proyectos Chromium no son entidades independientes; Google mantiene un control firme sobre ellos [3] .
El código base del navegador Chromium se utiliza ampliamente, por lo que otros han hecho contribuciones importantes, entre los que destacan Microsoft , Igalia , Yandex , Intel , Samsung , LG , Opera , Vivaldi y Brave . [14] [3] Algunos empleados de estas empresas también tienen direcciones de correo electrónico @chromium.org.
Google diseñó el primer navegador multiproceso. [ 15] [16] En comparación con los diseños de proceso único, esta arquitectura tiene una mejor capacidad de respuesta con muchas pestañas del navegador abiertas y los beneficios de seguridad del aislamiento de procesos , pero con la desventaja de un mayor uso de memoria. [17] [18] Esto se perfeccionó más tarde como aislamiento de sitios web por proceso, lo que proporciona seguridad adicional. [17]
Otra decisión de diseño importante fue que la interfaz de usuario del navegador fuera minimalista . [16] [19] [20]
El motor del navegador se basó originalmente en WebKit de Apple , que Google consideró la "elección obvia" de las opciones disponibles. [21] Sin embargo, el novedoso diseño multiproceso de Google requirió cambios en el motor. Esta divergencia con la versión de Apple aumentó con el tiempo, por lo que en 2013 Google bifurcó oficialmente su versión como motor Blink . [21] [22]
C++ es el lenguaje principal y comprende más de la mitad del código base. [4] Esto incluye los motores Blink y V8 , la implementación de HTTP y otros protocolos , el sistema de almacenamiento en caché interno , la API de extensión y la mayor parte de la interfaz de usuario . [23]
El resto de la interfaz de usuario, llamada WebUI, se implementa en HTML , CSS y JavaScript (generalmente a través de la transpilación de TypeScript ). [23] [5] Una amplia colección de pruebas de plataformas web también está escrita en estos lenguajes más XML . [6] [4]
Las bibliotecas de terceros que proporcionan una funcionalidad esencial, [24] como SQLite y numerosos códecs , están escritas en C , C++ o, a partir de 2023, [25] [26] el lenguaje más nuevo Rust . [4]
El soporte de sistemas operativos móviles requiere lenguajes especiales: para Android tanto Java como Kotlin , y para iOS tanto Objective-C como Swift . [5] [4]
Python es el lenguaje principal del sistema de compilación, [4] que también tiene archivos de configuración especiales para la herramienta GN de Google. [27]
El sistema de seguimiento de errores es un sitio web de acceso público. [28] Los participantes se identifican por sus direcciones de correo electrónico .
El sistema de integración continua Chromium crea y prueba automáticamente la base de código varias veces al día. [29]
Las compilaciones se identifican mediante un número de versión de cuatro partes que es major.minor.build.patch. [30] Este esquema de versiones y los puntos de ramificación que ocurren cada seis o siete semanas son de Google Chrome y su ciclo de desarrollo . [31]
Google Chrome debutó en septiembre de 2008 y, junto con su lanzamiento, también se puso a disposición el código fuente de Chromium, lo que permitió crear compilaciones a partir de él. [1] [32] [33]
Tras su lanzamiento, Chrome fue criticado por almacenar las contraseñas de un usuario sin la protección de una contraseña maestra. Google ha insistido en que una contraseña maestra no proporciona seguridad real contra piratas informáticos expertos , pero los usuarios argumentaron que protegería contra compañeros de trabajo o miembros de la familia que toman prestada una computadora y pueden ver las contraseñas almacenadas como texto sin formato . [34] En diciembre de 2009, el desarrollador de Chromium, P. Kasting, declaró: "Una contraseña maestra fue el problema 1397. Ese problema está cerrado. No implementaremos una contraseña maestra. Ni ahora, ni nunca. Debatir a favor de ello no hará que suceda. 'A un grupo de personas les gustaría' no hará que suceda. Nuestras decisiones de diseño no son democráticas. No siempre puedes tener lo que quieres". [35]
La versión 3 fue la primera versión alfa disponible para Linux . Chromium pronto incorporó temas nativos para Linux, utilizando el kit de herramientas GTK+ para permitir su adaptación al entorno de escritorio GNOME . [36] [37] [38] [39] La versión 3 también introdujo optimizaciones del motor JavaScript y temas seleccionables por el usuario. [40]
La versión 6 introdujo características para el minimalismo de la interfaz de usuario , ya que uno de los objetivos de Google era hacer que el navegador "se sintiera liviano (cognitiva y físicamente) y rápido". [20] Los cambios fueron un menú de herramientas unificado, sin botón de inicio por defecto (aunque configurable por el usuario), un botón combinado de recarga/detención y la barra de marcadores desactivada por defecto. También introdujo un lector de PDF integrado, compatibilidad con WebM y VP8 para usar con video HTML y una barra de URL más inteligente . [41] [42]
La versión 7 aumentó el rendimiento al doble del de las versiones anteriores mediante la aceleración de hardware . [43] [44] [45]
La versión 8 se centró en mejorar la integración con ChromeOS y las funciones de la nube , entre las que se incluyen aplicaciones web en segundo plano , comunicación remota con el host (que permite a los usuarios controlar de forma centralizada las funciones y configuraciones en otras computadoras) e impresión en la nube. [45]
La versión 9 introdujo una serie de características, incluida una barra de URL para exponer ataques de phishing y un entorno aislado para el complemento Adobe Flash . Otras incorporaciones fueron la biblioteca WebGL y el acceso a la nueva Chrome Web Store . [46] [47] [48]
En febrero, Google anunció que estaba considerando cambios a gran escala en la interfaz de usuario (UI), incluida al menos la eliminación parcial de la barra de URL , que había sido un pilar de los navegadores desde los primeros años de la Web . La UI propuesta iba a ser una consolidación de la fila de pestañas y la fila de botones de navegación, el menú y la barra de URL en una sola fila. La justificación era liberar más espacio en la pantalla para el contenido de la página web . Google reconoció que esto daría como resultado que las URL no siempre fueran visibles para el usuario, que los controles de navegación y los menús podrían perder su contexto y que la línea única resultante podría estar bastante abarrotada. [50] Sin embargo, en agosto, Google decidió que estos cambios eran demasiado arriesgados y archivó la idea. [51]
En marzo, Google anunció otras direcciones para el proyecto. Las prioridades de desarrollo se centraron en reducir el tamaño del ejecutable , integrar aplicaciones web y complementos , computación en la nube y compatibilidad con la interfaz táctil . [52] [53] Por lo tanto, se introdujo un botón multiperfil en la interfaz de usuario, lo que permite a los usuarios iniciar sesión en varias cuentas de Google y otras en la misma instancia del navegador. Otras adiciones fueron la detección de malware y la compatibilidad con transformaciones CSS aceleradas por hardware . [54] [55]
En mayo, ya se notaban los resultados de los intentos de Google de reducir el tamaño de los archivos de Chromium. Gran parte del trabajo inicial en esta área se concentró en reducir el tamaño de WebKit , el redimensionador de imágenes y el sistema de compilación de Android . [56] El trabajo posterior introdujo una versión móvil más compacta que redujo el espacio vertical de la interfaz de usuario. [57] [58]
Otros cambios en 2011 fueron la aceleración de GPU en todas las páginas, la adición de soporte para la nueva API de audio web y el cliente nativo de Google (NaCl) que permite que el código nativo proporcionado por terceros como binarios independientes de la plataforma se ejecute de forma segura dentro del propio navegador. [59] [60] La biblioteca de gráficos Skia de Google también se puso a disposición para todas las versiones de Chromium. [61] [62]
El servicio de sincronización añadido para Google Chrome en 2012 también podía ser utilizado por las compilaciones de Chromium. [63] [64] El mismo año, se añadió una nueva API para comunicación de audio y video de alta calidad, permitiendo a las aplicaciones web acceder a la cámara web y al micrófono del usuario después de pedir permiso para hacerlo. [65] [66] Luego se agregó la decodificación de video acelerada por GPU para Windows y soporte para el protocolo QUIC . [67] [68]
En 2013, el motor de renderizado WebKit modificado de Chromium se bifurcó oficialmente como el motor Blink . [21] [22]
Otros cambios en 2013 fueron la capacidad de restablecer perfiles de usuario y nuevas API de extensión del navegador . [69] También se agregaron indicadores de pestañas para el uso de audio y cámara web, así como el bloqueo automático de archivos detectados como malware . [70]
La versión 67 agregó el beneficio de seguridad del aislamiento de sitios web por proceso . [17] Luego, la versión 69 introdujo un nuevo tema de navegador, como parte del décimo aniversario de Google Chrome. [71] El mismo año, se agregaron nuevas medidas para reducir la publicidad abusiva. [72]
Desde 2021, el servicio de sincronización de Google Chrome ya no se puede utilizar en las compilaciones de Chromium. [73] [10]
A partir de la versión 110, solo Windows 10 y versiones posteriores son compatibles con los usuarios de Windows. [74]
Además de Google Chrome , muchos otros navegadores en desarrollo se basan en el código de Chromium. La mayoría de ellos son propietarios , como Chrome, pero algunos siguen siendo FOSS , como Chromium. [75] [76] [77] [78]
Principalmente no inglés
Estos notables marcos de aplicaciones incorporan un navegador Chromium como núcleo funcional de aplicaciones personalizadas :
Los dos componentes WebView destacados basados en Chromium también proporcionan una forma similar de crear aplicaciones:
Con cualquiera de los dos enfoques, la aplicación personalizada se implementa con HTML , CSS , JavaScript y otras tecnologías web. Además, la aplicación se puede implementar fácilmente en los sistemas operativos compatibles con Chromium. Desde la década de 2010, se han creado muchas aplicaciones de esta manera. (Dos ejemplos son Spotify y Slack ). [82] [83]
Hay una razón por la que cuando creamos Chrome minimizamos todo lo relacionado con Chrome para que todo lo que pasaras tiempo en el sitio web que te interesaba en ese momento. Queríamos que los usuarios se centraran en el contenido que estaban usando. La razón por la que el producto se llamó "Chrome" fue que queríamos minimizar el Chrome del navegador. Así es como lo pensamos.
Chrome fue el primer navegador con una arquitectura multiproceso.
Aquí se encuentran las fuentes del excelente marco de trabajo Chromium Embedded que utiliza el cliente de escritorio de Spotify.