Skip to content

Native <select> in extension popup freezes the browser #13623

@rxliuli

Description

@rxliuli

Description

Clicking a native <select> dropdown inside a browser extension popup freezes the entire popup (and sometimes the browser). The popup becomes completely unresponsive — no clicks, no interactions, nothing.

This does not happen in Firefox or Waterfox with the same extension.

Steps to Reproduce

  1. Clone the minimal repro extension: https://github.com/rxliuli/zen-select-bug-repro
  2. Open about:debugging#/runtime/this-firefox
  3. Click "Load Temporary Add-on" → select manifest.json
  4. Click the extension icon to open the popup
  5. Click the <select> dropdown

Expected: The dropdown opens and you can select an option.
Actual: The popup freezes immediately when clicking the <select>.

Zen.Select.Bug.-.Zen.mp4
Zen.Select.Bug.-.Waterfox.mp4

Minimal Repro Code

The extension is just 3 files — no frameworks, no dependencies:

manifest.json

{
  "manifest_version": 2,
  "name": "Zen Select Bug Repro",
  "version": "1.0",
  "description": "Minimal repro: native <select> in extension popup freezes Zen browser",
  "browser_action": {
    "default_popup": "popup.html",
    "default_title": "Select Bug Repro"
  }
}

popup.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <style>
    body { width: 250px; padding: 16px; font-family: system-ui, sans-serif; }
    select { width: 100%; padding: 6px; font-size: 14px; }
  </style>
</head>
<body>
  <h3>Select Bug Repro</h3>
  <p>Click the select below. On Zen browser, this freezes the popup.</p>
  <select id="lang">
    <option value="en">English</option>
    <option value="zh">Chinese</option>
    <option value="ja">Japanese</option>
  </select>
  <p id="result">Selected: en</p>
  <script src="popup.js"></script>
</body>
</html>

popup.js

document.getElementById('lang').addEventListener('change', (e) => {
  document.getElementById('result').textContent = 'Selected: ' + e.target.value
})

Environment

  • Zen Browser (latest)
  • macOS
  • Works fine in: Firefox, Waterfox, Chrome

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions