Blink (browser engine)
Blink is a browser engine developed as part of the Chromium project with contributions from Google, Facebook, Microsoft, Opera Software, Adobe, Intel, IBM, Samsung, and others.[2][3] It was first announced in April 2013.[4]
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 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.[5][6][7]
History
Blink is a fork of the WebCore component of WebKit,[8] which was originally a fork of the KHTML and KJS libraries from KDE.[9][10] It is used in Chrome starting at version 28,[11][12] Microsoft Edge starting at version 79,[13] Opera (15+),[11] 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.[14] Aside from these planned changes, Blink initially remained relatively similar to WebCore.[12]
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.[15]
Internals
Blink engine has the following components:[16]
- 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
Internally, public API of the Blink doesn't rely entirely on the C++ Standard Template Library. Instead, it uses its own implementation.[17]
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.[18]
- Chromium Embedded Framework is widely used in software by Adobe Systems,[19][20][21] streaming media services such as Spotify,[22] video game services such as Battle.net and Steam,[23] etc.[24]
- 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.[24][25] 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.[26][27] Qt developers found it easier to maintain and test it.[26]
- 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.[28]
Platforms
Chromium Blink is implemented on seven platforms: Windows, macOS, Linux, Chrome OS, Fuchsia, Android, and Android WebView.
Blink is also unofficially supported on FreeBSD[29] and OpenBSD.[30]
iOS versions of Chromium continue to use the WebKit WebCore renderer.[31]
See also
- Comparison of browser engines
References
- "[chrome] Log of /releases/28.0.1463.0/DEPS". Src.chromium.org. Retrieved 31 December 2016.
- "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.
- 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.
- Shankland, Stephen (3 April 2013). "Google parts ways with Apple over WebKit, launches Blink". CNet. 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". Retrieved 22 April 2017.
- Hallgrimur Bjornsson. "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. 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.