 You may have heard of Chromium. Well, this is the open source browser project on which Chrome and some other browsers are built. And Chromium has several components. Blink is the rendering engine used by Chromium. And the rendering engine of a web browser is the part of the software that's used to transform HTML, CSS and JavaScript along with images and other resources into web pages that you can view and interact with. I'm Sam Dutton, and in this video, I'll give you an overview of what Blink is and how it works. So the Blink rendering engine has a lot of work to do. Web pages usually include a variety of different resources, potentially, you know, from multiple origins. And that's called composability. And, you know, it's one of the web's special powers. First of all, Blink needs to retrieve HTML, CSS, JavaScript, images, and any other resources that a web page asks for. And to do that, Blink needs to manage interactions with the network stack in Chromium and the underlying operating system. So as soon as CSS and HTML is loaded, Blink can begin to transform that code, it's in the form of text, into a representation that it can work with. And that's called parsing. JavaScript also needs to be parsed and then executed. And once all that's done, Blink can then begin the work of laying out and displaying web pages that you can view and interact with. And this is called rendering. So at a high level, rendering has several tasks. A rendering engine displays web page content on your screen, animates visual effects, enables scrolling and routes input from users to scripts and underlying subsystems. Now, as you can see, there are multiple stages in the pipeline of rendering tasks. I won't go into the details here, but bear in mind that some stages can be skipped if they're not needed. For example, scrolling can skip layout, prepaint, and paint. Now, for the job of interacting with the underlying graphics hardware on your device, you know, your phone or laptop or whatever, Blink uses the skier graphics engine. Rather than try to support multiple different operating systems and devices all on its own and keep up with platform changes, skier uses a graphics library that's built for the job, such as OpenGL or Vulkan or DirectX. So the graphics library used by skier depends on the platform it's running on, such as Android on mobile or Windows on desktop, for example. And you can find out a lot more about how rendering works in Chrome in the Chrome University video, Life of a Pixel. And there's an excellent article from the Chrome rendering team as well. Okay, so enough about rendering. Let's go back to JavaScript for a moment. So to parse and execute JavaScript and WebAssembly code, Blink uses V8. V8 is the open source engine developed by the Chromium project to run JavaScript and WebAssembly code in Chrome. And by the way, in case you're wondering, WebAssembly, abbreviated as Wazm, is a binary format for code which can be run even faster than JavaScript. V8 makes it possible for a developer to use JavaScript or WebAssembly code to access the capabilities of the underlying browser. For example, to manipulate the document object model, which is the representation that Blink builds from HTML code. V8 uses a number of techniques that make it very fast and efficient. In fact, the speed and capability of JavaScript engines like V8 have transformed the web. Lots of things that used to be impossible on the web because they were too slow or too memory hungry are now commonplace. V8 needs to process JavaScript in accordance with the JavaScript standard, which is known as ECMAScript. In fact, the point of web engines like Blink is to interoperably implement web standards. That way, developers and users can be confident that web pages work well, no matter what browser they're using. For example, Blink interoperably implements web standards for HTML, CSS, JavaScript, WebAssembly, and more. But let's take a closer look at the HTML standard. If you look at the specifications for each HTML element, you'll see a section that defines the DOM interface. This is written in a language called WebIDL, Web Interface Definition Language. And the WebIDL in this section defines how a developer should be able to use JavaScript to interact with an element. This definition is known as an interface. And in this example, it's for an image element. WebIDL is a standardized way of describing functional interfaces like those that make up most web standards. To implement a feature, engineers put that WebIDL code in a file and this automatically gets transformed by Blink to provide an interface to developers for that feature. Once the interface is defined with WebIDL, engineers can build the implementations that respond to interface calls. Blink also makes use of lots of fantastic third-party libraries. For example, WebGL is used to render interactive 2D and 3D graphics. Libraries like WebGL are highly optimized and carefully tested, and they give Blink access to important features and functionality without needing to reinvent the wheel. So, the WebGL IDL is defined and the Blink engineers connect that Web interface with code and libraries under the hood that know how to render things. So, all in all, to sum up, all those components make up Blink and Blink is the rendering engine used by the open source web browser Chromium. And you can actually download and run Chromium as your browser if you want, but be aware that Chrome adds some really important features. For example, Chrome adds proprietary software for decoding audio and video files known as Codex. Chrome can report errors if users give permission and Chrome provides a number of user agent features like password management, shared history, bookmarks, and more using your Google account. But best of all, I think, Chrome downloads updates automatically. Chrome will update automatically if you restart, but if you do see that update button, make sure to click it and relaunch. Chrome also goes through rigorous additional testing processes through its release channels, Chrome Canary, Chrome Dev, Chrome Beta, and Chrome Stable. You can find out lots more about that from our video What Are Chrome Release Channels? Now, you might be wondering, does Chrome use Blink everywhere on all operating systems and devices? Well, nearly. Chrome on Windows, Linux, and Mac on desktop use Blink and on Android and on Chromebooks, of course. However, on iOS, so on iPads and iPhones, it's currently Apple's policy that all browsers have to use the WebKit rendering engine. And here's a little history. WebKit was actually a fork of another project, KDE, which goes all the way back to 1998. In fact, Safari and Chromium initially were both based on WebKit. Now, the problem was the Chromium project used a different multiprocess software architecture and maintaining two separate architectures in one code base was just becoming problematic. Chromium also wanted to use features that weren't being built into WebKit. So, starting from version 28, Chrome engineers decided to begin work on their own rendering engine. They forked their code from WebKit and they called it Blink. Rumor has it, in fact, that Blink was named after the Blink tag that was available in the Netscape Navigator browser to make text Blink on and off. Yeah, classy. Anyway, to sum up, Chrome, Microsoft Edge, Opera, Vivaldi, Brave, and other Chromium-based browsers and frameworks use Blink. Safari and some other browsers use WebKit, along with all browsers, including Chrome on iOS. And Firefox uses a rendering engine called Gecko. Anyway, enough history. That's the basics of Blink. To find out more, take a look at our article. You might also want to take a look at our video, What Are Blink Intense, which describes how new features make their way into Blink. So, thanks for watching and be sure to check out the other videos in the Chrome Concepts series.