What is a Browser Engines?
A browser engine is the core software that powers web browsers. It is responsible for critical functions like:
- Rendering HTML, CSS, JavaScript code from websites into visual webpages
- Parsing and executing JavaScript code
- Handling browser features like history, bookmarks, etc.
Popular browser engines include:
- Blink – Powers Chrome, Edge, Brave, Opera and more
- Gecko – Powers Firefox
- WebKit – Powers Safari
What is Blink?
Blink is an open-source browser engine that powers several major web browsers including Google Chrome, Microsoft Edge, Opera and Brave. It was first introduced in April 2013 as a fork of the WebKit browser engine which also powers Apple’s Safari browser.
Origins of Blink
Blink traces its origins to the initial version of WebKit created for Apple’s Safari browser in 2001. Google later adapted WebKit into its own browser engine for Chrome called WebCore. However over time, Google began making significant changes and enhancements to WebCore rendering it substantially different from Apple’s version of WebKit. This increase in complexity made collaboration on a common codebase difficult.
In April 2013, Google forked its WebCore component from WebKit – that became the starting point for the Blink rendering engine. This allowed Google to implement its own vision and innovation in Chrome, while Apple continued to evolve WebKit independently its own way. The result was two high-performance browser engines sharing some common heritage code.
Major Features of Blink
As a fork of WebKit, Blink inherits great support for modern web standards like HTML5, CSS3, JavaScript, etc. But over the years, Google has added several unique features to the engine like:
- Very fast JavaScript execution – Google’s V8 JavaScript engine integrated into Blink powers impressive speeds
- Multi-process architecture – Ensures browser stability and performance via process isolation
- Minimal UI – Light browser chrome focused on webpages
- Frequent updates – Gets new features, security and performance improvements every 6 weeks
Beyond that, some additional capabilities in Blink include:
Capability | Description |
---|---|
WebAssembly Support | Run near-native speed code on webpages |
WebRTC | Enable real-time video/audio communication |
Media Playback | HTML5 video and audio |
Web Payments | Easy payments integration via PaymentRequest API |
WebVR | Virtual reality content in the browser |
Blink Within Chromium
Because Blink powers Google Chrome, it is most often associated with Chromium – the open source project used to build Chrome and many other browsers.
Components of Chromium
Chromium is made up primarily of these components:
- Blink – Responsible for browser rendering and core functions
- V8 – The high-performance JavaScript execution engine
- Plugins – Like Adobe Flash, PDF viewer etc.
- Linux Libraries – Numerous system libraries for Linux builds
Of these, Blink plays a central role – integrating and interacting with the other components to deliver the complete browser.
Blink Within Chrome
Blink is a critical component within Google’s Chrome browser which includes other proprietary Chrome-only features like – automatic updates, Chrome Sync, translation engine, media codecs and DRM modules, crash reporting and feedback loops that are unique to the Chrome browser.
But the Blink engine itself remains identical between Chromium and Chrome builds.
Thus Blink forms the common foundation on which Chrome, Microsoft Edge, Brave etc are further built upon.
Development Of Blink
Blink is actively developed by Google plus contributions from the open source community. Over 900 companies and individuals have contributed to improving the Blink engine and related Chromium components.
Release Cycles
A key attribute of Blink’s development cycles are the frequent release timelines.
- New version of Blink ships every 6 weeks
- Browsers like Chrome roll-out updates in the subsequent weeks
This ensures users get the latest features, performance gains and security fixes on a predictable, rapid release schedule. And allows the project to get built more collaboratively.
Dev Channel
Experiments and implementations that are under active development can be tried out earlier via –
- Chromium’s Dev Channel – Users can build Chromium from source and test latest dev changes
- Chrome’s Canary Channel – Every night automated build with newest changes
This exposure allows enthusiastic users to try out latest innovations even before their stable release, and deliver valuable feedback in the process.
Governance Model
Google governs Blink and Chromium’s overall development much like other open source projects. The Chrome team sets high-level goals and priorities, but primarily –
- Numerous companies and independent developers contribute changes and improvements
- Features and fixes accepted based on alignment with project objectives, architecture and quality criteria
This meritocratic governance model focused on consensus building has fueled Chromium and Blink’s unprecedented growth.
Alphabet (Google’s parent company) continues to directly employ and set direction for the most active contributors to the project. But external developers have also been able to significantly impact the roadmap and drive innovations in meaningful ways.
Adoption Of Blink
Since its launch in 2013, Blink has seen massive adoption across the industry. This can be attributed to multiple factors:
- Google’s own push for Chromium across devices like desktop, Android, Chrome OS
- The web compatibility, performance and stability it provides
- Demonstrated ability to handle complexity at Google scale
- Trusted and large development community supporting it
Blink/Chromium is now used in more ways than just powering web browsers.
Use in Web Browsers
All major browsers except Safari currently use Blink directly or via Chromium:
- Google Chrome
- Microsoft Edge
- Brave
- Opera
- Vivaldi
- Yandex Browser
- Arc Browser
- Many regional browsers rely on Blink/Chromium like Kakaotalk Browser, Raider Browser, Amigo Browser etc.
Together these browsers account for around 65% of global desktop browser marketshare as per StatCounter – making Blink the dominant browser engine.
Use in Apps/OS
In addition, Blink/Chromium serves as the web rendering framework in these apps and platforms outside of desktop browsers:
Platform | Usage |
---|---|
Android Apps | Via Android System WebView that allows showing web content within native apps |
Chrome OS | The entire Chrome OS user interface is powered by web technologies and Blink |
Electron Desktop Apps | Cross-platform desktop app framework used by apps like Slack, Discord, WhatsApp |
Chromecast | Cast sender apps on phones/tablets use Blink to render web-based media |
Expanding beyond being just a browser engine, Blink now powers web views across mobile, desktop and living room devices used by billions!
Technical Architecture
Understanding Blink’s high level architecture is key to appreciating the innovations that make it unique.
Multi-process Model
Blink uses a multi-process architecture where the browser UI, tabs and extensions run in separate operating system processes isolated from each other. Some key benefits this provides are:
- Prevents 1 misbehaving tab from crashing entire browser
- Faster page loads – tabs gets own dedicated processes for parallel execution
- Higher security – exploit in one tab cannot access data from others
The various Blink sub-components communicate with each other via specialized interfaces called Mojo APIs – keeping them loosely coupled.
Rendering Engine
At the heart of Blink lies its standards-compliant HTML layout and rendering engine.
It features multiple innovations like –
- Parallel rendering pipeline to leverage multi-core processors
- Advanced image decoding and effects via GPU
- Optimized memory allocation and garbage collection logic
This engine parses HTML/CSS code and visually renders it to the screen at blazing speeds while fully supporting the latest web standards.
JavaScript Interpreters
For interpreting and executing JavaScript on webpages, Blink relies on Google’s V8 JavaScript engine. V8 features –
- Just-In-Time compiler for improved performance
- Fast object allocation on the heap
- Lazy parsing of functions
In some cases, V8 compiling JavaScript code to native machine code makes it execute faster than even statically compiled languages like C++!