Summary: The supplied article explains how web browsers work by comparing Safari, Firefox, and Chromium, focusing on their browser engines, JavaScript engines, features, performance, compatibility, privacy, and use cases. It states that Safari uses WebKit and JavaScriptCore, Firefox uses Gecko and SpiderMonkey, while Chromium uses Blink and V8. The article discusses practical browser-selection considerations, including Firefox’s emphasis on privacy and customization, Chromium’s broad website compatibility and ecosystem, and Safari’s battery efficiency and Apple hardware integration. It notes that some websites and services are optimized for Chromium, citing YouTube as a documented historical example and referring to Excalidraw, Squoosh, and Google Meet as services that lean on Chromium capabilities. It also describes Firefox extensions such as “Chrome Mask” and “Open in Google Chrome Browser.” The article explains that JavaScriptCore, SpiderMonkey, and V8 execute the same JavaScript language while using different implementations and optimization approaches. It further compares their parsing, bytecode, interpretation, JIT compilation, memory management, WebAssembly, security, debugging, performance, ecosystem, internal pipelines, and design philosophies.
- How a Web Browser Works
- What it is
- Why this article
- Take away Point
- Real, citable example — a site favouring Chrome
- Lean on chromium-based browser
- Extension namely "Chrome Mask," in Firefox
- Another Extension namely “Open in Google Chrome Browser” by Andy Portmen
- Summary-:
- Browser Engine and Feature Comparison
- Car Analogy
- Scope of the article
- Other Features
- Some other related things
- Overall Features
- Rendering Engine Comparison
- Which One Should You Choose?
- Overall Assessment
- JavaScript Engine Comparison
- Summary
- 1. JavaScript Parsing
- 2. Intermediate Representation
- 3. Interpreter
- 4. Just-In-Time (JIT) Compilation
- 5. Memory Management
- 6. Optimization Techniques
- 7. ECMAScript Support
- 8. WebAssembly
- 9. Multithreading
- 10. Debugging Support
- 11. Security Features
- 12. Performance Characteristics
- 13. Ecosystem
- 14. Internal Pipeline
- 15. Design Philosophy
How a Web Browser Works
What it is
a. Today, the way GUI (Graphic User Interface) of various applications is being developed, a web browser will rank among the top 5. Practically everybody is using one or the other web browser.
b. The author tries to analyse as to “how a web browser works”. To achieve the objective, I intend to proceed in a comparison manner of following three web browsers. It will enable the audience to choose the one as per their needs.
c. Before proceeding, one may usefully refer to https://www.webbrowserdirectory.com/browsers/
d. One may also usefully refer to https://zen-browser.app/, a Firefox based web browser. It is being recommended for its variety of features.
Why this article
e. When the season of Income Tax Return of non-business no audit with July 31, 2026 as due date was on, my office’s Income Tax return Application is integrated with Google Chrome Browser. The Google Chrome was opening 16-20 threads, and it is reducing the overall speed and at times the machine hangs.
f. I kept the Google Chrome as default browser but instructed the staff to use Microsoft Edge and / or Mozilla Firefox for other purposes. Though not 100%, it solved the issue and it made me think as to what happened.
g. It ignited a curiosity as to why such a phenomenon. In that period, there were multiple things that were happening including the development of Google-Chrome Web Browser. There were news items that Google-Chrome Web Browser was installing a 1.5 GB size file for AI.
Take away Point
h. In general, public at large will be using either Firefox or chromium (or variant thereof)
a. Firefox = focuses more on security
b. Chromium = focuses more on speed.
i. The above is a very broad statement. There are some websites which are specifically optimised for chromium-based web browsers. For those websites, chromium-based web browser will give better results.
j. For using any service from Google ecosystem, obviously, it is advisable to use a browser based on chromium
Real, citable example — a site favouring Chrome
k. The clearest documented case is YouTube. In 2018, a Mozilla engineer pointed out that YouTube’s redesign relied on a deprecated web technology (Shadow DOM v0) that only Chrome had implemented, and this made the site around five times slower on Microsoft Edge and Firefox at the time.
l. It’s an old story now and the specific bug has since been fixed, but it’s a real, widely-reported example you can point to: com, circa 2018, running noticeably worse on non-Chrome browsers because of a technical choice Google made.
Lean on chromium-based browser
m. Refer to the following websites one can open today that lean on Chrome-only capabilities. This is not a criticism (not controversial — just genuine feature gaps)
a. excalidraw.com — the “save to disk” / “open from disk” flow uses a Chromium-only API (File System Access). On Firefox it still works, just falls back to a plain download instead of live-editing a file on your computer.
b. squoosh.app — Google’s own image-compression tool, built to lean on Chromium’s fastest image codecs.
c. meet.google.com— Google has long recommended Chrome for the best video quality and background-blur performance; other browsers work but with more limited feature sets.
Extension namely “Chrome Mask,” in Firefox
n. A little Firefox Extension that provides a one-click toggle to spoof as Chrome in Firefox – or, in other words, to put on the Chrome Mask. There are a lot of generic “User Agent spoof” extensions. However, this extension does a few things differently:
o. Instead of overriding the User Agent string on all sites, this extension allows you to only look like Chrome on specific sites.
p. Unlike some extensions with outdated version numbers and UA strings, this extension automatically updates the Chrome version it pretends to be. It does that by querying a simple API every 24 hours.
q. You don’t have to pick the correct Operating System manually; this extension does it for you.
r. Even if you do not understand the following technical thing, it is perfectly alright.
Another Extension namely “Open in Google Chrome Browser” by Andy Portmen
s. In this case, it opens the current tab or links in the Google Chrome browser. Using this extension, you can send links to Google Chrome without the need to manually copy and paste links. It is even possible to define keyboard shortcuts for easier access.
Summary-:
t. The author could not find websites which lean towards Firefox as compared to chromium. The reason being the structure of firefox is asymmetric, i.e. it caters to a variety of users and a variety of purposes of browsing. It tries to accommodate every such permutation and combination whereby the users’ objective is served.
u. It tries to ensure that every user is able to accomplish their objective irrespective of the way in which a particular website is structured.
v. Another practical reason is that google has an eco-system which Firefox (Mozilla) does not have.
Browser Engine and Feature Comparison
Car Analogy
w. Every web browser can be divided broadly in two parts namely
a. an engine
b. other browsing features
x. Taking the above analogy slightly ahead, the driver never directly interacts with the engine.
y. The names of the cars and their features are used only for illustration. It does not intend to mean verbatim i.e. do not think that because BMW is better than Mercedes, so consequentially Firefox is better than Chromium.
z. The driver never directly interacts with the engine. Likewise, a browser user rarely interacts directly with WebKit, Gecko, or Blink.
| Feature | Safari | Firefox | Chromium |
| Browser | Safari | Firefox | Chromium |
| Engine inside | WebKit | Gecko | Blink |
| JavaScript Engine inside | JavaScriptCore | SpiderMonkey | V8 |
| Think of the browser as… | A complete car | A complete car | A complete car |
| Think of the engine as… | Toyota engine | BMW engine | Mercedes engine |
| Who builds the engine? | Apple | Mozilla | |
| Who builds the browser? | Apple | Mozilla | Chromium Project (Google-led) |
| Can the engine be reused? | Limited | Rarely | Yes, by many browser vendors |
| Examples using the same engine | Safari, Orion | Firefox, LibreWolf, Waterfox | Chrome, Edge, Brave, Opera, Vivaldi, Arc |
| Feature | Safari | Firefox | Chromium |
| Car Model | Toyota Camry | BMW 5 Series | Mercedes E-Class |
| Engine | Toyota 2.5L Engine | BMW B58 Engine | Mercedes M254 Engine |
| Dashboard | Apple-designed | Mozilla-designed | Chromium-designed |
| Seats & Interior | Apple UI | Firefox UI | Chromium UI |
| Navigation System | Apple | Mozilla | Chromium |
| Driving Experience | Different | Different | Different |
| Engine’s Job | Convert fuel into motion | Convert fuel into motion | Convert fuel into motion |
Scope of the article
aa. Broadly speaking, following are the popular one and perhaps different ones the analysis of which will be useful.
a. Safari = Only on Mac machines or Mac Environment like i-phone, iPad. People would have heard about it but might not have worked on it. It is highly optimised with Apple’s hardware but it does not work on other operating systems and / or devices.
As contrary to above, the following works on every device and / or every operating system.
b. Firefox = Mozilla Foundation (non-profit) and Mozilla Corporation (commercial subsidiary). Other based on this are Firefox ESR, Tor Browser. com
c. Chromium = serves as the base for browsers such as Google Chrome, Microsoft Edge, Brave, Opera, and Vivaldi. org
Other Features
| Website Contains | Safari | Firefox | Chromium |
| 2 + 3 | JavaScriptCore calculates 5 | SpiderMonkey calculates 5 | V8 calculates 5 |
| User clicks Login | JavaScriptCore executes the click handler | SpiderMonkey executes the click handler | V8 executes the click handler |
| Validate email address | JavaScriptCore validates it | SpiderMonkey validates it | V8 validates it |
| Fetch latest stock price | JavaScriptCore executes the request | SpiderMonkey executes the request | V8 executes the request |
| Refresh dashboard every 5 seconds | JavaScriptCore runs the timer | SpiderMonkey runs the timer | V8 runs the timer |
Perceiving repetition for all features…? Most obvious question Are JavaScriptCore, SpiderMonkey, and V8 different programming languages? The answer is ‘No’. They all execute the same JavaScript language but in their own manner.
Some other related things
| Question | Answer |
| Do they perform different jobs? | No. Their core responsibility is the same: execute JavaScript code. |
| Why are there three of them? | Each browser vendor develops its own implementation, optimizing for different goals such as power efficiency, standards, security, or performance. |
| Can the same website run on all three? | Yes. A standards-compliant website should work on all three engines, although performance characteristics may differ. |
Overall Features
| Feature | Mozilla Firefox | Chromium |
| Developer | Mozilla Foundation / Mozilla Corporation | Google (Open Source Project) |
| License | Open Source (MPL 2.0) | Open Source (BSD and others) |
| Browser Engine | Gecko | Blink |
| JavaScript Engine | SpiderMonkey | V8 |
| Primary Platforms | Windows, Linux, macOS, Android | Windows, Linux, macOS |
| Availability on Linux | Yes | Yes |
| Availability on Windows | Yes | Yes |
| Privacy Philosophy | Strong privacy-first approach | Depends on the browser built on Chromium |
| Telemetry | Limited; can be disabled | Very little in Chromium itself; Chrome adds more telemetry |
| Ad/Tracker Blocking | Enhanced Tracking Protection | Basic; depends on browser implementation |
| Extension Support | WebExtensions | Chrome Extensions |
| Extension Ecosystem | Large | Very Large |
| Memory Usage | Moderate | Generally highest |
| CPU Efficiency | Good | Good but can consume more CPU |
| Battery Life (MacBook) | Good | Usually lower than Safari |
| Performance on Apple Silicon | Very Good | Very Good |
| Performance on Windows | Very Good | Very Good |
| Performance on Linux | Excellent | Excellent |
| Standards Compliance | Excellent | Excellent |
| Experimental Web APIs | Moderate | Fastest adoption |
| Developer Tools | Excellent | Excellent |
| Web Compatibility | Excellent | Best compatibility (many sites target Chromium) |
| Enterprise Management | Good | Good |
| Synchronization | Firefox Sync | Depends on browser (Chrome Sync, Edge Sync, etc.) |
| Open Source | Yes | Yes |
| Customization | Extensive | Moderate |
| UI Customization | Excellent | Moderate |
| Reader Mode | Yes | Depends on browser |
| Container Tabs | Yes (unique feature) | No |
| Picture-in-Picture | Yes | Yes |
| Password Manager | Firefox Password Manager | Depends on browser |
| Typical Security Update Speed | Fast | Very Fast |
| Best For | Privacy, customization, developers | Maximum compatibility and browser development |
| Browser à | Safari | Firefox | Chromium |
| Major Advantages | Best battery life, fastest on Apple Silicon, deep macOS integration, excellent privacy, lowest memory usage | Strong privacy, independent browser engine, highly customizable, container tabs, excellent developer tools | Largest extension ecosystem, best website compatibility, latest web technologies, foundation for many browsers |
| Major Dis-advantages | Apple-only, fewer extensions, slower adoption of some new web APIs | Some websites optimize primarily for Chromium, slightly slower JavaScript performance in some workloads | Higher RAM usage, many websites become Blink-dependent, privacy depends on the specific Chromium-based browser |
Rendering Engine Comparison
| Engine | Used By | Strength |
| WebKit | Safari | Power efficiency and Apple ecosystem integration |
| Gecko | Firefox | Independent implementation, privacy focus, standards compliance |
| Blink | Chromium, | Performance, compatibility, rapid feature adoption |
Which One Should You Choose?
| Use Case | Recommended Browser |
| MacBook battery life | Safari |
| Apple ecosystem integration | Safari |
| Lowest memory consumption on Mac | Safari |
| Use Case | Recommended Browser |
| Privacy | Firefox |
| Web development | Firefox or Chromium |
| Maximum website compatibility | Chromium |
| Open-source preference | Firefox or Chromium |
| Linux usage | Firefox or Chromium |
| Windows usage | Firefox or Chromium |
| Browser engine diversity (avoiding Blink monoculture) | Firefox |
Overall Assessment
| Criterion | Winner | Criterion | Winner |
| Battery efficiency | Safari | Customization | Firefox |
| Privacy | Firefox | Performance on macOS | Safari |
| Web compatibility | Chromium | Cross-platform availability | Firefox |
| Extension ecosystem | Chromium | Independent browser engine | Firefox |
JavaScript Engine Comparison
For those interested in technical aspects or respective engines
Below is a comparison of the three JavaScript engines from an engineering perspective. All three implement the ECMAScript (JavaScript) standard, but their internal designs and optimizations differ.
Summary
| Area | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Best Known For | Battery-efficient execution on Apple devices | Independent standards-compliant implementation | High-performance execution and extensive ecosystem |
| Major Strength | Efficiency and integration | Correctness, security, browser diversity | Speed, optimization, and versatility |
| Typical Users | Safari users | Firefox users | Chromium-based browsers and JavaScript server platforms |
| Technical Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Developer | Apple | Mozilla | |
| First Released | 2003 | 1996 (oldest JS engine) | 2008 |
| Primary Goal | Battery efficiency and Apple ecosystem optimization | Standards compliance, security, maintainability | Maximum execution speed and scalability |
| Written Mainly In | C++ | C++, Rust (some components) | C++ |
| 01. JavaScript Parsing
02. Intermediate Representation 03. Interpreter 04. Just-In-Time (JIT) Compilation 05. Memory Management 06. Optimization Techniques 07. ECMAScript Support 08. WebAssembly |
09. Multithreading
10. Debugging Support 11. Security Features 12. Performance Characteristics 13. Ecosystem 14. Internal Pipeline 15. Design Philosophy |
1. JavaScript Parsing
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Reads JavaScript Source Code | Yes | Yes | Yes |
| Lexical Analysis (Tokenizer) | Yes | Yes | Yes |
| Syntax Parser | Yes | Yes | Yes |
| Creates AST (Abstract Syntax Tree) | Yes | Yes | Yes |
| Performs Syntax Validation | Yes | Yes | Yes |
2. Intermediate Representation
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Generates Internal Bytecode | Yes | Yes | Yes |
| Optimizes Bytecode | Yes | Yes | Yes |
| Internal Representation | Bytecode | Bytecode | Bytecode |
3. Interpreter
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Interpreter Name | LLInt (Low-Level Interpreter) | Interpreter | Ignition |
| Executes Code Immediately | Yes | Yes | Yes |
| Startup Performance | Excellent | Excellent | Excellent |
4. Just-In-Time (JIT) Compilation
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Baseline JIT | Yes | Baseline JIT | Sparkplug |
| Optimizing JIT | DFG + FTL | Warp | TurboFan |
| Dynamic Optimization | Yes | Yes | Yes |
| Re-optimization | Yes | Yes | Yes |
| De-optimization | Yes | Yes | Yes |
5. Memory Management
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Automatic Garbage Collection | Yes | Yes | Yes |
| Generational GC | Yes | Yes | Yes |
| Incremental GC | Yes | Yes | Yes |
| Concurrent GC | Yes | Yes | Yes |
| Compacting GC | Yes | Yes | Yes |
6. Optimization Techniques
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Inline Caching | Yes | Yes | Yes |
| Hidden Classes / Shapes | Structure IDs | Shapes | Hidden Classes (Maps) |
| Function Inlining | Yes | Yes | Yes |
| Dead Code Elimination | Yes | Yes | Yes |
| Constant Folding | Yes | Yes | Yes |
| Escape Analysis | Yes | Limited | Yes |
7. ECMAScript Support
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| ES5 | Yes | Yes | Yes |
| ES6 (ES2015) | Yes | Yes | Yes |
| Latest ECMAScript Features | Yes | Yes | Yes |
| Modules | Yes | Yes | Yes |
| Async/Await | Yes | Yes | Yes |
| Promises | Yes | Yes | Yes |
| Generators | Yes | Yes | Yes |
| Classes | Yes | Yes | Yes |
8. WebAssembly
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| WebAssembly Support | Yes | Yes | Yes |
| Streaming Compilation | Yes | Yes | Yes |
| JIT Compilation for WASM | Yes | Yes | Yes |
9. Multithreading
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Background Compilation | Yes | Yes | Yes |
| Concurrent Garbage Collection | Yes | Yes | Yes |
| Worker Threads | Yes | Yes | Yes |
10. Debugging Support
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Breakpoints | Yes | Yes | Yes |
| Stack Traces | Yes | Yes | Yes |
| Source Maps | Yes | Yes | Yes |
| CPU Profiling | Yes | Yes | Yes |
| Memory Profiling | Yes | Yes | Yes |
11. Security Features
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Sandboxing Support | Yes (browser-provided) | Yes (browser-provided) | Yes (browser-provided) |
| Memory Safety Improvements | Good | Strong (with increasing Rust usage) | Strong |
| Bounds Checking | Yes | Yes | Yes |
| Type Checking | Yes | Yes | Yes |
12. Performance Characteristics
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Startup Time | Excellent | Excellent | Excellent |
| Long-running Code | Excellent | Excellent | Excellent |
| Battery Efficiency | Excellent | Good | Good |
| Peak Throughput | High | High | Very High |
| Apple Silicon Optimization | Excellent | Good | Good |
13. Ecosystem
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Primary Browser | Safari | Firefox | Chromium |
| Mobile Browser | Safari (iOS/iPadOS) | Firefox Mobile | Chrome Mobile |
| Standalone Embedding | Limited | Possible | Extensive |
| Used by Node.js | No | No | Yes |
| Used by Deno | No | No | Yes (default) |
14. Internal Pipeline
| Processing Stage | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Read Source Code | Yes | Yes | Yes |
| Tokenize | Yes | Yes | Yes |
| Parse | Yes | Yes | Yes |
| Build AST | Yes | Yes | Yes |
| Generate Bytecode | Yes | Yes | Yes |
| Interpret Bytecode | LLInt | Interpreter | Ignition |
| Baseline JIT | Yes | Baseline | Sparkplug |
| Optimizing JIT | DFG → FTL | Warp | TurboFan |
| Execute Optimized Machine Code | Yes | Yes | Yes |
| Garbage Collection | Yes | Yes | Yes |
15. Design Philosophy
| Aspect | JavaScriptCore (Safari) | SpiderMonkey (Firefox) | V8 (Chromium) |
| Primary Focus | Power efficiency, low memory usage, Apple hardware integration | Open standards, maintainability, security, browser independence | High performance, fast execution, scalability across browsers and server-side runtimes |
| Typical Deployment | Apple ecosystem | Firefox ecosystem | Chromium ecosystem and server-side JavaScript |
| Most Distinguishing Feature | Tight integration with Apple hardware and operating systems | Independent implementation with strong emphasis on standards and memory safety | Highly optimized execution pipeline and broad adoption beyond browsers (e.g., Node.js) |



