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) {
|
function initializeNow(document) {
|
||||||
// enforce init-once due to redundant callers
|
// enforce init-once due to redundant callers
|
||||||
if (!document.body || document.body.classList.contains('vsc-initialized')) {
|
if (!document.body || document.body.classList.contains('vsc-initialized')) {
|
||||||
@@ -220,47 +226,52 @@ chrome.runtime.sendMessage({}, function(response) {
|
|||||||
link.rel = 'stylesheet';
|
link.rel = 'stylesheet';
|
||||||
document.head.appendChild(link);
|
document.head.appendChild(link);
|
||||||
}
|
}
|
||||||
|
var docs = Array(document)
|
||||||
|
if(inIframe())
|
||||||
|
docs.push(window.top.document);
|
||||||
|
|
||||||
|
docs.forEach(function(doc) {
|
||||||
|
doc.addEventListener('keydown', function(event) {
|
||||||
|
var keyCode = event.keyCode;
|
||||||
|
|
||||||
document.addEventListener('keydown', function(event) {
|
// Ignore if following modifier is active.
|
||||||
var keyCode = event.keyCode;
|
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.
|
// Ignore keydown event if typing in an input box
|
||||||
if (!event.getModifierState
|
if ((document.activeElement.nodeName === 'INPUT'
|
||||||
|| event.getModifierState("Alt")
|
&& document.activeElement.getAttribute('type') === 'text')
|
||||||
|| event.getModifierState("Control")
|
|| document.activeElement.nodeName === 'TEXTAREA'
|
||||||
|| event.getModifierState("Fn")
|
|| document.activeElement.isContentEditable) {
|
||||||
|| event.getModifierState("Meta")
|
return false;
|
||||||
|| event.getModifierState("Hyper")
|
}
|
||||||
|| event.getModifierState("OS")) {
|
|
||||||
return;
|
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;
|
return false;
|
||||||
}
|
}, true);
|
||||||
|
});
|
||||||
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);
|
|
||||||
|
|
||||||
function checkForVideo(node, parent, added) {
|
function checkForVideo(node, parent, added) {
|
||||||
if (node.nodeName === 'VIDEO') {
|
if (node.nodeName === 'VIDEO') {
|
||||||
|
Reference in New Issue
Block a user