mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-25 11:58:55 +00:00

`IMEStateManager` basically runs at focus change. However, when `designMode` is set to `"off"` or focused editing host becomes non-editable (removing `contenteditable` attribute or `contenteditable` attribute is set to `false`), IME may be disabled without a focus change. Therefore, `Document` needs to notify `IMEStateManager` of the timing. Additionally, `nsFocusManager` does not change focus when focused element becomes not focusable (bug 1807597). Therefore, `Document` needs to kick `focus` or `blur` event handler of `HTMLEditor` when active editing host becomes not editable. However, if an ancestor of focused element becomes editable, I think that `HTMLEditor` does not work well without focus move because it computes editing host with current editing state in a lot of places, but `Selection` and `nsFocusManager::GetFocusedElement` keeps working with previous focused element which is now a editable child of editing host. Therefore, this patch marks them as `todo` in the new tests. Differential Revision: https://phabricator.services.mozilla.com/D171196