mirror of
https://github.com/SoPat712/videospeed.git
synced 2025-08-21 18:08:46 -04:00
fixes #332 this adds keydown listener to parent document if there is one. it does not use background files which uses unnecessary ram
This commit is contained in:

committed by
Ilya Grigorik

parent
0999acc7fc
commit
e84e19069d
87
inject.js
87
inject.js
@@ -203,7 +203,13 @@ chrome.runtime.sendMessage({}, function(response) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inIframe () {
|
||||
try {
|
||||
return window.self !== window.top;
|
||||
} catch (e) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
function initializeNow(document) {
|
||||
// enforce init-once due to redundant callers
|
||||
if (!document.body || document.body.classList.contains('vsc-initialized')) {
|
||||
@@ -220,47 +226,52 @@ chrome.runtime.sendMessage({}, function(response) {
|
||||
link.rel = 'stylesheet';
|
||||
document.head.appendChild(link);
|
||||
}
|
||||
var docs = Array(document)
|
||||
if(inIframe())
|
||||
docs.push(window.top.document);
|
||||
|
||||
document.addEventListener('keydown', function(event) {
|
||||
var keyCode = event.keyCode;
|
||||
docs.forEach(function(doc) {
|
||||
doc.addEventListener('keydown', function(event) {
|
||||
var keyCode = event.keyCode;
|
||||
|
||||
// Ignore if following modifier is active.
|
||||
if (!event.getModifierState
|
||||
|| event.getModifierState("Alt")
|
||||
|| event.getModifierState("Control")
|
||||
|| event.getModifierState("Fn")
|
||||
|| event.getModifierState("Meta")
|
||||
|| event.getModifierState("Hyper")
|
||||
|| event.getModifierState("OS")) {
|
||||
return;
|
||||
}
|
||||
// Ignore if following modifier is active.
|
||||
if (!event.getModifierState
|
||||
|| event.getModifierState("Alt")
|
||||
|| event.getModifierState("Control")
|
||||
|| event.getModifierState("Fn")
|
||||
|| event.getModifierState("Meta")
|
||||
|| event.getModifierState("Hyper")
|
||||
|| event.getModifierState("OS")) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore keydown event if typing in an input box
|
||||
if ((document.activeElement.nodeName === 'INPUT'
|
||||
&& document.activeElement.getAttribute('type') === 'text')
|
||||
|| document.activeElement.nodeName === 'TEXTAREA'
|
||||
|| document.activeElement.isContentEditable) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (keyCode == tc.settings.rewindKeyCode) {
|
||||
runAction('rewind', document, true)
|
||||
} else if (keyCode == tc.settings.advanceKeyCode) {
|
||||
runAction('advance', document, true)
|
||||
} else if (keyCode == tc.settings.fasterKeyCode) {
|
||||
runAction('faster', document, true)
|
||||
} else if (keyCode == tc.settings.slowerKeyCode) {
|
||||
runAction('slower', document, true)
|
||||
} else if (keyCode == tc.settings.resetKeyCode) {
|
||||
runAction('reset', document, true)
|
||||
} else if (keyCode == tc.settings.displayKeyCode) {
|
||||
runAction('display', document, true)
|
||||
} else if (keyCode == tc.settings.fastKeyCode) {
|
||||
runAction('fast', document, true);
|
||||
}
|
||||
|
||||
// Ignore keydown event if typing in an input box
|
||||
if ((document.activeElement.nodeName === 'INPUT'
|
||||
&& document.activeElement.getAttribute('type') === 'text')
|
||||
|| document.activeElement.nodeName === 'TEXTAREA'
|
||||
|| document.activeElement.isContentEditable) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (keyCode == tc.settings.rewindKeyCode) {
|
||||
runAction('rewind', document, true)
|
||||
} else if (keyCode == tc.settings.advanceKeyCode) {
|
||||
runAction('advance', document, true)
|
||||
} else if (keyCode == tc.settings.fasterKeyCode) {
|
||||
runAction('faster', document, true)
|
||||
} else if (keyCode == tc.settings.slowerKeyCode) {
|
||||
runAction('slower', document, true)
|
||||
} else if (keyCode == tc.settings.resetKeyCode) {
|
||||
runAction('reset', document, true)
|
||||
} else if (keyCode == tc.settings.displayKeyCode) {
|
||||
runAction('display', document, true)
|
||||
} else if (keyCode == tc.settings.fastKeyCode) {
|
||||
runAction('fast', document, true);
|
||||
}
|
||||
|
||||
return false;
|
||||
}, true);
|
||||
}, true);
|
||||
});
|
||||
|
||||
function checkForVideo(node, parent, added) {
|
||||
if (node.nodeName === 'VIDEO') {
|
||||
|
Reference in New Issue
Block a user