Blink (browser engine)
Developer(s) | The Chromium Project and contributors |
---|---|
Initial release | 3 April 2013 |
Repository | |
Written in | C++ |
Type | Browser engine |
License | BSD and LGPLv2.1 |
Website | www |
Blink is a browser engine developed as part of the Chromium project with contributions from Google, Meta, Microsoft, Opera Software, Adobe, Intel, IBM, Samsung, and others. It was first announced in April 2013.
Naming
Blink's naming was influenced by a combination of two major factors: the connotations of speed, and a reference to the non-standard presentational blink HTML element, which was introduced by Netscape Navigator and supported by Presto- and Gecko-based browsers until August 2013. Blink has, contrary to its name, never functionally supported the element.
History
Blink is a fork of the WebCore component of WebKit, which was originally a fork of the KHTML and KJS libraries from KDE. It is used in Chrome starting at version 28, Microsoft Edge starting at version 79, Opera (15+), Vivaldi, Brave, Amazon Silk and other Chromium-based browsers and frameworks.[citation needed]
Much of WebCore's code was used for features that Google Chrome implemented differently such as sandboxing and the multi-process model. These parts were altered for the Blink fork, and although slightly bulkier, it allowed greater flexibility for adding new features. The fork also deprecates CSS vendor prefixes; existing prefixes will be phased out and new experimental functionality will instead be enabled on an opt-in basis. Aside from these planned changes, Blink initially remained relatively similar to WebCore.
By commit count, Google was the largest contributor to the WebKit code base from late 2009 until 2013 when they started work on their fork, Blink.
Internals
Blink engine has the following components:
- DOM, HTML DOM and CSS rendering engines
- Web IDL implementation
- Skia Graphics engine — makes calls to an underlying Graphics Library (like OpenGL, Vulkan, DirectX etc) which depends on the platform
- V8 JavaScript engine
Public API
Blink exposes a public API that allows browsers such as Chromium to interact with Blink while remaining insulated from internal changes to the browser engine.
Frameworks
Several projects exist to turn Chromium's Blink into a reusable software framework for other developers:
- In currently supported versions of the Android operating system (since version 4.4), the WebView component is based on Blink instead of WebKit.
- Chromium Embedded Framework is widely used in software by Adobe Systems, streaming media services such as Spotify, video game services such as Battle.net and Steam, etc.
- NW.js (previously known as Node-Webkit) is the original Node.js based framework and is being developed by Intel.
- Electron is a Node.js based framework developed by GitHub.
- In the Qt 5 framework, the Qt WebEngine module supersedes the previous QtWebKit module. In 2013, Qt WebEngine replaced the Apple-developed WebKit engine with Blink because of its cross-platform features (like WebRTC, WebGL, WebSockets, system calls, etc.) that work out of the box. Qt developers found it easier to maintain and test it.
- Microsoft Edge WebView2 is a framework that allows developers of Windows apps to implement a desktop app using web technologies, replacing the older WebView EdgeHTML based or WebBrowser MSHTML based controls.
- DotNetBrowser is a proprietary .NET Chromium-based library that can be used to use Chromium capabilities in a wide range of .NET applications, including desktop and server solutions.[better source needed]
Platforms
Chromium Blink is implemented on seven platforms: Windows, macOS, Linux, ChromeOS, Fuchsia, Android, and Android WebView.
Blink is also unofficially supported on FreeBSD and OpenBSD.
iOS versions of Chromium continue to use the WebKit WebCore renderer.