let socialMediaSites = { "facebook.com": "timeSpentFacebook", "x.com": "timeSpentTwitter", "instagram.com": "timeSpentInstagram" }; let startTime = null; let currentSite = null; // Quand une page de réseau social est visitée chrome.webNavigation.onCompleted.addListener(function(details) { let url = new URL(details.url); if (Object.keys(socialMediaSites).some(site => url.hostname.includes(site))) { startTime = new Date(); currentSite = url.hostname; } }); // Quand l'utilisateur change d'onglet ou ferme un onglet chrome.tabs.onActivated.addListener(saveTime); chrome.tabs.onRemoved.addListener(saveTime); function saveTime() { if (startTime && currentSite) { const endTime = new Date(); const timeSpent = (endTime - startTime) / 1000; // en secondes let siteKey = Object.keys(socialMediaSites).find(site => currentSite.includes(site)); if (siteKey) { let storageKey = socialMediaSites[siteKey]; chrome.storage.local.get([storageKey], function(data) { let totalTimeSpent = data[storageKey] || 0; totalTimeSpent += timeSpent; chrome.storage.local.set({ [storageKey]: totalTimeSpent }, function() { console.log(`Temps passé sur ${currentSite}: ${totalTimeSpent} secondes`); }); }); } startTime = null; currentSite = null; } } // Alarme pour garder le service worker actif chrome.runtime.onInstalled.addListener(() => { // Créer une alarme pour maintenir le service worker actif chrome.alarms.create("keepAlive", { periodInMinutes: 1 }); }); chrome.alarms.onAlarm.addListener((alarm) => { if (alarm.name === "keepAlive") { console.log("Service worker toujours actif."); } });