// page_script.js - runs inside the page context chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => { if (msg.action === "setVolume") { const player = document.querySelector(".html5-video-player"); if (player && typeof player.setVolume === "function") { player.setVolume(msg.volume); } else { const video = document.querySelector("video"); if (video) video.volume = Math.max(0, Math.min(1, msg.volume / 100)); } sendResponse({ ok: true }); } if (msg.action === "getVolume") { let v = null; const player = document.querySelector(".html5-video-player"); if (player && typeof player.getVolume === "function") { v = player.getVolume(); } else { const video = document.querySelector("video"); if (video && typeof video.volume === "number") { v = Math.round(video.volume * 100); } } sendResponse({ volume: v }); } return true; // async safe });