Blink (browser engine)
Blink is a browser engine developed as part of the Chromium project with contributions from Apple, Google, Meta, Microsoft, Opera Software, Adobe, Intel, IBM, Samsung, and others.[2][3][4] It was first announced in April 2013.[5]
Developer(s) | The Chromium Project and contributors |
---|---|
Initial release | 3 April 2013[1] |
Repository | |
Written in | C++ |
Type | Browser engine |
License | BSD and LGPLv2.1 |
Website | www |
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,[6][7] which was introduced by Netscape Navigator and supported by Presto- and Gecko-based browsers until August 2013.[8] Blink has, contrary to its name, never functionally supported the element.
History
Blink is a fork of the WebCore component of WebKit,[9] which was originally a fork of the KHTML and KJS libraries from KDE.[10][11] It is used in Chrome starting at version 28,[12][13] Microsoft Edge starting at version 79,[14] Opera (15+),[12] Vivaldi, Brave, Amazon Silk and other Chromium-based browsers and frameworks.
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.[15] Aside from these planned changes, Blink initially remained relatively similar to WebCore.[13]
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.[16]
Internals
Blink engine has the following components:[17]
- 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.[18]
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.[19]
- Chromium Embedded Framework is widely used in software by Adobe Systems,[20][21][22] streaming media services such as Spotify,[23] video game services such as Battle.net and Steam,[24] etc.[25]
- 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.[25][26] 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.[27][28] Qt developers found it easier to maintain and test it.[27]
- 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.[29]
Platforms
Chromium Blink is implemented on seven platforms: Windows, macOS, Linux, ChromeOS, Fuchsia, Android, and Android WebView.
Blink is also unofficially supported on FreeBSD[30] and OpenBSD.[31]
iOS versions of Chromium continue to use the WebKit WebCore renderer.[32]
See also
References
- "[chrome] Log of /releases/28.0.1463.0/DEPS". Src.chromium.org. Retrieved 31 December 2016.
- Kingsley-Hughes, Adrian. "The real reason why Google forked WebKit". ZDNET. Red Ventures. Retrieved 4 August 2023.
- "AUTHORS - chromium/src.git - Git at Google". googlesource.org.
- "Google, Opera Fork WebKit. Samsung Joins Firefox to Push Servo". infoq.com. April 2013.
- "Blink: A rendering engine for the Chromium project". The Chromium Blog. Retrieved 3 April 2013.
- Lardinois, Frederic (3 April 2013). "Google Forks WebKit And Launches Blink, A New Rendering Engine That Will Soon Power Chrome And Chrome OS". TechCrunch. Retrieved 25 November 2013.
- Shankland, Stephen (3 April 2013). "Google parts ways with Apple over WebKit, launches Blink". CNet. Retrieved 25 November 2013.
- Kobie, Nicole (7 August 2013). "Firefox 23 finally kills "blink" tag". PC Pro. Archived from the original on 2 December 2013. Retrieved 25 November 2013.
- "Which webkit revision is Blink forking from?". blink-dev mailing list. Retrieved 18 April 2013.
- "'(fwd) Greetings from the Safari team at Apple Computer' – MARC". Lists.kde.org. 7 January 2003. Retrieved 2 May 2017.
- "The WebKit Open Source Project". Retrieved 7 April 2012.
- "Blink". QuirksBlog. April 2013. Retrieved 4 April 2013.
- "Google going its own way, forking WebKit rendering engine". Ars Technica. April 2013. Retrieved 4 April 2013.
- "Download the new Microsoft Edge based on Chromium". support.microsoft.com. Retrieved 27 January 2020.
- "Blink Developer FAQ". The Chromium Projects. Retrieved 22 October 2014.
- Siracusa, John (12 April 2013). "Hypercritical: Code Hard or Go Home". Hypercritical.co. Retrieved 15 June 2013.
- "How Blink works". Google Docs. Retrieved 6 May 2021.
- "Blink Public API". chromium.googlesource.com. Retrieved 15 August 2022.
- "WebView for Android". 28 February 2014. Retrieved 22 April 2017.
- Hallgrimur Bjornsson (9 August 2023). "Introducing HTML5 extensions". Adobe Systems.
- "Adobe Edge Animate Team Blog". Adobe Systems. Archived from the original on 29 October 2011. Retrieved 24 September 2018.
- "CEF integration in Dreamweaver". Helpx.adobe.com. Retrieved 31 December 2016.
- "Open Source". Spotify.com. Retrieved 31 December 2016.
- "Chromium Embedded Framework - Valve Developer Community". Developer.valvesoftware.com. Retrieved 31 December 2016.
- "Developer diary: Creating a desktop client for Conclave - 10×10 Room". 10x10room.com. 24 April 2014. Archived from the original on 18 January 2017.
- "Qt WebEngine Overview". Qt Project. Retrieved 31 December 2016.
- "Introducing the Qt WebEngine". www.qt.io. Retrieved 6 May 2021.
- "Qt Switching From WebKit To Chromium Engine - Phoronix". www.phoronix.com. Retrieved 6 May 2021.
- "DotNetBrowser". Retrieved 12 May 2021.
- "FreshPorts www/chromium". freshports.org. 13 October 2010. Retrieved 3 October 2021.
- "openports.se www/chromium". openports.se. 19 December 2009. Archived from the original on 29 April 2020. Retrieved 3 October 2021.
- EMIL PROTALINSKI (4 April 2013). "Google's Blink Q&A: New rendering engine will replace WebKit on all platforms in 10 weeks with Chrome 28". thenextweb.com. Retrieved 10 July 2018.