// ==UserScript==
// @name Universal HTML5 Speed Hack (speed up every site)
// @namespace https://chat.openai.com/
// @version 1.11
// @description change the speed of the site. works on every site (performance.now, Date.now, setTimeout, requestAnimationFrame)
// @author kuba; i did use chatgpt for this though
// @match *://*/*
// @grant none
// @run-at document-end
// @license MIT
// @downloadURL none
// ==/UserScript==
(function () {
'use strict';
let speed = 1.0;
function injectSpeedHack(win) {
try {
const script = win.document.createElement('script');
script.textContent = `(() => {
const realPerfNow = performance.now.bind(performance);
const realDateNow = Date.now;
const realSetTimeout = window.setTimeout;
const realRAF = window.requestAnimationFrame;
const start = realPerfNow();
window.__speedHack = ${speed};
performance.now = () => start + (realPerfNow() - start) * window.__speedHack;
Date.now = () => realDateNow() * window.__speedHack;
window.setTimeout = (fn, delay, ...args) => realSetTimeout(fn, delay / window.__speedHack, ...args);
window.requestAnimationFrame = (cb) => realRAF(t => cb(t * window.__speedHack));
console.log('[SpeedHack] Active at ' + window.__speedHack + 'x');
})();`;
win.document.documentElement.appendChild(script);
} catch (e) {
console.warn('[SpeedHack] Injection failed:', e);
}
}
function updateSpeed(newSpeed) {
speed = newSpeed;
const win = window;
win.__speedHack = speed;
injectSpeedHack(win);
for (const frame of document.querySelectorAll("iframe")) {
try {
frame.contentWindow.__speedHack = speed;
injectSpeedHack(frame.contentWindow);
} catch (e) {
// Ignore cross-origin
}
}
}
function addSpeedControlUI() {
const ui = document.createElement("div");
ui.style.position = "fixed";
ui.style.top = "10px";
ui.style.right = "10px";
ui.style.padding = "10px";
ui.style.background = "rgba(0,0,0,0.7)";
ui.style.color = "white";
ui.style.zIndex = 999999;
ui.style.borderRadius = "8px";
ui.style.fontSize = "14px";
ui.style.fontFamily = "sans-serif";
ui.innerHTML = `
`;
document.body.appendChild(ui);
const slider = ui.querySelector("#speedSlider");
const valText = ui.querySelector("#speedVal");
slider.addEventListener("input", () => {
const val = parseFloat(slider.value);
valText.textContent = val.toFixed(2) + "x";
updateSpeed(val);
});
}
// Initialize on current window and all same-origin iframes
function initialize() {
injectSpeedHack(window);
for (const frame of document.querySelectorAll("iframe")) {
try {
injectSpeedHack(frame.contentWindow);
} catch (e) {
// Cross-origin iframe – ignore
}
}
addSpeedControlUI();
}
// Wait a bit for page to stabilize
setTimeout(initialize, 500);
})();