Case ce-0261-korean-ime-crash-firefox-en · Scenario scenario-ime-korean-crash-firefox

Korean IME composition causes Firefox editor crash

OS: Windows 10 Device: Desktop Any Browser: Firefox 120+ Keyboard: Korean (IME) - Microsoft IME Status: draft
composition ime korean firefox crash windows

현상

On Firefox with Windows 10 and Korean IME, specific key combination sequences during IME composition can cause the contenteditable editor to crash unexpectedly.

재현 예시

  1. Focus on contenteditable element.
  2. Enable Korean IME (Microsoft IME on Windows).
  3. Type ‘ㅀ’ (press ‘f’, then ‘g’ on QWERTY keyboard).
  4. Press Enter to confirm composition.
  5. Press Ctrl+Shift+Home.
  6. ❌ Editor crashes and becomes unresponsive.
  7. User must reload the page.

관찰된 동작

  • Specific key combination crash: Ctrl+Shift+Home triggers editor crash
  • JavaScript execution stops: Browser completely halts when crash occurs
  • Page unresponsive: No user interaction possible until reload
  • Firefox specific: Issue only affects Firefox

예상 동작

  • Editor should handle key combinations without crashing
  • IME composition should complete or be interrupted gracefully
  • JavaScript execution should continue normally

참고사항 및 가능한 해결 방향

  • Block dangerous combinations during IME: Prevent Ctrl+Shift+Home during composition
  • Try-catch error handling: Wrap critical operations in try-catch blocks
  • Error reporting: Log errors and inform user gracefully
  • Graceful recovery: Implement fallback mechanisms when errors occur

코드 예시

const editor = document.querySelector('div[contenteditable]');
let isComposing = false;

// Track IME state
editor.addEventListener('compositionstart', () => {
  isComposing = true;
});

editor.addEventListener('compositionend', () => {
  isComposing = false;
});

// Block dangerous key combination
editor.addEventListener('keydown', (e) => {
  if (isComposing && e.ctrlKey && e.shiftKey && e.key === 'Home') {
    e.preventDefault();
    console.warn('Dangerous key combination blocked during IME composition:', e.key);
  }
});

// Prevent crash with error handling
editor.addEventListener('input', (e) => {
  try {
    // Input handling logic
  } catch (error) {
    console.error('Input error:', error);
    // Graceful recovery
    alert('An error occurred during input. Please reload the page.');
  }
});
Before
Empty editor
Step 2: Press Enter
Composition confirmed
vs
✅ Expected
Expected: Editor continues without crashing

Playground for this case

Use the reported environment as a reference and record what happens in your environment while interacting with the editable area.

Reported environment
OS: Windows 10
Device: Desktop Any
Browser: Firefox 120+
Keyboard: Korean (IME) - Microsoft IME
Your environment
Sample HTML:
Event log
Use this log together with the case description when filing or updating an issue.
0 events
Interact with the editable area to see events here.

Comments & Discussion

Have questions, suggestions, or want to share your experience? Join the discussion below.