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]

Blink
Developer(s)The Chromium Project and contributors
Initial release3 April 2013 (2013-04-03)[1]
Repository
Written inC++
TypeBrowser engine
LicenseBSD and LGPLv2.1
Websitewww.chromium.org/blink/

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

  1. "[chrome] Log of /releases/28.0.1463.0/DEPS". Src.chromium.org. Retrieved 31 December 2016.
  2. "AUTHORS - chromium/src.git - Git at Google". googlesource.org.
  3. "Google, Opera Fork WebKit. Samsung Joins Firefox to Push Servo". infoq.com. April 2013.
  4. "Blink: A rendering engine for the Chromium project". The Chromium Blog. Retrieved 3 April 2013.
  5. 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.
  6. 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.
  7. Shankland, Stephen (3 April 2013). "Google parts ways with Apple over WebKit, launches Blink". CNet. Retrieved 25 November 2013.
  8. "Which webkit revision is Blink forking from?". blink-dev mailing list. Retrieved 18 April 2013.
  9. "'(fwd) Greetings from the Safari team at Apple Computer' – MARC". Lists.kde.org. 7 January 2003. Retrieved 2 May 2017.
  10. "The WebKit Open Source Project". Retrieved 7 April 2012.
  11. "Blink". QuirksBlog. April 2013. Retrieved 4 April 2013.
  12. "Download the new Microsoft Edge based on Chromium". support.microsoft.com. Retrieved 27 January 2020.
  13. "Blink Developer FAQ". The Chromium Projects. Retrieved 22 October 2014.
  14. Siracusa, John (12 April 2013). "Hypercritical: Code Hard or Go Home". Hypercritical.co. Retrieved 15 June 2013.
  15. "How Blink works". Google Docs. Retrieved 6 May 2021.
  16. "Blink Public API". chromium.googlesource.com. Retrieved 15 August 2022.
  17. "WebView for Android". Retrieved 22 April 2017.
  18. Hallgrimur Bjornsson. "Introducing HTML5 extensions". Adobe Systems.
  19. "Adobe Edge Animate Team Blog". Adobe Systems. Archived from the original on 29 October 2011. Retrieved 24 September 2018.
  20. "CEF integration in Dreamweaver". Helpx.adobe.com. Retrieved 31 December 2016.
  21. "Open Source". Spotify.com. Retrieved 31 December 2016.
  22. "Chromium Embedded Framework - Valve Developer Community". Developer.valvesoftware.com. Retrieved 31 December 2016.
  23. "Developer diary: Creating a desktop client for Conclave - 10×10 Room". 10x10room.com. 24 April 2014. Archived from the original on 18 January 2017.
  24. "Qt WebEngine Overview". Qt Project. Retrieved 31 December 2016.
  25. "Introducing the Qt WebEngine". www.qt.io. Retrieved 6 May 2021.
  26. "Qt Switching From WebKit To Chromium Engine - Phoronix". www.phoronix.com. Retrieved 6 May 2021.
  27. "DotNetBrowser". Retrieved 12 May 2021.
  28. "FreshPorts www/chromium". freshports.org. 13 October 2010. Retrieved 3 October 2021.
  29. "openports.se www/chromium". openports.se. 19 December 2009. Retrieved 3 October 2021.
  30. 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.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.