blob: ea6cecb9faed2c4f69ea92af858ad7961f53eac5 [file] [log] [blame]
// Listen for shift-backspace or unmodified backspace and navigate if not in
// an editable field. We capture the event at the Window to let any handlers
// or listeners registered on the Document have a chance to handle it first.
window.addEventListener('keydown', function(e) {
// Listening on the Window means the event has no path (see
// http://crbug.com/645527), so we'll have to look at the focused (active)
// element. This means it will not work properly with shadow DOM.
// TODO: Fix behavior with shadow DOM when the above bug is resolved.
if (e.key === 'Backspace' &&
!e.defaultPrevented &&
!e.altKey &&
!e.ctrlKey &&
!e.metaKey &&
!isEditable(document.activeElement)) {
e.shiftKey ? window.history.forward(): window.history.back();
e.preventDefault();
}
});