Urgent.News

What's breaking now, across thousands of outlets.

Tech

I went beyond the usual JavaScript Event Loop diagrams and inspected a real Chrome Renderer process on my Mac.

I had read about the JavaScript Event Loop many times, but I wanted to see what was actually happening underneath the diagrams. So I opened a simple HTML page in Chrome on my Mac and started inspecting the Renderer process responsible for running it. Finding the Renderer Process I started by looking at Chrome's process tree. At the time of inspection, Chrome had a Browser process, four Renderer…

I had long been familiar with the JavaScript Event Loop concept, but I was eager to witness its inner workings firsthand. To achieve this, I launched a straightforward HTML file within Chrome on my Mac and began examining the Renderer process that handled its execution.

I began by analyzing Chrome's process tree. At the time of my examination, Chrome comprised a Browser process, four Renderer processes, a GPU process, and several Utility processes. The Renderer, GPU, and Utility processes each operated as distinct operating-system processes, seamlessly supporting a single browser window.

Next, I delved deeper into a single Renderer process using macOS tools. The native sample revealed 16 threads, including: the Main thread, Compositor, Chrome I/O thread, HangWatcher, and Background workers. This breakdown illustrated that the JavaScript Event Loop is not an isolated operating-system process or an independently named thread. Instead, ordinary page JavaScript runs on the Renderer's main thread, alongside the event-loop-driven processing of tasks.

To further explore the Event Loop, I employed a button that initiated a straightforward CPU-intensive loop: function startWork() { const end = Date.now() + 10000; while (Date.now() < end) {} console.log('CPU work finished'); }

I recorded the interaction using Chrome DevTools Performance. The Chrome DevTools displayed a click task lasting around 10,000 ms, with the majority of execution time attributed to the startWork() function. The trace indicated that the page became unresponsive during execution, with the Renderer process remaining active but its main thread occupied by the JavaScript task, preventing it from handling other work.

From this investigation, I learned that a running process does not automatically guarantee a responsive application. By observing the problem from various perspectives—operating system, native sampling, and Chrome DevTools—I was able to connect the dots between the Renderer process, its threads, and the JavaScript Event Loop. This newfound understanding proved particularly relevant in browser automation, where a seemingly stuck browser during a test may not be caused by selectors or insufficient timeouts.

Instead, the application's main thread might be occupied, making it more beneficial to investigate that aspect rather than merely extending the wait time. Ultimately, inspecting a real browser process offered a more comprehensive understanding of the JavaScript Event Loop than merely studying diagrams.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Threat Modeling a Citizen Ballot API

When a municipal government exposes a ballot tracking API, the threat model changes. You aren't protecting corporate data anymore. You're defending civic trust.

  • Threat model shifts from corporate secrets to public trust in electoral process
  • Vulnerability found: raw string parameters without schema validation or rate limits
  • Defenses shifted to behavioral analysis, input sanitization, and algorithmic rate limiting

AudioLens: listen to audio and inspect waveforms and spectrograms in VS Code

AudioLens lets you listen to audio, inspect waveforms, and analyze spectrograms directly in VS Code . Open a recording beside the code, transcript, manifest, or model output you are working on, then…

  • AudioLens is VS Code extension for audio analysis
  • Listen to audio, inspect waveforms, spectrograms
  • Supports waveform, spectrogram, RMS, peak, clipping ratio

LampRabit 0.2: Node.js projects, 14 framework templates, and .test domains that follow your dev server

LampRabit 0.2 is the biggest update so far. It turns LampRabit from a PHP stack into a home for all your local projects, PHP and Node.js, and makes Linux a fully supported platform. Already on 0.1?

  • LampRabit 0.2 now supports Node.js projects alongside PHP
  • 14 new project templates added, including popular frameworks
  • Linux users gain full support, previously limited to Windows/macOS

Perpetual License vs Subscription License: Which Should You Sell?

Originally published on the PermitCore blog . Perpetual and subscription aren't really about the license technology at all. A license key doesn't care whether it's "supposed to" last forever.

  • Perpetual and subscription licenses differ only in business model, not license technology.
  • PermitCore can issue both types of licenses from the same product.

YouTube Tests a $20 Payout Threshold: What Small Creators Should Know

💰 YouTube is testing a lower payout threshold: $20 instead of $100. For small creators, including developers who run tutorial, coding, or gaming channels on the side, the hardest part of monetization…

  • YouTube trial lowers payment threshold to $20 from $100.
  • New threshold benefits small creators like developers.
  • Trial applies to October 2026 payments in U.S., India, Indonesia.

More from Sunday 1 November →