>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >[CB]Memory Monitor http://forum.mozilla-russia.org/viewtopic.php?id=52237 |
bunda1 > 05-11-2011 20:00:35 |
Memory Monitor ( Firefox 17 + ) Memory Monitor( Firefox 17-45 ) Выделить код Код:// Показывать потребление памяти в адресной строке, от 28.07.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var k = 100, mb = 1024 * 1024, str = "", cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService), visitor = { visitDevice: addInfo }; function addInfo(device, info) { str += (str ? "\n" : "") + device[0].toUpperCase() + device.slice(1) + " Cache: " + [info.totalSize, info.maximumSize].map(function(num) Math.round(k * num / mb) / k + " MB").join(" / "); }; memoryDisplay.onmouseenter = function() { str = ""; try { cs.visitEntries(visitor) } catch(e) {}; memoryDisplay.tooltipText = "Л: Подробно показать потребление памяти в вкладке" + "\n\n" + ( cbu.getPrefs("browser.cache.memory.enable") || cbu.getPrefs("browser.cache.disk.enable") ? str : "Кэш отключен" ); }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button ) return; var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: 2px !important; margin-right: -4px !important; border: 0 !important; min-width: 5.5em; text-align: right; }\ #memoryDisplay[resetMemory] { color: red !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); Memory Monitor( Firefox 45+ ) Выделить код Код:// Показывать потребление памяти в адресной строке, от 04.03.2017. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var data = { memory: "Memory Cache: ", disk: "Disk Cache: ", offline: "Offline Cache: " }; function getSize(size) { if (!size) return size === 0 ? "0" : "?"; for(var count = -1; size >= 1024; size /= 1024, count++); return size.toFixed(2).replace(/0+$/, "").replace(/\.$/, "") + " " + ("KMGT"[count] || "") + "B"; } function setInf(tot, max, type, i) { var inf = getSize(tot) + " / " + getSize(max); var key = "browser.cache." + type + ".enable"; if (!Services.prefs.getBoolPref(key)) inf += " (disabled)"; memoryDisplay.tooltipText = memoryDisplay.tooltipText.replace(zws(i), inf); } function zws(ind) "\u200B\u200B\u200B".slice(0, ++ind); var types = Object.keys(data); var ttt = types.map(function(key, i) data[key] + zws(i)).join("\n"); var context = Cu.import("resource://gre/modules/LoadContextInfo.jsm", {}).LoadContextInfo.default; memoryDisplay.onmouseenter = function() { memoryDisplay.tooltipText = "Л: Показать потребление памяти в вкладке\n" + ttt; try { var entries = {}; Services.cache.visitEntries({ visitDevice: function(device, info) entries[device] = info, visitEntry: function() {} }); types.forEach(function(type, i) { var info = entries[type]; setInf(info && info.totalSize, info && info.maximumSize, type, i) }); } catch(ex) { Services.cache2 && types.forEach(function(type, i) { var func = function(aEntryCount, aConsumption, aCapacity, aDiskDirectory) setInf(aConsumption, aCapacity, type, i); var storage = Services.cache2[(type == "offline" ? "app" : type) + "CacheStorage"](context, null); try { storage.asyncVisitStorage({onCacheStorageInfo: func}, false) } catch(ex) {}; }); } }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button ) return; var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: 2px !important; margin-right: -4px !important; border: 0 !important; min-width: 5.5em; text-align: right; }\ #memoryDisplay[resetMemory] { color: red !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); Memory Monitor как кнопка с выводом расхода оперативной памяти на кнопке: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E222MB%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20memoryTab%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Amemory%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22about%3Amemory%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u043D%u0430%u0436%u0438%u043C%u0430%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20memoryTab.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%20e.type%2C%20c%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20try%20%7B%20e.originalTarget.getElementById%28%27measureButton%27%29.click%28%29%20%7D%20catch%28e%29%20%7B%7D%20%7D%2C%200%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20....%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%20....%0A%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29.get%28%22Home%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20dir.exists%28%29%20%29%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21dir.exists%28%29%20%29%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20var%20alertService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%20%20%20%20%20%20%20%20%20%20alertService.showAlertNotification%28%27chrome%3A//global/skin/icons/information-16.png%27%2C%20%27%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%27%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20alertService.closeAlert%28%29%20%7D%2C%202500%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u043A%u043D%u043E%u043F%u043A%u0435%20................................%0A%28function%20%28%29%20%7B%0A%20%20%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%2C%202000%20%29%3B%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%0A%0A%20%20%20//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%25button%25%20.toolbarbutton-icon%20%7B%5C%0A%20%20%20%20%20display%3A%20none%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20.toolbarbutton-text%20%7B%5C%0A%20%20%20%20%20display%3A%20-moz-box%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20%7B%5C%0A%20%20%20%20%20-moz-box-orient%3A%20horizontal%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%27.replace%28/%25button%25/g%2C%20%22%23%22%20+%20_id%29%20%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430%20..............%0Avar%20data%20%3D%20%7B%0A%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%7D%3B%20%20%20%0Afunction%20getSize%28size%29%20%7B%0A%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%7D%0Afunction%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20self.tooltipText%20%3D%20self.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%7D%0Afunction%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0Avar%20types%20%3D%20Object.keys%28data%29%3B%0Avar%20ttt%20%3D%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%20%20%20%0Avar%20context%20%3D%20Cu.import%28%22resource%3A//gre/modules/LoadContextInfo.jsm%22%2C%20%7B%7D%29.LoadContextInfo.default%3B%0Aself.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20self.tooltipText%20%3D%20%22%u041B%3A%20%u041F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%5Cn%u0421%3A%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%5Cn%22%20+%20ttt%3B%0A%20%20%20try%20%7B%0A%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%20%0A%20%20%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28context%2C%20null%29%3B%0A%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
mserv > 05-11-2011 21:43:28 |
Спасибо, полезный код. Вот только после ПКМ - настроить получается такая картина |
bunda1 > 05-11-2011 22:29:14 |
mserv |
mserv > 05-11-2011 23:16:06 |
bunda1 пишет
Спасибо, теперь всё ОК. |
Inko7 > 05-11-2011 23:38:54 |
bunda1 |
bunda1 > 06-11-2011 00:06:12 |
Inko7 |
mserv > 06-11-2011 00:20:17 |
bunda1 06-11-2011 00:34:09 |
bunda1 > 06-11-2011 00:41:33 |
mserv Выделить код Код:#MemoryDisplay{ -moz-appearance: none !important; border: 0px !important; padding:0px !important; margin-right:-5px !important; margin-left:-3px !important; } |
adidharma > 06-11-2011 01:03:47 |
mserv пишет
А диспетчер задач "родной"(виндовый)? Process Hacker показывает зарезервированную память, taskmanager - рабочий набор, а Process Explorer - и то, и другое. У меня совпадает c диспетчером задач |
mserv > 06-11-2011 01:29:22 |
bunda1 пишет
Спасибо bunda1 пишет
Так вообще не показывает, остаётся только МВ 06-11-2011 01:33:15 |
mserv > 06-11-2011 11:14:43 |
В вашем стиле надо заменить statusbarpanel на #MemoryDisplay, иначе может получиться маленький хаос в панели дополнений. |
bunda1 > 06-11-2011 11:39:36 |
mserv |
bunda1 > 06-11-2011 12:53:04 |
На Memory Monitor можно навесить свою команду и он будет работать как CB кнопка. добавляем Выделить код Код:memoryPanel.addEventListener("click", function(){ //Добавить страницу в закладки PlacesCommandHook.bookmarkLink(PlacesUtils.bookmarksMenuFolderId, content.location.href, content.document.title); }, true); или добавляем Выделить код Код:memoryPanel.addEventListener("click", function(){ //Без запроса, добавить страницу в закладки в Меню закладок. var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab); bmsvc. insertBookmark (bmsvc. bookmarksMenuFolder, br. webNavigation. currentURI, bmsvc. DEFAULT_INDEX, gBrowser. mCurrentTab. label); }, true); |
Kamui > 08-11-2011 22:34:56 |
На самом деле сомнительно решение заменить звездочку |
bunda1 > 08-11-2011 22:45:27 |
Kamui пишет
Почему. |
mserv > 08-11-2011 22:57:42 |
А мне идея понравилась, но не понравилось, что не работает с Add Bookmark Here ², поэтому оставил первый вариант [CB]Memory Monitor. |
Kamui > 09-11-2011 07:55:05 |
bunda1 пишет
Звездочка как-то привычнее, да и по логике эти функции не связаны друг с другом. А еще на скрине видно что индикатор немного залезает на кнопку go. У меня например звездочка и go на одном месте находятся и заменяют друг друга (когда фокус на странице там звездочка, когда в адресной строке, там go), а тут такое не получится, потому что индикатор шире чем кнопка go/ |
mserv > 09-11-2011 11:18:04 |
Kamui пишет
Замени _dPrefix: true, на _dPrefix: false, и места станет больше. |
mserv > 09-11-2011 18:37:49 |
bunda1 пишет
А можете сделать вариант кода с заменой не звёздочки, а треугольника выпадающего списка? |
bunda1 > 09-11-2011 20:27:25 |
Kamui пишет
Не проблема, если изменить #MemoryDisplay{margin-right: mserv пишет
К сожалению, не знаю как это сделать. |
mserv > 09-11-2011 21:08:06 |
bunda1 пишет
А у меня этой go нет совсем, и уже не помню, куда она делась, когда я её убрал… Да и как управление закладками меня устраивает звёздочка, я просто просил убрать треугольник, а его функции приделать к [CB]Memory Monitor, что бы сэкономить место. |
AKBA > 07-01-2012 19:18:01 |
mserv пишет
У меня на 2 - 3МБ |
WW > 07-01-2012 19:33:36 |
на 5мб разница, не думаю что это много) |
AKBA > 07-01-2012 20:08:51 |
WW пишет
Да не, не много. Не успевает за диспетчером обновятся. |
bunda1 > 08-01-2012 00:49:35 |
AKBA пишет
интервал обновления можно изменить в коде |
Pippo78 > 08-01-2012 15:15:28 |
Подскажите а можно ли сделать так что бы при открытии Firefox - Memory monitor запускался автоматически и во всех открытых окнах? Спасибо |
bunda1 > 08-01-2012 20:28:00 |
Pippo78 пишет
запускался автоматически - а разве не запускается? |
mserv > 08-01-2012 21:04:23 |
bunda1 пишет
Кстати, всё забываю сказать. У меня довольно часто бывает, что монитор сразу не отображается, приходится перезагружать , иногда 2-3 раза. |
bunda1 > 08-01-2012 21:16:50 |
mserv пишет
Замени на Выделить код Код:if (!document.getElementById("MemoryDisplay")) setTimeout(function() {ucjs_MemoryMonitor.init() }, 1000); |
Pippo78 > 08-01-2012 22:00:52 |
bunda1 Большое спасибо за помощь, всё работает как надо, это я накосячил-код не положил в инициализацию |
mserv > 08-01-2012 22:15:19 |
bunda1 пишет
Спасибо, буду тестировать, пока вроде работает. |
WW > 03-02-2012 23:41:45 |
Приветствую народ! С переходом на 12 лису, установил по новой мемори монитор, и он что то стал болльше показывать, вот к примеру: в диспетчере Fx в данный момент ест 378444кб + 7200 плугин контейнер = 385644, а у меня монитор показывает, что 459мб. Или ещё что то входит в монитор? |
bunda1 > 04-02-2012 00:20:38 |
WW пишет
Memory Monitor показывает сколько потребляет памяти Firefox и у меня на FF12 показывает правильно. Не знаю в чём тут дело, может это поможет 06-11-2011 00:29:22 |
voqabuhe > 20-03-2012 23:35:37 |
На кнопка перестала работать, просьба оживить. |
bunda1 > 21-03-2012 19:42:56 |
voqabuhe пишет
Да, не работает и мне пока не понятно почему. |
SendAbuse > 15-05-2012 01:08:46 |
И на тоже не работает |
feas > 15-05-2012 09:55:25 |
SendAbuse пишет
с 13 не работает и на 2.9 может связано с адресной строкой? |
voqabuhe > 15-05-2012 10:22:40 |
feas пишет
У меня с 14 отвалилась, на 13 работала. |
2k1dmg > 15-05-2012 13:12:18 |
bunda1 Выделить код Код://var commitmentSize = gMemReporters["private"].amount; //var gfxImage = gMemReporters["gfx-surface-image"].amount; |
voqabuhe > 15-05-2012 13:50:04 |
2k1dmg пишет
Ура, работает. Молодец |
bunda1 > 15-05-2012 18:34:27 |
2k1dmg Исправил Memory Monitor(Firefox 7.1 +) |
bunda1 > 21-07-2012 16:37:05 |
Memory Monitor (Firefox 7.1 +) |
sthprog > 09-01-2013 14:42:07 |
на UX просто исчезает при перезапуске, снося за собой кнопку |
adidharma > 09-01-2013 17:56:22 |
sthprog пишет
А CB пофикшено? У меня не исчезает. |
sthprog > 10-01-2013 08:29:27 |
Починил, спасибо |
PEAKTOP > 13-02-2013 21:17:19 |
Здравствуйте. Подскажите, пожалуйста, а можно разместить Memory Monitor в "Панели дополнений" (снизу экрана)? Что надо изменить в коде? |
bunda1 > 13-02-2013 22:14:00 |
PEAKTOP пишет
Заменить в коде: Выделить код Код:var urlbar = document.getElementById("urlbar-icons"); var go = urlbar.lastChild; urlbar.insertBefore(memoryPanel, go); на рестарт. |
PEAKTOP > 05-03-2013 10:30:37 |
Кнопка вызывает самопроизвольный перезапуск FF версий 18.0.2, 19.0, 19.0.1, 20b1, 20b2 и 21а2. Как можно от это побороть? В какой именно момент происходит перезапуск и чем он вызван понять не удалось, т.к. нет механизма для отслеживания. Могу сказать одно - память занимаемая FF около 1200-1600 Мб и открыто около 100 вкладок. |
Dumby > 05-03-2013 15:14:26 |
PEAKTOP скрытый текст PEAKTOP пишет
PEAKTOP пишет
bunda1 И правда, хорошо бы рестарт в описание добавить, на всякий случай Кстати, интересно, если такую строчку добавить, у тебя тоже тикает как true ? скрытый текст Выделить код Код:var workingSet = gMemReporters["resident"].amount; Services.console.logStringMessage("MM: mgr.resident == workingSet is " + (mgr.resident == workingSet)); var restartMemory = ucjs_MemoryMonitor.getSize(ucjs_MemoryMonitor._maxMemory, true); |
bunda1 > 05-03-2013 23:02:00 |
Dumby пишет
Добавлю, кто бы мог подумать что у кого то браузер потребляет 1200-1600 Мб. |
2k1dmg > 17-09-2013 08:15:05 |
Для Firefox 26 Выделить код Код:var e = mgr.enumerateReporters(); var gMemReporters = {}; while (e.hasMoreElements()) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); gMemReporters[mr.path] = mr; } var workingSet = gMemReporters["resident"].amount; заменить на: скрытый текст Выделить код Код:var ucjs_MemoryMonitor = { _interval: 2000, //ms _maxMemory: 700, // если больше, то текст индикатора станет жирным _prefix: "MiB", //B, KB, KiB, MB, MiB, GB, GiB _dPrefix: true, _inURLbar: true, // true - в адресной строке, false в статусбаре(панель дополнений) interval: null, init: function () { if (!document.getElementById("ucjs_MemoryMonitor")) { var memoryPanel = document.createElement("statusbarpanel"); memoryPanel.id = "ucjs_MemoryMonitor"; memoryPanel.setAttribute("label", this.setPrefix(this._dPrefix)); if (this._inURLbar) { document.getElementById("urlbar-icons").appendChild(memoryPanel); } else { try { document.getElementById("status-bar").appendChild(memoryPanel); } catch (e) { document.getElementById("addon-bar").appendChild(memoryPanel); } } } this.start(); this.interval = setInterval(this.start, this._interval); }, uninit: function () { clearInterval(ucjs_MemoryMonitor.interval); }, destroy: function () { this.uninit(); var m = document.getElementById("ucjs_MemoryMonitor"); if (m) m.parentNode.removeChild(m); ucjs_MemoryMonitor = null; }, addFigure: function (str) { var num = new String(str).replace(/,/g, ""); while (num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return num; }, getSize: function (mem, flag) { var pre = 1; switch (this._prefix) { case 'KB': pre = 1000; break; case 'KiB': pre = 1024; break; case 'MB': pre = 1000 * 1000; break; case 'MiB': pre = 1024 * 1024; break; case 'GB': pre = 1000 * 1000 * 1000; break; case 'GiB': pre = 1024 * 1024 * 1024; break; }; if (flag) return mem * pre; else return ucjs_MemoryMonitor.addFigure(Math.round(mem / pre)); }, setPrefix: function (flag) { return (flag) ? " " + this._prefix : ""; }, start: function () { try { const Cc = Components.classes; const Ci = Components.interfaces; var mgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); /* var e = mgr.enumerateReporters(); var gMemReporters = {}; while (e.hasMoreElements()) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); gMemReporters[mr.path] = mr; }; var workingSet = gMemReporters["resident"].amount; */ var workingSet = mgr.resident; var restartMemory = ucjs_MemoryMonitor.getSize(ucjs_MemoryMonitor._maxMemory, true); var memoryPanel = document.getElementById("ucjs_MemoryMonitor"); memoryPanel.setAttribute("label", ucjs_MemoryMonitor.getSize(workingSet) + ucjs_MemoryMonitor.setPrefix(ucjs_MemoryMonitor._dPrefix)); //memoryPanel.setAttribute("memload", "norm"); if (workingSet > restartMemory) { memoryPanel.setAttribute("memload", "high"); } else { memoryPanel.setAttribute("memload", "norm"); } } catch (e) { clearInterval(ucjs_MemoryMonitor.interval); } } }; var cssStr = ('\ @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");\n\ @-moz-document url("' + window.location.href + '") {\n\ #ucjs_MemoryMonitor {\n\ /*font-size: -moz-use-system-font !important;*/\n\ -moz-appearance: none !important;\n\ padding: 0 !important;\n\ margin: 0 !important;\n\ background: transparent !important;\n\ border: 0 !important;\n\ }\n\ #ucjs_MemoryMonitor > .statusbarpanel-text {\n\ font-size: 1em !important;\n\ margin-top: 0 !important;\n\ margin-bottom: 0 !important;\n\ -moz-margin-start: 3px !important;\n\ -moz-margin-end: 3px !important;\n\ }\n\ #ucjs_MemoryMonitor[memload="high"] .statusbarpanel-text {\n\ font-weight: bold !important;\n\ }\n\ }\n\ '); var cssURI = this.cssURI = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService) .newURI("data:text/css," + encodeURIComponent(cssStr), null, null); var sss = this.sss = Components.classes["@mozilla.org/content/style-sheet-service;1"] .getService(Components.interfaces.nsIStyleSheetService); if (!sss.sheetRegistered(cssURI, sss.USER_SHEET)) sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET); if (typeof addDestructor == "function" && // userChromeJS/uc addDestructor != ("addDestructor" in window && window.addDestructor)) { addDestructor(function (reason) { if (reason != "destructor") { let sss = this.sss; let cssURI = this.cssURI; if (sss.sheetRegistered(cssURI, sss.USER_SHEET)) sss.unregisterSheet(cssURI, sss.USER_SHEET); } if (ucjs_MemoryMonitor) { ucjs_MemoryMonitor.destroy(); } }, this); } ucjs_MemoryMonitor.init(); |
Andrey_Krropotkin > 17-09-2013 13:08:29 |
Насчет рестарта посмотрите, как справились здесь:https://github.com/ardiman/userChrome.j … rMod.uc.js |
feas > 17-09-2013 18:57:35 |
2k1dmg пишет
спасиб |
sthprog > 30-09-2013 13:50:27 |
Решил создать почти новый профиль, перенес папку с кнопками CB, все отвалились, костыль с предыдущей страницы не работает что можно сделать? |
bunda1 > 30-09-2013 20:03:56 |
sthprog пишет
Что за костыль? |
sthprog > 01-10-2013 06:55:10 |
bunda1 пишет
этот, в прошлый раз советовали |
bunda1 > 01-10-2013 08:08:36 |
sthprog > 01-10-2013 10:11:39 |
bunda1 пишет
Ура, заработало, спасибо. |
difabor > 12-11-2013 16:06:08 |
Мне кажется, что для экономии места можно не показывать "МВ", а только само число мегабайт. |
bunda1 > 12-11-2013 21:10:51 |
difabor пишет
Дело вкуса или переделать просишь? difabor пишет
Ну можно конечно, но почему именно эти значения? difabor пишет
Легко. difabor пишет
Можно но сложно, я не сделаю. |
difabor > 12-11-2013 22:05:57 |
bunda1 пишет
Спасибо! |
bunda1 > 12-11-2013 23:44:59 |
Ох тяжко, мне не русскому человеку трудно объяснять Цвета отдельных цифр - наверно нужно создать и объединить в адресной строке несколько маленьких разноцветных панелей которые должены отображать только одну цифру расхода памяти.. Как указать другую панель здесь почитай Метод appendChild() – добавление дочернего узла к XML элементу | okITgo.ru и Метод insertBefore() XML Элемента | okITgo.ru Выделить код Код:// Показывать потребление памяти в адресной строке, от 12.11.2013. ................................ (function func() { // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки addDestructor(function() { urlbarIcons.removeChild( memoryDisplay ) }); memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory(); setInterval(function() { memoryDisplay.label = getMemory() }, 2000 ); // таймер обновляет счётчик, по умолчанию в 2000мс( 2 сек ) // Получить потребление памяти в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); func[mr.path] = mr; } var memory = func["resident"].amount; return ( Math.round( memory/1048576 )+10 ); }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; border: 0 !important; min-width: 5.5em; text-align: right; }\ #memoryDisplay{ color: #FF1493 !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET) }); })(); Цвет всего текста - #memoryDisplay{ color: #FF1493 !important; } |
Andrey_Krropotkin > 13-11-2013 00:05:02 |
bunda1 можно подставить в подсказку различные показатели типа памяти из about:memory: Из того что показывает кнопка - соответствует: значению resident. |
bunda1 > 13-11-2013 00:25:09 |
Andrey_Krropotkin пишет
У меня соответствует тому что показывает диспетчер задач, разница около 5-10MB 13-11-2013 00:31:08 |
difabor > 13-11-2013 02:17:10 |
bunda1 пишет
Огромнейшее спасибо! |
bunda1 > 13-11-2013 21:33:45 |
difabor пишет
TabsToolbar |
difabor > 14-11-2013 14:53:52 |
bunda1 пишет
Спасибо большое! |
bunda1 > 14-11-2013 22:17:31 |
difabor Выделить код Код:// Показывать потребление памяти на текущей кнопке, от 12.11.2013. ................................ (function () { self.label = getMemory(); self.timer = setInterval(function() { self.label = getMemory() }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Получить потребление памяти в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; return ( Math.round( memory/1048576 ) ); }; // Стиль добавляет текст на кнопку .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ %button% .toolbarbutton-icon {\ display: none !important;\ }\ %button% .toolbarbutton-text {\ display: -moz-box !important;\ }\ %button% {\ -moz-box-orient: horizontal !important;\ }\ '.replace(/%button%/g, "#" + _id) )); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); |
voqabuhe > 15-11-2013 00:48:03 |
bunda1 пишет
В открывает пустую страницу, с названием вкладки about:memory |
bunda1 > 15-11-2013 20:27:07 |
voqabuhe пишет
У меня на проблем нет, что будет если просто открыть about:memory из адресной строки. |
voqabuhe > 15-11-2013 21:07:00 |
bunda1 |
bunda1 > 15-11-2013 21:26:53 |
voqabuhe Выделить код Код:var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); на: |
voqabuhe > 15-11-2013 23:40:47 |
bunda1 |
bunda1 > 15-11-2013 23:47:50 |
Упс, пропустил }); за setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); |
voqabuhe > 16-11-2013 00:14:34 |
bunda1 |
bunda1 > 16-11-2013 00:26:39 |
А если в новой кнопке запустить gBrowser.selectedTab = gBrowser.addTab("about:memory"); |
voqabuhe > 16-11-2013 00:38:40 |
bunda1 16-11-2013 00:51:36 |
bunda1 > 16-11-2013 01:04:05 |
Ну тогда не знаю |
difabor > 18-11-2013 10:49:05 |
mserv пишет
Я уменьшил их так: Не намного, конечно, но чуть-чуть уменьшил |
voqabuhe > 18-11-2013 11:42:36 |
difabor пишет
Ну наверное надо минусовые значения поставить вместо нуля, чтобы ещё уменьшить интервал? |
Andrey_Krropotkin > 18-11-2013 17:44:51 |
difabor |
>ORG@niZM< > 19-11-2013 16:51:00 |
Andrey_Krropotkin |
difabor > 19-11-2013 21:11:09 |
Andrey_Krropotkin пишет
Спасибо!!! |
ZeHoha > 20-11-2013 08:09:13 |
Подскажите, плз, в чём может быть проблема. Удалял и создавал заново. Делал отдельную кнопку и клал в существующую. |
bunda1 > 20-11-2013 21:05:52 |
Может обнови Сustom Buttons, проверь на чистом профиле. Вообще то такое возможно только если ты установил два таких кода |
ZeHoha > 21-11-2013 11:52:55 |
bunda1 пишет
Не, ну я ещё не совсем из ума выжил! |
Pippo78 > 21-11-2013 14:59:01 |
bunda1 а можно ли в текущей версии Memory Monitor сделать так чтобы при достижении отметки например 1000 MB текст становился жирным выделенным. Спасибо. |
bunda1 > 21-11-2013 20:11:19 |
Pippo78 пишет
Замени в коде: Выделить код Код:self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) на: Выделить код Код:self.timer = setInterval(function() { var m = getMemory(); memoryDisplay.label = m + ' MB'; memoryDisplay.style.fontWeight = (m > 1000) ? 'bold' : ''; }, 2000 ); |
Pippo78 > 22-11-2013 11:26:09 |
bunda1 большое спасибо! |
PEAKTOP > 10-12-2013 23:53:53 |
bunda1, а что надо в коде заменить для размещения монитора в панели дополнений (статусной строке)? |
difabor > 11-12-2013 00:35:52 |
PEAKTOP пишет
var urlbarIcons = document.getElementById("urlbar-icons"); надо заменить на var urlbarIcons = document.getElementById("status-bar"); или на "addon-bar" (это не то же самое, но разница небольшая) |
xrun1 > 20-12-2013 03:16:15 |
bunda1 |
bunda1 > 20-12-2013 03:34:24 |
Хорошо. |
difabor > 20-12-2013 05:04:02 |
А что происходит при удалении Flash кукиси? Пароли сохраняются? |
nafanja333 > 20-12-2013 17:05:20 |
bunda1 пишет
Добрый день. Чего то мониторчик стабильно подбрехивает на + 40 МБ. Вин 7 -26 ДЗ - Винды показывает 190, монитор 230. Где можно поправить? |
bunda1 > 20-12-2013 17:18:11 |
nafanja333 Выделить код Код:self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) 20-12-2013 17:22:34 |
Infocatcher > 20-12-2013 17:45:45 |
У меня Выделить код Код:var mrm = Cc["@mozilla.org/memory-reporter-manager;1"] .getService(Ci.nsIMemoryReporterManager); mrm.resident/1024; совпадает с Physical Memory – Working Set в Process Explorer'е. 20-12-2013 17:48:37 |
bunda1 > 20-12-2013 18:09:08 |
Спасибо за разъяснения Infocatcher |
nafanja333 > 20-12-2013 19:25:03 |
Спасибо. С прогой Process Explorer'е. есть расхождение в 15- 18 мб, а так вроде бы ОК. |
xrun1 > 11-03-2014 03:10:39 |
bunda1 скрытый текст |
bunda1 > 11-03-2014 21:51:00 |
xrun1 пишет
Выделить код Код:// Показывать потребление памяти в адресной строке, от 20.12.2013. ................................ (function () { // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); memoryDisplay.setAttribute("context", "event.stopPropagation()"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; memoryDisplay.style.cssText = "-moz-appearance: none; border: 0; min-width: 5.5em; text-align: right;"; // Css стиль для счётчика self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша, автор кода 'Dumby' .... var k = 100, mb = 1024 * 1024, str = "", cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService), visitor = { visitDevice: addInfo }; function addInfo(device, info) { str += (str ? "\n" : "") + device[0].toUpperCase() + device.slice(1) + " Cache: " + [info.totalSize, info.maximumSize].map(function(num) Math.round(k * num / mb) / k + " MB").join(" / "); }; memoryDisplay.onmouseenter = function() { str = ""; cs.visitEntries(visitor); memoryDisplay.tooltipText = "Л: Подробно показать потребление памяти в вкладке" + "\n" + "Р: Очистить кэш и удалить Flash кукисы" + "\n\n" + str; }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly return ( Math.round( memory/1048576 ) ); }; // Отслеживать клики на счётчике памяти .... memoryDisplay.onclick = function(e) { // по ЛКМ подробно показать потребление памяти в вкладке if ( e.button == 0 ) { var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }) } // по ПКМ очистить кэш и удалить Flash кукисы if ( e.button == 2 ) { // очистить кэш .... var cacheService = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService); cacheService.evictEntries(Ci.nsICache.STORE_IN_MEMORY); cacheService.evictEntries(Ci.nsICache.STORE_ON_DISK); // удалить Flash кукисы .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification("chrome://global/skin/icons/question-16.png", self.label, 'Очистил кеш и удалил Flash кукиси', false, "", null, ""); } }; // Удалять счётчик памяти и другие изменения .... addDestructor(function() { urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); А вот как получить память что расходует Plugin Flash я не знаю |
xrun1 > 12-03-2014 02:10:33 |
bunda1 bunda1 пишет
Значит буду пользоваться Process Explorer для мониторинга и дальше. Ещё раз, спасибо за внимание и помощь. |
bunda1 > 12-03-2014 20:43:47 |
xrun1 пишет
Можно отключить plugin-container и смотреть общий расход памяти. |
xrun1 > 12-03-2014 22:23:01 |
bunda1
Интересно, не знал об этой возможности, спасибо. |
difabor > 25-03-2014 02:06:16 |
ЛКМ вызывает about:memory, а там есть "кнопки", одна из которых - "minimize memory usage" Выделить код Код:if (e.button == 1) {Services.obs.notifyObservers(null, "child-mmu-request", null); custombuttons.alertSlide("MMU",1);} Это будет работать? |
bunda1 > 26-03-2014 22:40:21 |
difabor пишет
Думаю что не уменьшится нагрузка, код это не может. Кстати себе в коде Memory Monitor я сделал выгрузку занимаемой памяти по ЛКМ который запускает портативную программку afom.exe которая работает как процесс, программку вытащил из расширения AFOM Выделить код Код:// Включить по клику программу для автоматической выгрузки памяти .... memoryDisplay.onclick = function(e) { if ( e.button ) return; var profileDir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsILocalFile).path; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); file.initWithPath( profileDir + "\\..\\Soft\\afom\\afom.exe" ); file.launch(); }; 26-03-2014 22:50:15 |
difabor > 27-03-2014 00:18:43 |
bunda1 пишет
Спасибо большое, я себе тоже скачал и посадил на СКМ. Работает. |
bunda1 > 27-03-2014 00:56:03 |
difabor пишет
AFOM | Форум Mozilla Россия |
difabor > 01-04-2014 08:54:33 |
Я вот уже неделю пользуюсь этим AFOM и не нарадуюсь. Я забыл что такое 700 МВ... Ещё раз огромное спасибо, bunda1 |
xrun1 > 04-09-2014 12:23:17 |
bunda1 Мой вариант Выделить код Код:// https://forum.mozilla-russia.org/viewtopic.php?pid=644365#p644365 // https://forum.mozilla-russia.org/viewtopic.php?pid=633560#p633560 // Показывать потребление памяти в адресной строке, от 28.07.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { var mv = getMemory(); memoryDisplay.label = mv + ' MB'; memoryDisplay.style.background = (mv > 800) ? 'Red' : ''; }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var k = 100, mb = 1024 * 1024, str = "", cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService), visitor = { visitDevice: addInfo }; function addInfo(device, info) { str += (str ? "\n" : "") + device[0].toUpperCase() + device.slice(1) + " Cache: " + [info.totalSize, info.maximumSize].map(function(num) Math.round(k * num / mb) / k + " MB").join(" / "); }; memoryDisplay.onmouseenter = function() { str = ""; try { cs.visitEntries(visitor) } catch(e) {}; memoryDisplay.tooltipText = "Л: Подробно показать потребление памяти" + "\n" + "С: Очистить кэш и удалить Flash-куки" + "\n\n" + ( cbu.getPrefs("browser.cache.memory.enable") || cbu.getPrefs("browser.cache.disk.enable") ? str : "Кэш отключен" ); }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button == 0 ) { var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); } // по СКМ очистить кэш и удалить Flash кукисы if ( e.button == 1 ) { // очистить кэш .... var cacheService = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService); cacheService.evictEntries(Ci.nsICache.STORE_IN_MEMORY); cacheService.evictEntries(Ci.nsICache.STORE_ON_DISK); // удалить Flash кукисы .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification("chrome://global/skin/icons/question-16.png", self.label, 'Очистил кеш и удалил Flash-куки', false, "", null, ""); } }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: -2px !important; margin-right: -2px !important; border: 0 !important; padding: 0 !important; text-align: right; }\ #memoryDisplay[resetMemory] { color: red !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); |
bunda1 > 04-09-2014 22:52:47 |
xrun1 Выделить код Код:// https://forum.mozilla-russia.org/viewtopic.php?pid=644365#p644365 // https://forum.mozilla-russia.org/viewtopic.php?pid=633560#p633560 // Показывать потребление памяти в адресной строке, от 04.09.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { var mv = getMemory(); memoryDisplay.label = mv + ' MB'; memoryDisplay.style.background = (mv > 800) ? 'Red' : ''; }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var title = "Л: Подробно показать потребление памяти \nС: Очистить кэш и удалить Flash-куки\n\n"; var data = { memory: "Memory Cache: ", disk: "Disk Cache: ", offline: "Offline Cache: " }; function getSize(size) { if (!size) return size === 0 ? "0" : "?"; for(var count = -1; size >= 1024; size /= 1024, count++); return size.toFixed(2).replace(/0+$/, "").replace(/\.$/, "") + " " + ("KMGT"[count] || "") + "B"; } function setInf(tot, max, type, i) { var inf = getSize(tot) + " / " + getSize(max); var key = "browser.cache." + type + ".enable"; if (!Services.prefs.getBoolPref(key)) inf += " (disabled)"; memoryDisplay.tooltipText = memoryDisplay.tooltipText.replace(zws(i), inf); } function zws(ind) "\u200B\u200B\u200B".slice(0, ++ind); var types = Object.keys(data); var ttt = title + types.map(function(key, i) data[key] + zws(i)).join("\n"); memoryDisplay.onmouseenter = function() { memoryDisplay.tooltipText = ttt; try { var entries = {}; Services.cache.visitEntries({ visitDevice: function(device, info) entries[device] = info, visitEntry: function() {} }); types.forEach(function(type, i) { var info = entries[type]; setInf(info && info.totalSize, info && info.maximumSize, type, i) }); } catch(ex) { Services.cache2 && types.forEach(function(type, i) { var func = function(aEntryCount, aConsumption, aCapacity, aDiskDirectory) setInf(aConsumption, aCapacity, type, i); var storage = Services.cache2[(type == "offline" ? "app" : type) + "CacheStorage"]({}, null); try { storage.asyncVisitStorage({onCacheStorageInfo: func}, false) } catch(ex) {}; }); } }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button == 0 ) { var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); } // по СКМ очистить кэш и удалить Flash кукисы if ( e.button == 1 ) { // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() }; // удалить Flash кукисы .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification("chrome://global/skin/icons/question-16.png", self.label, 'Очистил кеш и удалил Flash-куки', false, "", null, ""); } }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: -2px !important; margin-right: -2px !important; border: 0 !important; padding: 0 !important; text-align: right; }\ #memoryDisplay[resetMemory] { color: red !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); |
xrun1 > 05-09-2014 00:24:32 |
bunda1 скрытый текст UPD: И в Offline Cache: 0 / 0 - берётся другое значение (только в случае, если disabled), чем в browser.cache.offline.capacity. Не обращай внимание на моё занудство, это уже мелочи и просто для тебя информация. Память показывает в адресной строке и очищает, мне этого достаточно. |
villa7 > 05-09-2014 02:19:07 |
bunda1 |
Mishania > 05-09-2014 08:08:31 |
|
bunda1 > 06-09-2014 20:09:29 |
villa7 пишет
Легко Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20memoryTab%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Amemory%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22about%3Amemory%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u043D%u0430%u0436%u0438%u043C%u0430%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20memoryTab.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%20e.type%2C%20c%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20try%20%7B%20e.originalTarget.getElementById%28%27measureButton%27%29.click%28%29%20%7D%20catch%28e%29%20%7B%7D%20%7D%2C%200%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20....%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%20....%0A%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29.get%28%22Home%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20dir.exists%28%29%20%29%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21dir.exists%28%29%20%29%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20showAlertNotification%28%27chrome%3A//global/skin/icons/information-16.png%27%2C%20%27%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%27%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u043A%u043D%u043E%u043F%u043A%u0435%20................................%0A%28function%20%28%29%20%7B%0A%20%20%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%2C%202000%20%29%3B%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%0A%0A%20%20%20//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%25button%25%20.toolbarbutton-icon%20%7B%5C%0A%20%20%20%20%20display%3A%20none%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20.toolbarbutton-text%20%7B%5C%0A%20%20%20%20%20display%3A%20-moz-box%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20%7B%5C%0A%20%20%20%20%20-moz-box-orient%3A%20horizontal%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%27.replace%28/%25button%25/g%2C%20%22%23%22%20+%20_id%29%20%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A//%20%u0421%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0A%28function%28%29%20%7B%20%20%20%0A%20%20%20%20var%20title%20%3D%20%22%u041B%3A%20%u041F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%5Cn%u041F%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%5Cn%22%3B%0A%20%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%20%7D%3B%0A%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20self.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20%20self.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28%7B%7D%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E 06-09-2014 20:12:38 xrun1 пишет
Хорошо, спасибо за информацию. |
villa7 > 06-09-2014 22:05:40 |
bunda1 |
xrun1 > 20-09-2014 12:36:00 |
bunda1 скрытый текст |
PEAKTOP > 23-09-2014 17:19:25 |
Memory Monitor + функционал кнопки Clear Cache / Delete flash cookie для FF 24.8.0 с размещением индикатора в адресной строке/панели дополнений. При клике ЛКМ по индикатору, происходит запуск утилиты afom.exe — программа для автоматической выгрузки памяти. Очистка кэша и удаление Flash кукисов выполняется по нажатию СКМ или ПКМ (при нажатии ПКМ, вместе с уведомлением очистки кэша и кукисов вылезет стандартное меню панели. Автор кода Bunda1 Все благодарности ему. С размещением индикатора в адресной строке Выделить код Код:// Показывать потребление памяти в адресной строке, от 28.07.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке.... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var k = 100, mb = 1024 * 1024, str = "", cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService), visitor = { visitDevice: addInfo }; function addInfo(device, info) { str += (str ? "\n" : "") + device[0].toUpperCase() + device.slice(1) + " Cache: " + [info.totalSize, info.maximumSize].map(function(num) Math.round(k * num / mb) / k + " MB").join(" / "); }; memoryDisplay.onmouseenter = function() { str = ""; try { cs.visitEntries(visitor) } catch(e) {}; memoryDisplay.tooltipText = "ЛКМ: Автоматически выгружать память" + "\n"+ "СКМ и ПКМ: Очистить кэш и удалить Flash кукисы" + "\n\n" + ( cbu.getPrefs("browser.cache.memory.enable") || cbu.getPrefs("browser.cache.disk.enable") ? str : "Кэш отключен" ); }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // Включить по клику программу для автоматической выгрузки памяти .... memoryDisplay.onclick = function(e) { if ( e.button == 0 ) { var profileDir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsILocalFile).path; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); file.initWithPath( profileDir + "\\afom.exe" ); file.launch(); memoryDisplay.setAttribute("resetMemory", true ); return; } // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() } // Удалить Flash кукиси .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // Всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification(self.image, 'Memory Monitor', 'Очистил кеш и удалил Flash кукиси', false, "", null, ""); }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: 2px !important; margin-right: -4px !important; border: 0 !important; min-width: 5.5em; text-align: right; }\ #memoryDisplay[resetMemory] { color: BLACK !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); С размещением индикатора в панели дополнений. Выделить код Код:// Показывать потребление памяти в панели дополнений, от 28.07.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в панели дополнений.... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("status-bar"); urlbarIcons.insertBefore( memoryDisplay, null); memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var k = 100, mb = 1024 * 1024, str = "", cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService), visitor = { visitDevice: addInfo }; function addInfo(device, info) { str += (str ? "\n" : "") + device[0].toUpperCase() + device.slice(1) + " Cache: " + [info.totalSize, info.maximumSize].map(function(num) Math.round(k * num / mb) / k + " MB").join(" / "); }; memoryDisplay.onmouseenter = function() { str = ""; try { cs.visitEntries(visitor) } catch(e) {}; memoryDisplay.tooltipText = "ЛКМ: Автоматически выгружать память" + "\n"+ "СКМ и ПКМ: Очистить кэш и удалить Flash кукисы" + "\n\n" + ( cbu.getPrefs("browser.cache.memory.enable") || cbu.getPrefs("browser.cache.disk.enable") ? str : "Кэш отключен" ); }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // Включить по клику программу для автоматической выгрузки памяти .... memoryDisplay.onclick = function(e) { if ( e.button == 0 ) { var profileDir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsILocalFile).path; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); file.initWithPath( profileDir + "\\afom.exe" ); file.launch(); memoryDisplay.setAttribute("resetMemory", true ); return; } // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() } // Удалить Flash кукиси .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // Всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification(self.image, 'Memory Monitor', 'Очистил кеш и удалил Flash кукиси', false, "", null, ""); }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: 2px !important; margin-right: -4px !important; border: 0 !important; min-width: 5.5em; text-align: right; }\ #memoryDisplay[resetMemory] { color: BLACK !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); |
PEAKTOP > 22-11-2014 20:24:21 |
Bunda1, добавь пожалуйста к расширенной версии кнопки — с очисткой кукисов и кэша, очистку памяти по СКМ и ПКМ |
bunda1 > 25-11-2014 12:56:14 |
PEAKTOP пишет
Извини но я не знаю как запустить очистку памяти через Minimize memory usage так как у тебя в изображении. |
PEAKTOP > 25-11-2014 14:14:42 |
bunda1, печально. А если мне удасться выяснить у знатоков как это делается, добавишь в кнопку? |
Dumby > 25-11-2014 14:32:45 |
bunda1 пишет
|
bunda1 > 25-11-2014 19:16:12 |
Dumby пишет
Не работает: Выделить код Код:var gMgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); gMgr.minimizeMemoryUsage(); а так работает: Выделить код Код:var gMgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); gMgr.minimizeMemoryUsage(() => updateMainAndFooter("Memory minimization completed", HIDE_FOOTER)); но показывает ошибку:
25-11-2014 19:17:06 PEAKTOP пишет
Хорошо. |
Dumby > 25-11-2014 19:31:51 |
скрытый текст Выделить код Код:Cc["@mozilla.org/memory-reporter-manager;1"] .getService(Ci.nsIMemoryReporterManager) .minimizeMemoryUsage(null); |
bunda1 > 25-11-2014 19:57:24 |
Dumby |
bunda1 > 25-11-2014 21:45:57 |
PEAKTOP пишет
А стоит ли это добавлять если запуск Minimize memory usage не сильно снижает потребление памяти максимум на 30MB. |
PEAKTOP > 26-11-2014 17:39:29 |
У меня bunda1 пишет
У меня иной раз 150-200 Мб освобождает, но это в случае, когда FF отжирает больше 1,5 Гб. У меня вкладок много открыто, в среднем > 60-70. |
yacornei > 04-12-2014 20:55:00 |
я так понимаю!!! эта кнопа не актуальна.???? |
xrun1 > 04-12-2014 22:36:24 |
yacornei |
yacornei > 04-12-2014 23:31:21 |
xrun1 пишет
?? Так у меня есть это расширение! стоит!!! есть ли смысл вытаскивать оттуда-отдельный элемент? |
xrun1 > 05-12-2014 00:02:32 |
yacornei |
yacornei > 05-12-2014 00:10:12 |
Поначалу поставил с 1 стр,а потом дальше пошел и наткнулся на с "afom",попробую поправить путь спс!!! |
villi311 > 09-12-2014 14:02:13 |
Подскажите почему у меня при нажатии на лкм начинается попытка открытия новой вкладки и фф сразу падает. |
bunda1 > 09-12-2014 16:07:28 |
villi311 пишет
Не знаю в чём проблема, может удали в коде Memory Monitor этот кусок: Выделить код Код:// По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button ) return; var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); }; |
villi311 > 09-12-2014 17:48:18 |
bunda1 пишет
Ну тогда я так понимаю, он вообще не будет открывать в новой вкладке about:memory |
xrun1 > 09-12-2014 19:02:20 |
villi311 |
voqabuhe > 09-12-2014 19:53:36 |
villi311 пишет
У меня работает, но я как-то про эту фишку подзабыл и не пользуюсь. Открываю about:memory с помощью About: Menu. Попробуй, может и тебя устроит такой вариант и все Эбауты )) будут под рукой. |
villi311 > 09-12-2014 20:28:36 |
Всем спасибо. Буду пробовать. Не так то это важно, да и давно уже падает, бог с ней. Видимо и правда какое то расширение мешает, но они у меня все отфильтрованы и поставлены только нужные. |
broker > 30-06-2015 19:25:16 |
Подниму тему. Скажите можно ли сделать так чтоб afom запускался автоматически, если потребление оперативки наберет например 500мб. спасибо. |
bunda1 > 01-07-2015 19:10:09 |
broker пишет
Замени: Выделить код Код:self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); на: Выделить код Код:self.timer = setInterval(function() { var memory = getMemory(); memoryDisplay.label = memory + ' MB'; if ( memory > 500 ) { var path = "c:\\Program files\\Afom\\afom.exe"; var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath(path); file.launch(); } }, 2000 ); Только замени путь c:\\Program files\\Afom\\afom.exe на свой, но с двойными \\ |
broker > 02-07-2015 00:07:45 |
bunda1 |
bunda1 > 02-07-2015 00:37:03 |
broker пишет
Ну тогда что то типа: Выделить код Код:self.timer = setInterval(function() { var memory = getMemory(); memoryDisplay.label = memory + ' MB'; if ( memory > 500 ) { var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(file.path + "\\..\\Soft\\afom.exe"); file.launch(); } }, 2000 ); |
PEAKTOP > 02-07-2015 00:43:36 |
bunda1, подскажи, пожалуйста — как добиться запуска afom.exe при старте браузера? |
bunda1 > 02-07-2015 01:08:20 |
PEAKTOP пишет
Ну наверно положить в инициализацию любой кнопки: Выделить код Код:var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(file.path + "\\..\\Soft\\afom.exe"); file.launch(); |
broker > 02-07-2015 02:44:21 |
bunda1 |
broker > 02-07-2015 18:49:22 |
bunda1 |
free13man > 14-08-2015 00:17:29 |
А есть ли итоговый враиант с AFOM работающий на 40 версии? Что-то у меня не выходит подружить кнопку с файлом, файл лежит в портативной версии в профиле. |
bunda1 > 14-08-2015 22:45:13 |
free13man пишет
Если я правильно понял что требуется, то нужно положить в инициализацию любой кнопки: Выделить код Код:var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("afom.exe"); file.launch(); и тогда при старте браузера AFOM тоже заработает. |
free13man > 14-08-2015 23:23:54 |
bunda1 пишет
Ага спасибо, а вычищаться при заполнении памяти он ведь не будет, я так понимаю он единожды запустится и всё. |
bunda1 > 15-08-2015 01:00:33 |
free13man пишет
Нет, после запуска он регулярно, кажется раз в минуту вычищает память. |
emlen > 19-08-2015 17:10:45 |
Мониторить бы сколько каждая отдельная вкладка памяти жрет) |
bunda1 > 19-08-2015 17:51:40 |
emlen пишет
Может посмотри в about:memory |
emlen > 20-08-2015 21:20:59 |
bunda1 пишет
Не ну там как-то не наглядненько) |
Ultima2m > 21-08-2015 13:04:43 |
Есть код, минимизирует использование памяти скрытый текст Выделить код Код:doMMU(); function doMMU() { let gMgr = Cc["@mozilla.org/memory-reporter-manager;1"] .getService(Ci.nsIMemoryReporterManager); Services.obs.notifyObservers(null, "child-mmu-request", null); gMgr.minimizeMemoryUsage(null, false, false); } Как перенести его в инициализацию, чтобы срабатывал по клику СКМ на индикаторе в URL и появлялось окошко о выполнении? Я пробовал так скрытый текст Выделить код Код:// По клику очистить кэш и удалить Flash кукисы memoryDisplay.onclick = function(e) { if ( e.button == 0 ){ try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() }; var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // по СКМ минимизировать использование памяти if ( e.button == 1 ) doMMU(); function doMMU() { let gMgr = Cc["@mozilla.org/memory-reporter-manager;1"] .getService(Ci.nsIMemoryReporterManager); Services.obs.notifyObservers(null, "child-mmu-request", null); gMgr.minimizeMemoryUsage(null, false, false); } Но, похоже, средний клик не работает |
bunda1 > 21-08-2015 19:35:15 |
Ultima2m Выделить код Код:// Настройка функций кликов мыши для Memory Monitor ..... memoryDisplay.onclick = function(e) { // по ЛКМ очистить кэш и удалить Flash кукисы if ( e.button == 0 ){ try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() }; var dir = Services.dirsvc.get('Home', Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); dir.exists() && dir.remove(true); !dir.exists() && dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); } // по СКМ минимизировать использование памяти if ( e.button == 1 ) { memoryDisplay.style.color = "red"; Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager) .minimizeMemoryUsage(null); } }; |
Ultima2m > 21-08-2015 20:14:54 |
bunda1, скрытый текст Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0430%u043C%u044F%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADHklEQVQ4jYWTXUxTBxiG32hn62h1GLASoWoY+JNaZBtLmIMjyyKixLgEspEFkJZNHDHOAdmBU6RkUZzZsmK1+EOyOspAQ92QpjhbEEaUSmLXru4s4WLdxSgmrhCdEGSL7640ahb23L3J99w9H/AsiwBoHo9dOcu+fydvuQuAGoAKQBwWQvMiCps/TPo9WbvYBEDnatHOXTu7nnm5b1w/3NQUliRpHEDO895qnVYhAtiSrV9yfP7mBnY0Jz9am6z1W1v2/3Pj+jDn5h7yMXa7PaZUKnc9sVNWKmvv/5hBW03Cg7ffXHe343Q9f/BcYiTyG/+amefM7BxjsRgnJyc5MTHBWCxGq9X6QKlUFgAA9giaDu/pjfzmjJnBn3/h1PQsp6bvMRqdZCQS4fj4OGVZZjgcZjAYZCAQoCzLrK+vn1IoFNmo3K0ZFvfn0uH8jtFolLIsMxQKMRAIcGxsjKOjoxwZGeHQ0BB9Ph99Ph8HBgbo8XgoCEIIB4rUv3aek9jy+Rd0Op30+/0cHByk1+tlf38/3W43+/r66Ha76XL1sK2tjQ1SIz+pqWP+9u1/wlyx4u6pryT2X/GyurqaXV1d7O3tZU9PD10uF7u7u2m32ylJZlZVVbGy8gOWFO+guaGGpWVlf0DYovK+/kraja8d52mz2Wg0Gtne3s7W1laKokiTyUSj0cjSchMls4W1dSI9J1LZeXQjl7208ksAUAJQZ2VlDTscDoqiyMLCQpaX72Vp+T42NR+hubGR5ywZPLRXP5+UpGsr2Kq5PDW4mZkblhx9uoc1giCELRYLKyqMtDSZeeTQqywrKXik12++9e1nKXd+6kyfB/AyACF6xcCPihN8z0eVmpaWdnNb3luzBoM+PHBq7f1rZ1L/BrAzP1ttDXVtIoAMQ7qq4c5VA3XaFz7+z6IBpANQ5b0W1/7Qn8nlmkW1+4oSnOeb18wASDj4buKtk5/q7gFIWvA3SnbEO29f2EQA+ccPro4ceC9xCEDcqkTFMZUC2xaUAShsdSm3Lx5bNw1gVW5mnEcbv7jk/6SnWfp+fnwwJ1NtX+joXwJBlDIWFgabAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28function%20%28%29%20%7B%0A%20%20%20if%20%28%20document.getElementById%28%27memoryDisplay%27%29%20%29%20return%3B%0A%20%20%20%20%0A%20%20%20//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20....%0A%20%20%20var%20memoryDisplay%20%3D%20document.createElement%28%22statusbarpanel%22%29%3B%0A%20%20%20var%20urlbarIcons%20%3D%20document.getElementById%28%22urlbar-icons%22%29%3B%0A%20%20%20urlbarIcons.insertBefore%28%20memoryDisplay%2C%20urlbarIcons.lastChild%20%29%3B%20//%20%u043F%u0435%u0440%u0435%u0434%20%u043F%u0435%u0440%u0432%u043E%u0439%20%u0438%u043A%u043E%u043D%u043A%u043E%u0439%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20%20%20%20%20memoryDisplay.id%20%3D%20%22memoryDisplay%22%3B%0A%20%20%20memoryDisplay.label%20%3D%20getMemory%28%29%20+%20%27%20MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20mv%20%3D%20getMemory%28%29%3B%0A%20%20%20%20%20%20memoryDisplay.label%20%3D%20mv%20+%20%27%20MB%27%3B%0A%20%20%20%20%20%20memoryDisplay.style.color%20%3D%20%28mv%20%3E%20700%29%20%3F%20%27%23AB274F%27%20%3A%20%27%27%3B%0A%20%20%20%7D%2C%202000%20%29%3B%20%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%0A%20%20%0A%20%20%0A//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430%20....%0A%20%20%20var%20title%20%3D%20%22%u041B%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%5Cn%22%3B%0A%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%7D%3B%20%20%20%0A%20%20%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%7D%0A%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20memoryDisplay.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%7D%0A%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20memoryDisplay.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28%7B%7D%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%20%0A%20%20%20%20%0A%20%20%20%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0437%u0430%u043D%u0438%u043C%u0430%u0435%u043C%u0443%u044E%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u0443%u044E%20%u043F%u0430%u043C%u044F%u0442%u044C%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%20%20%20%20%20%0A%20%20%20%0A%20%0A%20//%20%u041F%u043E%20%u043A%u043B%u0438%u043A%u0443%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u044B%0A%20%20%20memoryDisplay.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%3B%0A%20%20%20%20%20var%20dir%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29.get%28%22Home%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20dir.exists%28%29%20%29%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20%21dir.exists%28%29%20%29%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A//%20%u043F%u043E%20%u0421%u041A%u041C%20%u043C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20doMMU%28%29%3B%0Afunction%20doMMU%28%29%20%7B%0A%09let%20gMgr%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D%0A%09.getService%28Ci.nsIMemoryReporterManager%29%3B%20%0A%09Services.obs.notifyObservers%28null%2C%20%22child-mmu-request%22%2C%20null%29%3B%20%0A%09gMgr.minimizeMemoryUsage%28null%2C%20false%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%0A%20%0A//%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20%20showAlertNotification%28%22chrome%3A//global/skin/icons/question-16.png%22%2C%20self.label%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash-%u043A%u0443%u043A%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20//%20Css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%20%20%20%23memoryDisplay%20%7B%20-moz-appearance%3A%20none%20%21important%3B%20color%3A%20green%20%21important%3B%20margin-left%3A%20-4px%20%21important%3B%20margin-right%3A%20-4px%20%21important%3B%20border%3A%200%20%21important%3B%20padding%3A%200%20%21important%3B%20text-align%3A%20right%3B%20%7D%5C%0A%20%20%20%20%20%20%23memoryDisplay%5BresetMemory%5D%20%7B%20color%3A%20red%20%21important%3B%20%7D%5C%0A%20%20%20%27%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20urlbarIcons.removeChild%28%20memoryDisplay%20%29%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A%0A%0A%0Athis.tooltipText%20%3D%20%22MinMemory%20%5Cn%u041B%3A%20%u041C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%5Cn%u041F%3A%20%u041C%u0435%u043D%u044E%22%3B%0A%0A%0A%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BdoMMU%28%29%3B%0Afunction%20doMMU%28%29%20%7B%0A%09let%20gMgr%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D%0A%09%09.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%09Services.obs.notifyObservers%28null%2C%20%22child-mmu-request%22%2C%20null%29%3B%0A%09gMgr.minimizeMemoryUsage%28null%2C%20false%2C%20false%29%3B%0A%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E P.S.Я пробовал вот так сделать memoryDisplay.style.color = (mv < 500) ? 'green' : ''; memoryDisplay.style.color = (mv > 700) ? 'red' : ''; и иногда это срабатывало. Можно это как-то правильно сделать? |
bunda1 > 21-08-2015 20:28:35 |
Ultima2m Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0430%u043C%u044F%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADHklEQVQ4jYWTXUxTBxiG32hn62h1GLASoWoY+JNaZBtLmIMjyyKixLgEspEFkJZNHDHOAdmBU6RkUZzZsmK1+EOyOspAQ92QpjhbEEaUSmLXru4s4WLdxSgmrhCdEGSL7640ahb23L3J99w9H/AsiwBoHo9dOcu+fydvuQuAGoAKQBwWQvMiCps/TPo9WbvYBEDnatHOXTu7nnm5b1w/3NQUliRpHEDO895qnVYhAtiSrV9yfP7mBnY0Jz9am6z1W1v2/3Pj+jDn5h7yMXa7PaZUKnc9sVNWKmvv/5hBW03Cg7ffXHe343Q9f/BcYiTyG/+amefM7BxjsRgnJyc5MTHBWCxGq9X6QKlUFgAA9giaDu/pjfzmjJnBn3/h1PQsp6bvMRqdZCQS4fj4OGVZZjgcZjAYZCAQoCzLrK+vn1IoFNmo3K0ZFvfn0uH8jtFolLIsMxQKMRAIcGxsjKOjoxwZGeHQ0BB9Ph99Ph8HBgbo8XgoCEIIB4rUv3aek9jy+Rd0Op30+/0cHByk1+tlf38/3W43+/r66Ha76XL1sK2tjQ1SIz+pqWP+9u1/wlyx4u6pryT2X/GyurqaXV1d7O3tZU9PD10uF7u7u2m32ylJZlZVVbGy8gOWFO+guaGGpWVlf0DYovK+/kraja8d52mz2Wg0Gtne3s7W1laKokiTyUSj0cjSchMls4W1dSI9J1LZeXQjl7208ksAUAJQZ2VlDTscDoqiyMLCQpaX72Vp+T42NR+hubGR5ywZPLRXP5+UpGsr2Kq5PDW4mZkblhx9uoc1giCELRYLKyqMtDSZeeTQqywrKXik12++9e1nKXd+6kyfB/AyACF6xcCPihN8z0eVmpaWdnNb3luzBoM+PHBq7f1rZ1L/BrAzP1ttDXVtIoAMQ7qq4c5VA3XaFz7+z6IBpANQ5b0W1/7Qn8nlmkW1+4oSnOeb18wASDj4buKtk5/q7gFIWvA3SnbEO29f2EQA+ccPro4ceC9xCEDcqkTFMZUC2xaUAShsdSm3Lx5bNw1gVW5mnEcbv7jk/6SnWfp+fnwwJ1NtX+joXwJBlDIWFgabAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28function%20%28%29%20%7B%0A%20%20%20if%20%28%20document.getElementById%28%27memoryDisplay%27%29%20%29%20return%3B%0A%20%20%20%20%0A%20%20%20//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20....%0A%20%20%20var%20memoryDisplay%20%3D%20document.createElement%28%22statusbarpanel%22%29%3B%0A%20%20%20var%20urlbarIcons%20%3D%20document.getElementById%28%22urlbar-icons%22%29%3B%0A%20%20%20urlbarIcons.insertBefore%28%20memoryDisplay%2C%20urlbarIcons.lastChild%20%29%3B%20//%20%u043F%u0435%u0440%u0435%u0434%20%u043F%u0435%u0440%u0432%u043E%u0439%20%u0438%u043A%u043E%u043D%u043A%u043E%u0439%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20%20%20%20%20memoryDisplay.id%20%3D%20%22memoryDisplay%22%3B%0A%20%20%20memoryDisplay.label%20%3D%20getMemory%28%29%20+%20%27%20MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20mv%20%3D%20getMemory%28%29%3B%0A%20%20%20%20%20%20memoryDisplay.label%20%3D%20mv%20+%20%27%20MB%27%3B%0A%20%20%20%20%20%20memoryDisplay.style.color%20%3D%20%28mv%20%3E%20700%29%20%3F%20%27%23AB274F%27%20%3A%20%27%27%3B%0A%20%20%20%7D%2C%202000%20%29%3B%20%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%0A%20%20%0A%20%20%0A//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430%20....%0A%20%20%20var%20title%20%3D%20%22%u041B%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%5Cn%22%3B%0A%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%7D%3B%20%20%20%0A%20%20%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%7D%0A%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20memoryDisplay.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%7D%0A%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20memoryDisplay.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28%7B%7D%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%20%0A%20%20%20%20%0A%20%20%20%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0437%u0430%u043D%u0438%u043C%u0430%u0435%u043C%u0443%u044E%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u0443%u044E%20%u043F%u0430%u043C%u044F%u0442%u044C%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%20%20%20%20%20%0A%20%20%20%0A%20%0A%20//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20Memory%20Monitor%20.....%0A%20%20%20memoryDisplay.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20//%20%u043F%u043E%20%u041B%u041A%u041C%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u044B%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%27Home%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.exists%28%29%20%26%26%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%21dir.exists%28%29%20%26%26%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20//%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20%20showAlertNotification%28%22chrome%3A//global/skin/icons/question-16.png%22%2C%20self.label%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash-%u043A%u0443%u043A%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20//%20%u043F%u043E%20%u0421%u041A%u041C%20%u043C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%0A%20%20%20%20%20%20%20%20%20%20%20.minimizeMemoryUsage%28null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%20%20%0A%20%20%20//%20Css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%20%20%20%23memoryDisplay%20%7B%20-moz-appearance%3A%20none%20%21important%3B%20color%3A%20green%20%21important%3B%20margin-left%3A%20-4px%20%21important%3B%20margin-right%3A%20-4px%20%21important%3B%20border%3A%200%20%21important%3B%20padding%3A%200%20%21important%3B%20text-align%3A%20right%3B%20%7D%5C%0A%20%20%20%20%20%20%23memoryDisplay%5BresetMemory%5D%20%7B%20color%3A%20red%20%21important%3B%20%7D%5C%0A%20%20%20%27%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20urlbarIcons.removeChild%28%20memoryDisplay%20%29%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A%0A%0A%0A%0A%0A%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BdoMMU%28%29%3B%0Afunction%20doMMU%28%29%20%7B%0A%09let%20gMgr%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D%0A%09%09.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%09Services.obs.notifyObservers%28null%2C%20%22child-mmu-request%22%2C%20null%29%3B%0A%09gMgr.minimizeMemoryUsage%28null%2C%20false%2C%20false%29%3B%0A%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E удали старую кнопку + рестарт. |
Ultima2m > 21-08-2015 20:49:15 |
bunda1 |
bunda1 > 21-08-2015 21:09:09 |
Ultima2m пишет
наверно у тебя конфликт с: Выделить код Код:memoryDisplay.style.color = (mv < 500) ? 'green' : ''; memoryDisplay.style.color = (mv > 700) ? 'red' : ''; и можешь вместо memoryDisplay.style.color = "red"; поставить: Выделить код Код:Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification("chrome://global/skin/icons/question-16.png", self.label, 'Минимизировать использование памяти', false, "", null, ""); Кстати лучше в коде твоей кнопки заменить: Выделить код Код:Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager) .minimizeMemoryUsage(null); на Выделить код Код:self.interval = setInterval(function() { Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager) .minimizeMemoryUsage(null); }, 40000 ); тогда очистка памяти будет происходить раз в 40 секунд. |
emlen > 21-08-2015 22:23:41 |
Можно готовый рабочий вариант кнопки для делитантов? |
bunda1 > 21-08-2015 22:57:41 |
emlen пишет
Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0430%u043C%u044F%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADHklEQVQ4jYWTXUxTBxiG32hn62h1GLASoWoY+JNaZBtLmIMjyyKixLgEspEFkJZNHDHOAdmBU6RkUZzZsmK1+EOyOspAQ92QpjhbEEaUSmLXru4s4WLdxSgmrhCdEGSL7640ahb23L3J99w9H/AsiwBoHo9dOcu+fydvuQuAGoAKQBwWQvMiCps/TPo9WbvYBEDnatHOXTu7nnm5b1w/3NQUliRpHEDO895qnVYhAtiSrV9yfP7mBnY0Jz9am6z1W1v2/3Pj+jDn5h7yMXa7PaZUKnc9sVNWKmvv/5hBW03Cg7ffXHe343Q9f/BcYiTyG/+amefM7BxjsRgnJyc5MTHBWCxGq9X6QKlUFgAA9giaDu/pjfzmjJnBn3/h1PQsp6bvMRqdZCQS4fj4OGVZZjgcZjAYZCAQoCzLrK+vn1IoFNmo3K0ZFvfn0uH8jtFolLIsMxQKMRAIcGxsjKOjoxwZGeHQ0BB9Ph99Ph8HBgbo8XgoCEIIB4rUv3aek9jy+Rd0Op30+/0cHByk1+tlf38/3W43+/r66Ha76XL1sK2tjQ1SIz+pqWP+9u1/wlyx4u6pryT2X/GyurqaXV1d7O3tZU9PD10uF7u7u2m32ylJZlZVVbGy8gOWFO+guaGGpWVlf0DYovK+/kraja8d52mz2Wg0Gtne3s7W1laKokiTyUSj0cjSchMls4W1dSI9J1LZeXQjl7208ksAUAJQZ2VlDTscDoqiyMLCQpaX72Vp+T42NR+hubGR5ywZPLRXP5+UpGsr2Kq5PDW4mZkblhx9uoc1giCELRYLKyqMtDSZeeTQqywrKXik12++9e1nKXd+6kyfB/AyACF6xcCPihN8z0eVmpaWdnNb3luzBoM+PHBq7f1rZ1L/BrAzP1ttDXVtIoAMQ7qq4c5VA3XaFz7+z6IBpANQ5b0W1/7Qn8nlmkW1+4oSnOeb18wASDj4buKtk5/q7gFIWvA3SnbEO29f2EQA+ccPro4ceC9xCEDcqkTFMZUC2xaUAShsdSm3Lx5bNw1gVW5mnEcbv7jk/6SnWfp+fnwwJ1NtX+joXwJBlDIWFgabAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28function%20%28%29%20%7B%0A%20%20%20if%20%28%20document.getElementById%28%27memoryDisplay%27%29%20%29%20return%3B%0A%20%20%20%20%0A%20%20%20//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20....%0A%20%20%20var%20memoryDisplay%20%3D%20document.createElement%28%22statusbarpanel%22%29%3B%0A%20%20%20var%20urlbarIcons%20%3D%20document.getElementById%28%22urlbar-icons%22%29%3B%0A%20%20%20urlbarIcons.insertBefore%28%20memoryDisplay%2C%20urlbarIcons.lastChild%20%29%3B%20//%20%u043F%u0435%u0440%u0435%u0434%20%u043F%u0435%u0440%u0432%u043E%u0439%20%u0438%u043A%u043E%u043D%u043A%u043E%u0439%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20memoryDisplay.id%20%3D%20%22memoryDisplay%22%3B%0A%20%20%20memoryDisplay.label%20%3D%20getMemory%28%29%20+%20%27%20MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20mv%20%3D%20getMemory%28%29%3B%0A%20%20%20%20%20%20memoryDisplay.label%20%3D%20mv%20+%20%27%20MB%27%3B%0A%20%20%20%7D%2C%202000%20%29%3B%20%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%0A%20%20%0A%20%20%0A//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430%20....%0A%20%20%20var%20title%20%3D%20%22%u041B%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%u0421%3A%20%u041C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%5Cn%5Cn%22%3B%0A%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%7D%3B%20%20%20%0A%20%20%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%7D%0A%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20memoryDisplay.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%7D%0A%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20memoryDisplay.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28%7B%7D%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0437%u0430%u043D%u0438%u043C%u0430%u0435%u043C%u0443%u044E%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u0443%u044E%20%u043F%u0430%u043C%u044F%u0442%u044C%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%20%20%20%20%20%0A%20%20%20%0A%20%0A%20//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20Memory%20Monitor%20.....%0A%20%20%20memoryDisplay.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20//%20%u043F%u043E%20%u041B%u041A%u041C%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u044B%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%27Home%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.exists%28%29%20%26%26%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%21dir.exists%28%29%20%26%26%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20//%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20%20showAlertNotification%28self.image%2C%20self.label%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash-%u043A%u0443%u043A%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u043E%20%u0421%u041A%u041C%20%u043C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20memoryDisplay.style.color%20%3D%20%22red%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20self.interval%20%29%20%7B%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20clearInterval%28%20self.interval%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20delete%20self.interval%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20self.interval%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.minimizeMemoryUsage%28null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%2040000%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%20%20%0A%20%20%20//%20Css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%20%20%20%23memoryDisplay%20%7B%20-moz-appearance%3A%20none%20%21important%3B%20margin-left%3A%20-4px%20%21important%3B%20margin-right%3A%20-4px%20%21important%3B%20border%3A%200%20%21important%3B%20padding%3A%200%20%21important%3B%20text-align%3A%20right%3B%20%7D%5C%0A%20%20%20%20%20%20%23memoryDisplay%5BresetMemory%5D%20%7B%20color%3A%20red%20%21important%3B%20%7D%5C%0A%20%20%20%27%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20urlbarIcons.removeChild%28%20memoryDisplay%20%29%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A%0A%0A%0A%0A%0A%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
tom911 > 11-12-2015 23:49:37 |
Разница с диспетчером задач на Windows 10 примерно в 50 МБ |
PEAKTOP > 12-12-2015 00:24:29 |
tom911, эта цифра не критична. плюс/минус 50 Мб мы потерпим. Может быть "Диспетчер задач" не правильно считает. |
bunda1 > 12-12-2015 00:31:58 |
Разные диспетчеры и менеджеры процессов потребление памяти тоже по разному показывают, у меня самое близкое значение с кодом [CB]Memory Monitor показывает AnVir Task Manager. |
PEAKTOP > 12-12-2015 00:35:17 |
bunda1, подскажи, пожалуйста, я разместил Memory Monitor в строке состояния, Выделить код Код:// Создать в панели дополнений.... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("status-bar"); urlbarIcons.insertBefore (memoryDisplay, null); а можно как-нибудь указать для него определенную позицию? Хочу, чтобы он отображался в определённом месте панели. Через ПКМ на любой панели -> "Изменить" его невозможно переместить. |
voqabuhe > 12-12-2015 00:37:26 |
А у меня с Process Hacker практически один в один показывает. |
difabor > 12-12-2015 20:00:44 |
PEAKTOP пишет
Мне кажется, что можно панельку поместить на саму кнопку (хоть и не уверен). |
bunda1 > 12-12-2015 21:10:02 |
PEAKTOP пишет
Вот перемещаемая кнопка [CB]Memory Monitor: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname/%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20memoryTab%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Amemory%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22about%3Amemory%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u043D%u0430%u0436%u0438%u043C%u0430%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20memoryTab.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%20e.type%2C%20c%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20try%20%7B%20e.originalTarget.getElementById%28%27measureButton%27%29.click%28%29%20%7D%20catch%28e%29%20%7B%7D%20%7D%2C%200%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20....%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%20....%0A%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29.get%28%22Home%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20dir.exists%28%29%20%29%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21dir.exists%28%29%20%29%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20showAlertNotification%28%27chrome%3A//global/skin/icons/information-16.png%27%2C%20%27%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%27%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u043A%u043D%u043E%u043F%u043A%u0435%20................................%0A%28function%20%28%29%20%7B%0A%20%20%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%2C%202000%20%29%3B%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%0A%0A%20%20%20//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%25button%25%20.toolbarbutton-icon%20%7B%5C%0A%20%20%20%20%20display%3A%20none%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20.toolbarbutton-text%20%7B%5C%0A%20%20%20%20%20display%3A%20-moz-box%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20%7B%5C%0A%20%20%20%20%20-moz-box-orient%3A%20horizontal%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%27.replace%28/%25button%25/g%2C%20%22%23%22%20+%20_id%29%20%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A//%20%u0421%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0A%28function%28%29%20%7B%20%20%20%0A%20%20%20%20var%20title%20%3D%20%22%u041B%3A%20%u041F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%5Cn%u0421%3A%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%5Cn%22%3B%0A%20%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%20%7D%3B%0A%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20self.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20%20self.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28%7B%7D%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
PEAKTOP > 14-12-2015 01:06:19 |
bunda1? перемещаемая кнопка не перемещается. После захода в режим "настройка интерфейса" индикатор Memory Monitor пропадает с панели, такое же поведение было и со старой кнопкой. P.S. После обновления кнопки FF перезапускал |
bunda1 > 14-12-2015 01:14:37 |
PEAKTOP пишет
Упс, ну тогда вот так: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E222MB%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20memoryTab%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Amemory%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22about%3Amemory%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u043D%u0430%u0436%u0438%u043C%u0430%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20memoryTab.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%20e.type%2C%20c%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20try%20%7B%20e.originalTarget.getElementById%28%27measureButton%27%29.click%28%29%20%7D%20catch%28e%29%20%7B%7D%20%7D%2C%200%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20....%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%20....%0A%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29.get%28%22Home%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20dir.exists%28%29%20%29%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21dir.exists%28%29%20%29%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20showAlertNotification%28%27chrome%3A//global/skin/icons/information-16.png%27%2C%20%27%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%27%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u043A%u043D%u043E%u043F%u043A%u0435%20................................%0A%28function%20%28%29%20%7B%0A%20%20%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%2C%202000%20%29%3B%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%0A%0A%20%20%20//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%25button%25%20.toolbarbutton-icon%20%7B%5C%0A%20%20%20%20%20display%3A%20none%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20.toolbarbutton-text%20%7B%5C%0A%20%20%20%20%20display%3A%20-moz-box%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20%7B%5C%0A%20%20%20%20%20-moz-box-orient%3A%20horizontal%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%27.replace%28/%25button%25/g%2C%20%22%23%22%20+%20_id%29%20%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A//%20%u0421%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0A%28function%28%29%20%7B%20%20%20%0A%20%20%20%20var%20title%20%3D%20%22%u041B%3A%20%u041F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%5Cn%u0421%3A%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%5Cn%22%3B%0A%20%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%20%7D%3B%0A%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20self.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20%20self.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28%7B%7D%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
PEAKTOP > 15-12-2015 11:14:38 |
bunda1, благодарю за кнопку. Ещё одна просьба: а как можно сделать пустое пространство, слева и справа от индикатора? P.S В не перемещаемой кнопке пустое пространство было. |
Alexay > 15-12-2015 11:37:31 |
tom911 пишет
на самом деле это очень веская разница! |
Infocatcher > 15-12-2015 12:59:22 |
Alexay пишет
На самом деле разницы нет, кнопка выводит working set в мегабайтах. |
bunda1 > 15-12-2015 20:57:51 |
PEAKTOP пишет
Поменяй: на и измени там 5.5 как тебе удобней. |
difabor > 16-12-2015 01:00:57 |
А как можно задавать цвет текста, фона, силу текста (bold/normal), стиль текста (italic, normal), подчёркивание? |
bunda1 > 16-12-2015 19:57:09 |
difabor пишет
Удали: |
difabor > 16-12-2015 20:27:10 |
bunda1 пишет
Спасибо. и добавил: |
bunda1 > 16-12-2015 22:27:50 |
difabor пишет
Извиняюсь, в спешке не то скопировал. difabor пишет
Это ты зря, можно было просто сменить иконку у кнопки. |
difabor > 16-12-2015 23:28:05 |
bunda1 пишет
Спасибо. |
PEAKTOP > 17-12-2015 02:01:50 |
bunda1, подскажи, пожалуйста, если я в раздел удаления кэша и кукисов добавлю вот этот код, действие "Минимизировать использование памяти" выполнится? Выделить код Код:if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); // Минимизировать использование памяти Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager) .minimizeMemoryUsage(null); // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() } Оставшуюся часть кода — удаление кукисов, для экономии места не стал вставлять. Пробовал повесить "Минимизировать использование памяти" на СКМ и после выполнения выводить сообщение, уж не знаю выполняет очистка памяти или нет, но сообщение не выводит: Выделить код Код:if ( e.button == 1 ) { Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager) .minimizeMemoryUsage(null); Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification('chrome://global/skin/icons/information-16.png', 'Минимизировать использование памяти', 'Минимизирование использование памяти - выполнено', false, "", null, ""); } Ещё попутно вопрос — можно при очистке памяти выполнять не одно, а три действия — кнопки CG, CC, Minimize Memory Usage? |
voqabuhe > 17-12-2015 03:17:40 |
bunda1 > 17-12-2015 20:30:21 |
difabor пишет
Инструменты для создателей Custom Buttons | Форум Mozilla Россия 17-12-2015 20:39:05 |
difabor > 17-12-2015 20:43:42 |
bunda1 пишет
Спасибо!!! |
Garider > 31-01-2016 15:28:30 |
В FF44.0 у меня поломалось что-то.Так показывает, т.е нет инфы с правой стороны: скрытый текст CB версии 0.0.5.9pre1, ставил отсюда: Custom Buttons • View topic - Custom Buttons broken on all Firefox versions higher than 43 Кнопку использую эту: №161 |
difabor > 04-02-2016 07:35:10 |
Уважаемый bunda1, Выделить код Код:if (e.target.id == "<ИД кнопки>" && <что-то> == "image") alert("image"); if (e.target.id == "<ИД кнопки>" && <что-то> == "label") alert("label"); Что надо подставить вместо <что-то>? |
bunda1 > 04-02-2016 11:48:41 |
difabor пишет
Я проверил - обработчики не видят иконку или label, тут наверно нужно отдельно создать label - document.createElement("label") и поставить у кнопки. Не нужны такие сложности. |
difabor > 04-02-2016 12:51:46 |
bunda1 пишет
Да нет, мне - чтобы понять... |
bunda1 > 04-02-2016 20:24:19 |
Garider пишет
Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0430%u043C%u044F%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADHklEQVQ4jYWTXUxTBxiG32hn62h1GLASoWoY+JNaZBtLmIMjyyKixLgEspEFkJZNHDHOAdmBU6RkUZzZsmK1+EOyOspAQ92QpjhbEEaUSmLXru4s4WLdxSgmrhCdEGSL7640ahb23L3J99w9H/AsiwBoHo9dOcu+fydvuQuAGoAKQBwWQvMiCps/TPo9WbvYBEDnatHOXTu7nnm5b1w/3NQUliRpHEDO895qnVYhAtiSrV9yfP7mBnY0Jz9am6z1W1v2/3Pj+jDn5h7yMXa7PaZUKnc9sVNWKmvv/5hBW03Cg7ffXHe343Q9f/BcYiTyG/+amefM7BxjsRgnJyc5MTHBWCxGq9X6QKlUFgAA9giaDu/pjfzmjJnBn3/h1PQsp6bvMRqdZCQS4fj4OGVZZjgcZjAYZCAQoCzLrK+vn1IoFNmo3K0ZFvfn0uH8jtFolLIsMxQKMRAIcGxsjKOjoxwZGeHQ0BB9Ph99Ph8HBgbo8XgoCEIIB4rUv3aek9jy+Rd0Op30+/0cHByk1+tlf38/3W43+/r66Ha76XL1sK2tjQ1SIz+pqWP+9u1/wlyx4u6pryT2X/GyurqaXV1d7O3tZU9PD10uF7u7u2m32ylJZlZVVbGy8gOWFO+guaGGpWVlf0DYovK+/kraja8d52mz2Wg0Gtne3s7W1laKokiTyUSj0cjSchMls4W1dSI9J1LZeXQjl7208ksAUAJQZ2VlDTscDoqiyMLCQpaX72Vp+T42NR+hubGR5ywZPLRXP5+UpGsr2Kq5PDW4mZkblhx9uoc1giCELRYLKyqMtDSZeeTQqywrKXik12++9e1nKXd+6kyfB/AyACF6xcCPihN8z0eVmpaWdnNb3luzBoM+PHBq7f1rZ1L/BrAzP1ttDXVtIoAMQ7qq4c5VA3XaFz7+z6IBpANQ5b0W1/7Qn8nlmkW1+4oSnOeb18wASDj4buKtk5/q7gFIWvA3SnbEO29f2EQA+ccPro4ceC9xCEDcqkTFMZUC2xaUAShsdSm3Lx5bNw1gVW5mnEcbv7jk/6SnWfp+fnwwJ1NtX+joXwJBlDIWFgabAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28function%20%28%29%20%7B%0A%20%20%20if%20%28%20document.getElementById%28%27memoryDisplay%27%29%20%29%20return%3B%0A%20%20%20%20%0A%20%20%20//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20....%0A%20%20%20var%20memoryDisplay%20%3D%20document.createElement%28%22statusbarpanel%22%29%3B%0A%20%20%20var%20urlbarIcons%20%3D%20document.getElementById%28%22urlbar-icons%22%29%3B%0A%20%20%20urlbarIcons.insertBefore%28%20memoryDisplay%2C%20urlbarIcons.lastChild%20%29%3B%20//%20%u043F%u0435%u0440%u0435%u0434%20%u043F%u0435%u0440%u0432%u043E%u0439%20%u0438%u043A%u043E%u043D%u043A%u043E%u0439%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20memoryDisplay.id%20%3D%20%22memoryDisplay%22%3B%0A%20%20%20memoryDisplay.label%20%3D%20getMemory%28%29%20+%20%27%20MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20mv%20%3D%20getMemory%28%29%3B%0A%20%20%20%20%20%20memoryDisplay.label%20%3D%20mv%20+%20%27%20MB%27%3B%0A%20%20%20%7D%2C%202000%20%29%3B%20%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%0A%20%20%0A%20%20%0A//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430%20....%0A%20%20%20var%20title%20%3D%20%22%u041B%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%u0421%3A%20%u041C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%5Cn%5Cn%22%3B%0A%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%7D%3B%20%20%20%0A%20%20%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%7D%0A%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20memoryDisplay.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%7D%0A%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%20%20%20%0A%20%20%20var%20context%20%3D%20Cu.import%28%22resource%3A//gre/modules/LoadContextInfo.jsm%22%2C%20%7B%7D%29.LoadContextInfo.default%3B%0A%20%20%20memoryDisplay.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28context%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0437%u0430%u043D%u0438%u043C%u0430%u0435%u043C%u0443%u044E%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u0443%u044E%20%u043F%u0430%u043C%u044F%u0442%u044C%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%20%20%20%20%20%0A%20%20%20%0A%20%0A%20//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20Memory%20Monitor%20.....%0A%20%20%20memoryDisplay.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20//%20%u043F%u043E%20%u041B%u041A%u041C%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u044B%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%27Home%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.exists%28%29%20%26%26%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%21dir.exists%28%29%20%26%26%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20//%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20%20showAlertNotification%28self.image%2C%20self.label%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash-%u043A%u0443%u043A%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u043E%20%u0421%u041A%u041C%20%u043C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20memoryDisplay.style.color%20%3D%20%22red%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20self.interval%20%29%20%7B%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20clearInterval%28%20self.interval%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20delete%20self.interval%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20self.interval%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.minimizeMemoryUsage%28null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%2040000%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%20%20%0A%20%20%20//%20Css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%20%20%20%23memoryDisplay%20%7B%20-moz-appearance%3A%20none%20%21important%3B%20margin-left%3A%20-4px%20%21important%3B%20margin-right%3A%20-4px%20%21important%3B%20border%3A%200%20%21important%3B%20padding%3A%200%20%21important%3B%20text-align%3A%20right%3B%20%7D%5C%0A%20%20%20%20%20%20%23memoryDisplay%5BresetMemory%5D%20%7B%20color%3A%20red%20%21important%3B%20%7D%5C%0A%20%20%20%27%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20urlbarIcons.removeChild%28%20memoryDisplay%20%29%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A%0A%0A%0A%0A%0A%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
Garider > 07-02-2016 15:13:41 |
bunda1 |
Saenko > 12-02-2016 17:50:11 |
bunda1, можно ли исправить отображение размера кэш в таком варианте? скрытый текст // Показывать потребление памяти в адресной строке, от 04.09.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { var mv = getMemory(); memoryDisplay.label = mv + ' MB'; memoryDisplay.style.background = (mv > 800) ? 'Red' : ''; }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var title = "Л: Подробно показать потребление памяти \nС: Очистить кэш и удалить Flash-куки\n\n"; var data = { memory: "Memory Cache: ", disk: "Disk Cache: ", offline: "Offline Cache: " }; function getSize(size) { if (!size) return size === 0 ? "0" : "?"; for(var count = -1; size >= 1024; size /= 1024, count++); return size.toFixed(2).replace(/0+$/, "").replace(/\.$/, "") + " " + ("KMGT"[count] || "") + "B"; } function setInf(tot, max, type, i) { var inf = getSize(tot) + " / " + getSize(max); var key = "browser.cache." + type + ".enable"; if (!Services.prefs.getBoolPref(key)) inf += " (disabled)"; memoryDisplay.tooltipText = memoryDisplay.tooltipText.replace(zws(i), inf); } function zws(ind) "\u200B\u200B\u200B".slice(0, ++ind); var types = Object.keys(data); memoryDisplay.onmouseenter = function() { setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); // по СКМ очистить кэш и удалить Flash кукисы // удалить Flash кукисы .... // всплывающее сообщение .... }; // Удалять счётчик памяти и другие изменения .... Спасибо... |
bunda1 > 12-02-2016 21:41:21 |
Saenko пишет
Выделить код Код:// Показывать потребление памяти в адресной строке, от 04.09.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { var mv = getMemory(); memoryDisplay.label = mv + ' MB'; memoryDisplay.style.background = (mv > 800) ? 'Red' : ''; }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var title = "Л: Очистить кэш и удалить Flash-куки\nС: Минимизировать использование памяти\n\n"; var data = { memory: "Memory Cache: ", disk: "Disk Cache: ", offline: "Offline Cache: " }; function getSize(size) { if (!size) return size === 0 ? "0" : "?"; for(var count = -1; size >= 1024; size /= 1024, count++); return size.toFixed(2).replace(/0+$/, "").replace(/\.$/, "") + " " + ("KMGT"[count] || "") + "B"; } function setInf(tot, max, type, i) { var inf = getSize(tot) + " / " + getSize(max); var key = "browser.cache." + type + ".enable"; if (!Services.prefs.getBoolPref(key)) inf += " (disabled)"; memoryDisplay.tooltipText = memoryDisplay.tooltipText.replace(zws(i), inf); } function zws(ind) "\u200B\u200B\u200B".slice(0, ++ind); var types = Object.keys(data); var ttt = title + types.map(function(key, i) data[key] + zws(i)).join("\n"); var context = Cu.import("resource://gre/modules/LoadContextInfo.jsm", {}).LoadContextInfo.default; memoryDisplay.onmouseenter = function() { memoryDisplay.tooltipText = ttt; try { var entries = {}; Services.cache.visitEntries({ visitDevice: function(device, info) entries[device] = info, visitEntry: function() {} }); types.forEach(function(type, i) { var info = entries[type]; setInf(info && info.totalSize, info && info.maximumSize, type, i) }); } catch(ex) { Services.cache2 && types.forEach(function(type, i) { var func = function(aEntryCount, aConsumption, aCapacity, aDiskDirectory) setInf(aConsumption, aCapacity, type, i); var storage = Services.cache2[(type == "offline" ? "app" : type) + "CacheStorage"](context, null); try { storage.asyncVisitStorage({onCacheStorageInfo: func}, false) } catch(ex) {}; }); } }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button == 0 ) { var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); } // по СКМ очистить кэш и удалить Flash кукисы if ( e.button == 1 ) { // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() }; // удалить Flash кукисы .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification("chrome://global/skin/icons/question-16.png", self.label, 'Очистил кеш и удалил Flash-куки', false, "", null, ""); } }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: -3px !important; margin-right: -5px !important; border: 0 !important; padding: 0 !important; text-align: right; }\ #memoryDisplay[resetMemory] { color: red !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); |
Saenko > 13-02-2016 00:28:36 |
bunda1, премного благодарен..! Чуток переписал обозначения действий для Л: и С: ... Всё как и хотелось... |
DmFedorov > 20-05-2016 15:43:48 |
bunda1 В принципе размер потребляемой памяти показывают многие проги. Хотелось бы другого: Не общего на всю прогу потребления ресурсов, а по вкладкам. Если получится такое сотворить возможны два варианта: Ну и к тому же знание сила: такая информация могла бы сподвигнуть некоторых разработчиков на конкретные шаги. А так ведь не знают просто. Надеюсь что вас простимулирует не только решение не тривиальной задачки, но и сам факт что эта фича будет всегда востребована как для отладки самой проги так и просто для ее разумного использования. Если в лоб задачу решить невозможно, можно еще попробовать простую логическую вещь: При открытии вкладки всегда после загрузки сверять потребление памяти до и после, хранить эту информацию и выдавать по требованию. Такой подход тоже мог бы решить проблему. Ну а нюансы (которые безусловно появятся) типа одновременной загрузки нескольких вкладок разрулить потом. |
oleg.sgh > 20-05-2016 16:01:59 |
DmFedorov
|
bunda1 > 21-05-2016 17:45:18 |
DmFedorov пишет
Как тут написал oleg.sgh уже есть такое расширение. |
_zt > 20-06-2016 03:30:24 |
bunda1 Упс. Извиняюсь, не о том расширении писал. Был под впечатлением беспонтовости и неоптимизированности вот этого шедевра - Tab Data (+Memory usage) Однако, все же неплохо было бы увидеть кнопку с функционалом описанным выше.
|
sthprog > 03-02-2017 14:46:39 |
Кнопка пропала с панели адреса, куда копнуть, чтобы найти причину? |
bunda1 > 03-02-2017 16:58:45 |
sthprog пишет
|
mahtanoronra > 04-03-2017 04:41:47 |
bunda1 пишет
а тут можно тоже сделать фикс отоброжения кеша и т д ? |
bunda1 > 04-03-2017 22:36:08 |
mahtanoronra пишет
Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E222MB%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20memoryTab%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Amemory%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22about%3Amemory%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u043D%u0430%u0436%u0438%u043C%u0430%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20memoryTab.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%20e.type%2C%20c%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20try%20%7B%20e.originalTarget.getElementById%28%27measureButton%27%29.click%28%29%20%7D%20catch%28e%29%20%7B%7D%20%7D%2C%200%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20....%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%20....%0A%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29.get%28%22Home%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20dir.exists%28%29%20%29%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21dir.exists%28%29%20%29%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20var%20alertService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%20%20%20%20%20%20%20%20%20%20alertService.showAlertNotification%28%27chrome%3A//global/skin/icons/information-16.png%27%2C%20%27%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%27%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20alertService.closeAlert%28%29%20%7D%2C%202500%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u043A%u043D%u043E%u043F%u043A%u0435%20................................%0A%28function%20%28%29%20%7B%0A%20%20%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%2C%202000%20%29%3B%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%0A%0A%20%20%20//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%25button%25%20.toolbarbutton-icon%20%7B%5C%0A%20%20%20%20%20display%3A%20none%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20.toolbarbutton-text%20%7B%5C%0A%20%20%20%20%20display%3A%20-moz-box%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20%7B%5C%0A%20%20%20%20%20-moz-box-orient%3A%20horizontal%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%27.replace%28/%25button%25/g%2C%20%22%23%22%20+%20_id%29%20%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430%20..............%0Avar%20data%20%3D%20%7B%0A%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%7D%3B%20%20%20%0Afunction%20getSize%28size%29%20%7B%0A%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%7D%0Afunction%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20self.tooltipText%20%3D%20self.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%7D%0Afunction%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0Avar%20types%20%3D%20Object.keys%28data%29%3B%0Avar%20ttt%20%3D%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%20%20%20%0Avar%20context%20%3D%20Cu.import%28%22resource%3A//gre/modules/LoadContextInfo.jsm%22%2C%20%7B%7D%29.LoadContextInfo.default%3B%0Aself.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20self.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%22%20+%20ttt%3B%0A%20%20%20try%20%7B%0A%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%20%0A%20%20%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28context%2C%20null%29%3B%0A%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
mahtanoronra > 04-03-2017 22:38:10 |
bunda1 |
Viatcheslav > 10-12-2017 23:30:34 |
Есть код кнопки из сообщения broker - https://forum.mozilla-russia.org/viewtopic.php?pid=749907#p749907
bunda1, можно ли исправить такие моменты: 1. Расход памяти отображается неверно - большое расхождение по сравнению с Диспетчером задач. Возможно, как-то влияет многопроцессность В коде предусмотрен сброс памяти по достижении 600 MB - фиг с ним, если работать не будет. Главное - чтобы правильно показывал. Спасибо |
broker > 11-12-2017 23:57:22 |
Viatcheslav
У вас установлено две кнопки аналогичные, посему двоит. Одну удалить. |
Viatcheslav > 12-12-2017 06:29:35 |
broker пишет
Нет, кнопка одна. Но если её перенести в расширенное меню - индикатор "раздваивается" (хотел, чтобы кнопки не было видно). Когда кнопка на панели инструментов - нормально, но показания... |
broker > 12-12-2017 17:39:17 |
suz191 > 24-02-2018 16:39:30 |
Добрый день может ли кто-нибудь помочь внедрить в код условие...
Спасибо! |
bunda1 > 24-02-2018 18:49:07 |
suz191 пишет
Выделить код Код:// Показывать потребление памяти в адресной строке, от 04.03.2017. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons") || document.getElementById("page-action-buttons"); // FF57 urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { var memory = getMemory(); memoryDisplay.label = memory + ' MB' if ( memory < 400 ) return; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath('Z:\\BROWSER\\GiperFox\\!Lib\\!Clear-RAM.LNK'); file.launch(); }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var data = { memory: "Memory Cache: ", disk: "Disk Cache: ", offline: "Offline Cache: " }; function getSize(size) { if (!size) return size === 0 ? "0" : "?"; for(var count = -1; size >= 1024; size /= 1024, count++); return size.toFixed(2).replace(/0+$/, "").replace(/\.$/, "") + " " + ("KMGT"[count] || "") + "B"; } function setInf(tot, max, type, i) { var inf = getSize(tot) + " / " + getSize(max); var key = "browser.cache." + type + ".enable"; if (!Services.prefs.getBoolPref(key)) inf += " (disabled)"; memoryDisplay.tooltipText = memoryDisplay.tooltipText.replace(zws(i), inf); } function zws(ind) "\u200B\u200B\u200B".slice(0, ++ind); var types = Object.keys(data); var ttt = types.map(function(key, i) data[key] + zws(i)).join("\n"); var context = Cu.import("resource://gre/modules/LoadContextInfo.jsm", {}).LoadContextInfo.default; memoryDisplay.onmouseenter = function() { memoryDisplay.tooltipText = "Л: Показать потребление памяти в вкладке\n" + ttt; try { var entries = {}; Services.cache.visitEntries({ visitDevice: function(device, info) entries[device] = info, visitEntry: function() {} }); types.forEach(function(type, i) { var info = entries[type]; setInf(info && info.totalSize, info && info.maximumSize, type, i) }); } catch(ex) { Services.cache2 && types.forEach(function(type, i) { var func = function(aEntryCount, aConsumption, aCapacity, aDiskDirectory) setInf(aConsumption, aCapacity, type, i); var storage = Services.cache2[(type == "offline" ? "app" : type) + "CacheStorage"](context, null); try { storage.asyncVisitStorage({onCacheStorageInfo: func}, false) } catch(ex) {}; }); } }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button ) return; var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: 2px !important; margin-right: -4px !important; border: 0 !important; min-width: 5.5em; text-align: right; }\ #memoryDisplay[resetMemory] { color: red !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); 24-02-2018 18:53:03 |
suz191 > 24-02-2018 19:36:34 |
bunda1 |
difabor > 24-02-2018 21:04:52 |
suz191, a что это за файл: !Clear-RAM.LNK ? |
suz191 > 24-02-2018 21:22:57 |
difabor пишет
Как то-так |
difabor > 24-02-2018 22:04:46 |
Спасибо, suz191. |
suz191 > 24-02-2018 22:27:21 |
difabor пишет
hidcon.exe - это для невидимого на экране запуска... можно и без него! просто тогда будет видно как выполняется батник... |
drage2 > 27-02-2018 12:00:36 |
Любите господа огороды городить ....И memreduct и Mz Ultimate Tools работают без огородов и в мультирежиме тоже... |
suz191 > 27-02-2018 15:00:42 |
drage2 пишет
В мульти режиме неправильно работает сам счетчик памяти [CB]Memory Monitor в firefox58! |
drage2 > 27-02-2018 17:28:50 |
Да, уже...Прога очистки запускается при 400МГ и сама выключается при 100Мг . Еще надо и при выходе из браузера. |
suz191 > 27-02-2018 19:16:58 |
drage2 пишет
Что вы пытаетесь сделать? Зачем она у вас включается и два раза выключается? |
bunda1 > 27-02-2018 21:21:07 |
drage2 пишет
Найди расширение Memory Fox Next и вытащи из него afom.exe она чистит только Firefox раз в минуту и отключается при выходе из браузера. |
suz191 > 27-02-2018 22:05:09 |
bunda1 пишет
Большое спасибо очень полезно, по-моему даже меньше чем в минуту, да и закрывается сам... |
difabor > 28-02-2018 05:40:18 |
bunda1 пишет
И как этот afom.exe "пришить" к браузеру? |
okkamas_knife > 28-02-2018 05:52:42 |
например №85 |
Viatcheslav > 28-02-2018 06:24:58 |
difabor пишет
Вот код кнопки, которой пользуюсь я скрытый текст Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EMemory%20Monitor%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHzSURBVEiJxdexattAGAfw/51IguUaAsmYzW7IG0gW3hIL71G21mNcQtc+hec2eC3t1OYFbGcT+PQGIcib52AQlgnIdx1aiQbL1t1FJn+45UD3474T93HAG4XofMRc1wMhXykguBCf7eHw985h1m5/JIYxaFhWBQDCIFiK1eraHo1+7AxmrntDKe2ftlrmQbUKAHheLPDo+zHn/Is9HH4rHc5D0+jgUvA2VBcvhGVQHXwrvA2lJycAAD6baeFUBwWAfc/DvuetzR9UqzhttUxKaZ+57o0SrFLevMjga/BrUVn8BVwWKoNncNloEU4BIGi3ryil/YbjlIr+jzccJ8W9DBaEDOqWZVZqtdLRNJVaDXXLMgEMMpgAIESrUSmHACKDIUQvZCxeRtHOwGUUYRoEsQA+ZbA1Gv3iSdINfT+O53OphfhstnZrbUo8nyP0/ZgnSTft3S/qyy4uLiml3+vNpmkeHqpsaCs6nUxiznnXHo/v0vm1g5XFjbMzAMDq4UEZBXJuLns8vuOcd6eTycayk+Nj7HU62Ot0QI6OlNFcWAYXUQTx9PR35PyQRShQ1BY1zlwGLYRVcVlUCpbFVVBpuAhXRZXgTbgOqgwDADs//0AM4/a947wTQiBkbMGTpNe8v/+pso7+E+ZflwHQ03nCvFn+AJlBeDpFZQf5AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20memoryDisplay%20%3D%20document.createElement%28%22statusbarpanel%22%29%3B%0A%20%20%20var%20urlbarIcons%20%3D%20document.getElementById%28%22page-action-buttons%22%29%3B%0A%20%20%20urlbarIcons.insertBefore%28%20memoryDisplay%2C%20urlbarIcons.lastChild%20%29%3B%20//%20%u043F%u0435%u0440%u0435%u0434%20%u043F%u0435%u0440%u0432%u043E%u0439%20%u0438%u043A%u043E%u043D%u043A%u043E%u0439%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20memoryDisplay.id%20%3D%20%22memoryDisplay%22%3B%0A%20%20%20memoryDisplay.label%20%3D%20getMemory%28%29%20+%20%27%20MB%27%3B%0A%20%20%20memoryDisplay.style.cssText%20%3D%20%22-moz-appearance%3A%20none%3B%20border%3A%200%3B%20padding%3A%200%3B%20margin-right%3A-6px%3B%20margin-left%3A%20-1px%3B%22%3B%20//%20Css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%0A%20%20%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20var%20memory%20%3D%20getMemory%28%29%3B%0A%20%20%20%20%20%20memoryDisplay.label%20%3D%20memory%20+%20%27%20MB%27%3B%0A%20%20%20%20%20%20if%20%28%20memory%20%3E%20300%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20file%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20file.initWithPath%28file.path%20+%20%22%5C%5CSoft%5C%5Cafom.exe%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20file.launch%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%2C%202000%20%29%3B%20%0A%20%20%20%20%20%0A%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430......................................%0A%20%20%20var%20k%20%3D%20100%2C%20mb%20%3D%201024%20*%201024%2C%20str%20%3D%20%22%22%2C%0A%20%20%20cs%20%3D%20Cc%5B%22@mozilla.org/network/cache-service%3B1%22%5D.getService%28Ci.nsICacheService%29%2C%0A%20%20%20visitor%20%3D%20%7B%20visitDevice%3A%20addInfo%20%7D%3B%0A%0A%20%20%20function%20addInfo%28device%2C%20info%29%20%7B%0A%20%20%20%20%20%20str%20+%3D%20%28str%20%3F%20%22%5Cn%22%20%3A%20%22%22%29%20+%20device%5B0%5D.toUpperCase%28%29%20+%20device.slice%281%29%20+%20%22%20Cache%3A%20%20%22%20+%0A%20%20%20%20%20%20%5Binfo.totalSize%2C%20info.maximumSize%5D.map%28function%28num%29%20Math.round%28k%20*%20num%20/%20mb%29%20/%20k%20+%20%22%20MB%22%29.join%28%22%20/%20%22%29%3B%0A%20%20%20%7D%3B%0A%0A%20%20%20memoryDisplay.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20str%20%3D%20%22%22%3B%0A%20%20%20%20%20cs.visitEntries%28visitor%29%3B%0A%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20%22%u041B%3A%20%u041F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%22%20%20+%20%22%5Cn%5Cn%22%20+%20str%3B%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20/////////////%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0437%u0430%u043D%u0438%u043C%u0430%u0435%u043C%u0443%u044E%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u0443%u044E%20%u043F%u0430%u043C%u044F%u0442%u044C%20%u0432%20MB%20.............................................////////////%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%3B%20%7D%20//%20FF26%20-%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%20%20%20%20%20%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%20%u043A%u043B%u0438%u043A%u0443%20%u043F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%2C%20%u0430%u0432%u0442%u043E%u0440%20%u043A%u043E%u0434%u0430%20%27Dumby%27%20.........................%0A%20%20%20memoryDisplay.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20if%20%28%20e.button%20%29%20return%3B%0A%20%20%20%20%20%20%20var%20memoryTab%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Amemory%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22about%3Amemory%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u043D%u0430%u0436%u0438%u043C%u0430%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20memoryTab.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%20e.type%2C%20c%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20try%20%7B%20e.originalTarget.getElementById%28%27measureButton%27%29.click%28%29%20%7D%20catch%28e%29%20%7B%7D%20%7D%2C%200%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%7D%29%3B%20%20%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20............................................................%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20urlbarIcons.removeChild%28%20memoryDisplay%20%29%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Порог сброса (if ( memory > 300 )) настраивал под себя с учётом неправильного отображения расхода памяти (увы, последствия включенной мультипроцессности ). Ссылка на загрузку файла Afom.exe - https://disk.karelia.pro/dvxnkR3/ А разместить его (Afom.exe) нужно в папке C:\Users\User_Name\AppData\Roaming\Mozilla\Firefox\Profiles\Profile_Name\Soft |
Mishania > 28-02-2018 07:37:55 |
Viatcheslav Кнопка перестала работать. |
suz191 > 28-02-2018 10:48:33 |
Mishania пишет
С этим кодом все работает, работает и на 58 и на esr и на басилиск даже, но 58 соответственно немного не правильно показывает
400 - на нужную вам цифру памяти при которой запустится. Если [CB]Memory Monitor - в кнопке не один, то он должен стаять выше других кодов первым, тогда будет отображаться! |
drage2 > 28-02-2018 14:03:29 |
afom.exe - вредная штука....Bunda1 уже сделал кнопку , при выходе из браузера гасится любая прога! Правда, нужен запуск браузера с WMIService... скрытый текст Выделить код Код:/*Initialization Code*/ var urlbarIcons = document.getElementById("urlbar-icons") || document.getElementById("page-action-buttons"); if (!urlbarIcons) return; var memoryDisplay = document.createElement("statusbarpanel"); urlbarIcons.insertBefore(memoryDisplay, urlbarIcons.lastChild); // перед последней кнопкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory(); memoryDisplay.style.cssText = "-moz-appearance: none; margin-left: 1px; margin-right: 1px; padding: 2px; background-image: -moz-linear-gradient(#FF0, #0000E8, #FF0); border: 0 !important; color: #fff"; // self.timer = setInterval(function() { var memory = getMemory(); memoryDisplay.label = memory; if ( memory > 370 ) { var file= Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath('C:\\memreduct\\32\\memreduct.exe'); file.launch(); } }, 2000 ); // Всплывающая подсказка у счётчика отображает заполнение дискового кеша...................................... var k = 100, mb = 1024 * 1024, str = "", cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService), visitor = { visitDevice: addInfo }; function addInfo(device, info) { str += (str ? "\n" : "") + device[0].toUpperCase() + device.slice(1) + " Cache: " + [info.totalSize, info.maximumSize].map(function(num) Math.round(k * num / mb) / k + " MB").join(" / "); }; memoryDisplay.onmouseenter = function() { str = ""; cs.visitEntries(visitor); memoryDisplay.tooltipText = "Л: Подробно показать потребление памяти в вкладке" + "\n\n" + str; }; ///////////// Получить всю занимаемую оперативную память в MB .............................................//////////// function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке, автор кода 'Dumby' ......................... memoryDisplay.onclick = function(e) { if ( e.button ) return; var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); }; // Удалять счётчик памяти и другие изменения ............................................................ addDestructor(function() { urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); // Пример, код закрывает memreduct.exe при выходе из браузера: var closer = { observe: function(subject, topic, data) { if ( data == "shutdown" ){ var VBScript = 'strComputer = "."\ \nSet objWMIService = GetObject("winmgmts:" _\ \n& "{impersonationLevel=impersonate}!\\\\" & strComputer & "\\root\\cimv2")\ \nSet colProcessList = objWMIService.ExecQuery _\ \n("Select * from Win32_Process Where Name = \x27memreduct.exe\x27")\ \nFor Each objProcess in colProcessList\ \nobjProcess.Terminate()\ \nNext'; var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("processTerminate.vbs"); custombuttonsUtils.writeFile(file.path, VBScript); file.launch(); } } }; Services.obs.addObserver(closer, "quit-application", false); |
difabor > 28-02-2018 14:29:17 |
okkamas_knife, Viatcheslav, спасибо! |
Mishania > 28-02-2018 14:31:14 |
drage2 |
bunda1 > 28-02-2018 14:46:20 |
drage2 пишет
Почему вредная? |
drage2 > 28-02-2018 16:51:36 |
Mishania Mishania пишет
В "костылях" путь прописан под любой exe/ и под afom.exe тоже....А, если руки не под то заточены, то и "костыли" не помогут. bunda1 пишет
Точно не помню , почему,то точно помню , что вредная. |
bunda1 > 28-02-2018 17:46:39 |
drage2 пишет
Не знаю. |
drage2 > 28-02-2018 17:49:57 |
bunda1 Выделить код Код:private void Form1_FormClosed(object sender, FormClosedEventArgs e) { notifyIcon1.Visible = false; notifyIcon1.Dispose(); } Ну, если и вы не знаете, то и париться не стоит... |
suz191 > 28-02-2018 18:38:44 |
Mishania пишет
запустите просто .exe он висит как процесс и ни где не отображается.... скрытый текст Если о костылях говорить то afom ещё и так можно запускать... скрытый текст @echo off taskkill /im afom.exe /F exit Так даже правильней по запуску мгновенно чистит... |
Mishania > 28-02-2018 18:45:11 |
drage2
Простите, но читаю что вы написали, а смысл понять не могу. А про "помню что вредная, но не помню почему" даже улыбнуло. Из разряда, "ложечки мы нашли, но осадок неприятный остался" Выделить код Код:/*CODE*/ var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath("V:\\mozilla\\afom.exe"); file.launch(); Но батник тоже вариант. |
suz191 > 28-02-2018 19:08:55 |
Mishania пишет
тогда memreduct и ctrl+f1 |
bunda1 > 28-02-2018 22:03:34 |
drage2 пишет
Совсем не знаю что за код. Не надо думать что я тут какой то супер эксперт. |
drage2 > 01-03-2018 00:24:21 |
bunda1 Выделить код Код:// Пример, код закрывает memreduct.exe при выходе из браузера: var closer = { observe: function(subject, topic, data) { if ( data == "shutdown" ){ var VBScript = 'strComputer = "."\ \nSet objWMIService = GetObject("winmgmts:" _\ \n& "{impersonationLevel=impersonate}!\\\\" & strComputer & "\\root\\cimv2")\ \nSet colProcessList = objWMIService.ExecQuery _\ \n("Select * from Win32_Process Where Name = \x27memreduct.exe\x27")\ \nFor Each objProcess in colProcessList\ \nobjProcess.Terminate()\ \nNext'; var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("processTerminate.vbs"); custombuttonsUtils.writeFile(file.path, VBScript); file.launch(); } } }; Services.obs.addObserver(closer, "quit-application", false); |
suz191 > 01-03-2018 01:42:33 |
Она у вас по коду только открывается и закрывается... |
drage2 > 03-03-2018 15:19:46 |
Mem Reduct может запускаться и сразу чистить. С помощью NirCmd Нужны два батника - в один + VBS еще один бат: И Vbs уже к нему.Этот VBS ярлыком (значок ,как у проги и название) Но при выходе из браузера Nircom не может ее выключить, только убить процесс, нужна прога trayupdate.exe, тогда и эта проблема решается. 03-03-2018 15:27:59 |
suz191 > 13-03-2018 21:38:22 |
в ff59 совсем перестал отображаться [CB]Memory Monitor скрытый текст
Вроде работает: скрытый текст
Спасибо! |
shurik842 > 15-04-2018 11:56:47 |
Всем привет! Мои пять копеек к данной теме. У меня afom не работает. Вылетает при запуске, поэтому использую memreduct. Написал себе вот такую кнопку, которая запускает memreduct, прожимает ctrl+F1 (очистка памяти) и убивает memreduct. Выделить код Код:// путь до папки с firefox.exe var profileDir = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("CurProcD", Components.interfaces.nsILocalFile) .path; // путь до исполняемого файла var xul = profileDir + "\\..\\..\\Profile\\User_files\\memreduct\\RunMemreduct.exe"; // выполение исполняемого файла и его агрумент, например ["c:\\boot.ini"] startProcess(xul,[""]); // Сообщение об ошибке function startProcess(path, args) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); if(file.exists()) { var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.run(false, args, args.length); } else custombuttons. alertBox ("Файл не найден", path); }; Стартер написан с помощью бесплатной проги Perfect Automation. У меня на портативном firefox 56 всё работает отлично. Единственное, иногда срабатывает не с первого раза, а со второго. Плюс в трее висит "призрачный" memredict. Но стоит провести курсором по иконке в трее, и он очищается. Кстати, если кто-то хочет поправить код, то я буду только за, поскольку разбираюсь во всем этом очень слабо. Просто взял какую-то кнопку и подставил свои значения. |
xrun1 > 17-04-2018 01:05:19 |
shurik842 скрытый текст Можно не проводить мышкой, чтобы убрать из трея "призрака". В архиве программка, сделал для себя на AutoIt3, исходный код также положил в архив. https://yadi.sk/d/4rBDx8R83UUJu8 |
drage2 > 17-04-2018 18:22:34 |
Чтобы не париться Memory с полным фаршем: |
suz191 > 10-05-2018 19:29:15 |
в firefox 60+ перестало работать и кнопка и строка состояния |
Coroner > 11-05-2018 09:27:20 |
suz191 пишет
А дополнение Custom Buttons включено и работает? |
suz191 > 11-05-2018 12:15:26 |
Coroner пишет
Да, заставил работать этим методом https://forum.mozilla-russia.org/viewto … 99#p752799 Но, Memory Monitor отвалился поскольку переделали интерфейс и доступа к памяти больше нет... |
Coroner > 11-05-2018 13:59:40 |
suz191 пишет
Есть. Мне удалось запустить кастрированный вариант кнопки. Попробую повторить опыт, так как похерил то что сделал. Вышло очень странно: сделал клон кнопки (которая как бы не работала и находилась на панели, вместо строки урла). Повторил опыт. Вот код, который "работает" в 60. скрытый текст Выделить код Код:/*Initialization Code*/ var idbut=this.id; var urlbar = document.getElementById("page-action-buttons"); var button = document.getElementById(idbut); urlbar.insertBefore(button, urlbar.lastChild); var style = custombutton.buttonGetHelp(self).replace(/id/g, _id); var uri = makeURI('data:text/css,'+ encodeURIComponent(style)); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, 0); (function () { self.timer = setInterval(function() { self.label = getMemory() + ' mb'}, 2000 ); // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly return ( Math.round( memory/1048576 ) ); }; // Удалять счётчик памяти и другие изменения .... addDestructor(function() { try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); |
drage2 > 11-05-2018 14:10:33 |
Отвалились и кнопки видео и кнопки , работающие из контекст меню. Кнопки , меняющие параметры в about:config кое-как сделал. Короче, нужен новый CB/// |
Dumby > 11-05-2018 14:16:58 |
suz191 Вроде что-то показывает на Firefox 60, и, даже, на Nightly 62 (2018-05-10). скрытый текст Выделить код Код:setTimeout(url => { var mode = "rss"; // "rss" - Resident Set Size, "uss" - Unique Set Size var interval = 1500; // ms var before = null; var parent = before ? before.parentNode : document.getElementById("page-action-buttons"); var lab = parent.insertBefore(document.createElement("label"), before); var nsvo = Cu.import(url, {}); if (!("labels" in nsvo)) { nsvo.labels = new Set(); var mb = 1024 * 1024, gb = mb * 1024; var format = num => num < gb ? Math.round(num / mb) + "MB" : (Math.round(100 * num / gb) / 100).toFixed(2) + "GB"; var updateLabels = bytes => { if (bytes) for(var lab of nsvo.labels) lab.setAttribute("value", format(bytes)); } if (Services.ppmm.childCount == 1) { var mrm = Cc["@mozilla.org/memory-reporter-manager;1"] .getService(Ci.nsIMemoryReporterManager); var prop = "resident" + (mode == "uss" ? "Unique" : ""); var tick = () => updateLabels(mrm[prop]); } else { var tick = async () => { var res = await nsvo.Memory.summary(), bytes = 0; for(var prop in res) bytes += res[prop][mode]; updateLabels(bytes); } } tick(); nsvo.intId = nsvo.setInterval(tick, interval); } nsvo.labels.add(lab); addDestructor(reason => { nsvo.labels.delete(lab); lab.remove(); if (reason[5] == "e" && !nsvo.labels.size) nsvo.clearInterval(nsvo.intId), Cu.unload(url); }); }, 500, "resource://gre/modules/Memory.jsm?" + _id); |
suz191 > 11-05-2018 15:16:45 |
Dumby пишет
Да, показывает что-то мощное... Уж больно много, наверное вообще от всех firefox процессов скрытый текст // Показывать потребление памяти на текущей кнопке ................................ (function () { self.label = getMemory() + 'MB'; self.timer = setInterval(function() { var memory = getMemory(); self.label = memory + ' MB' if ( memory < 400 ) return; Картинка эллюстрация: скрытый текст 1. Coroner https://forum.mozilla-russia.org/viewto … 39#p757739 У меня не получилось 2. Dumby https://forum.mozilla-russia.org/viewto … 42#p757742 Работает 3 Старый код который перестал работать с версии 60 скрытый текст /*Initialization Code*/ // Настройка функций кликов мыши для кнопки ................................ setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); // Удалить Flash кукиси .... // Всплывающее сообщение .... // Показывать потребление памяти на текущей кнопке ................................ if ( memory < 400 ) return; // Стиль добавляет текст на кнопку .... // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .............. var types = Object.keys(data); тут полностью готовый код для 60+ https://forum.mozilla-russia.org/viewto … 39#p758039 Изменено дабы не вносить путаницу... Спасибо |
suz191 > 11-05-2018 20:50:31 |
Dumby скрытый текст if ( memory < 400 ) return; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath('путь до файла'); file.launch(); Помогите пожалуйста если это возможно... Я так полагаю отображение url в строке завязано на этом: скрытый текст }, 500, "resource://gre/modules/Memory.jsm?" + _id); нужно как-то задать Но так оно не работает var memory = "resource://gre/modules/Memory.jsm?" ; Спасибо |
Coroner > 11-05-2018 21:10:37 |
suz191 пишет
Ну тут уже выше моего понимания. У меня этот огрызок работает. Осталось лишь нажатия прикрутить... скрытый текст Про стиль в "справке" не забыли? Без него не прокатит. скрытый текст Выделить код Код:#id .toolbarbutton-text { color: #00FF00 !important; font-weight: bold !important; font-size: 10px !important; Min-height: 23px !important; display: block !important; } #id .toolbarbutton-icon { display: none !important; } |
suz191 > 11-05-2018 21:32:56 |
Coroner пишет
в firefox 60+ Всё прописал сейчас работает! скрытый текст работает как старая на один процесс, а вторая на все процессы. |
Coroner > 11-05-2018 21:52:16 |
suz191 пишет
Вообще без стиля — нет. Он как раз цифры и буквы вместо значка и выводит. |
suz191 > 11-05-2018 21:57:13 |
Coroner пишет
Я думаю примерно так как-то. |
Garalf > 12-05-2018 09:40:54 |
suz191 |
suz191 > 12-05-2018 13:52:04 |
Garalf пишет
Это было предположение, её просто нужно сейчас собрать потихоньку обратно отключая места которые её ломают и доработать... |
Garalf > 12-05-2018 14:07:18 |
suz191 Еще бы Autocopy+3 оживить... |
Coroner > 12-05-2018 16:08:48 |
suz191 пишет
Её у меня ломал код, отвечающий за показ дискового кэша в подсказке. Код убрал, подсказку оставил. |
suz191 > 12-05-2018 21:23:44 |
Coroner пишет
Да и пусть так остается... Показывает чистит и хорошо... Все равно не правильно показывает Самое главное память сбрасывает |
Coroner > 13-05-2018 06:42:29 |
suz191, без подсказки можно запутаться, если нажатий всяких много определено. и описываем по вкусу. скрытый текст Выделить код Код:self.onmouseenter = function() { self.tooltipText = "Left => Настройки Mozilla FireFox\n" + "Middle => Дополнения\n" + "Ctrl+Right => Информация для решения проблем и плагины\n" + "Alt+Right => Vacuum очистка баз places.sqlite и Brief,\n" + " удаление Flash-кукисов и запуск Afom.exe или Firemin\n" + "Right => About:About\n\n" + "Long Left => Производительность\n" + "Long Right => Открыть значение (выделенное или из буфера) в About:Config\n\n" + "Shift+Right => Меню кнопки\n\n"; }; |
JKT > 16-05-2018 05:23:44 |
Народ, так готовый хэппи энд будет, для "особо одаренных", вроде меня ? Чтоб код копирнул и всё. |
Coroner > 16-05-2018 09:10:21 |
JKT пишет
Так и берите готовую кнопку. Вы же берёте всё после сообщения suz191 пишет
Чего бы ему работать на 52? Вам в самое начало темы, на страницу номер 1. https://forum.mozilla-russia.org/viewto … 30#p528430 |
JKT > 17-05-2018 21:10:32 |
Coroner |
suz191 > 17-05-2018 23:03:08 |
Memory Monitor Firefox 60+ 1. Старый Код с не правильно отображающейся памятью и использованием запуска внешней программы для очистки памяти скрытый текст
2. Код кнопки в строке с просто правильно отображающейся памятью и без прибабахов тут: https://forum.mozilla-russia.org/viewto … 42#p757742 |
Coroner > 18-05-2018 02:32:07 |
suz191, парочка вопросов: |
suz191 > 18-05-2018 21:35:59 |
Coroner пишет
Добрый день... |
drage2 > 19-05-2018 16:11:12 |
del |
suz191 > 25-05-2018 00:30:49 |
Coroner пишет
Идея понравилась... |
Coroner > 25-05-2018 00:50:39 |
suz191 пишет
Хороший вариант. Главное что реализуется легко. скрытый текст Выделить код Код:if ( e.button == ... { // по вкусу doMMU(); function doMMU() { let gMgr = Cc["@mozilla.org/memory-reporter-manager;1"] .getService(Ci.nsIMemoryReporterManager); Services.obs.notifyObservers(null, "child-mmu-request", null); gMgr.minimizeMemoryUsage(null, false, false); } }; |
suz191 > 11-11-2018 18:06:15 |
Добрый день! В новом Firefox Dumby пишет
|
suz191 > 11-11-2018 20:58:52 |
suz191 пишет
Разобрался вроде! отсуцтвует вот это resource://gre/modules/Memory.jsm |
suz191 > 13-11-2018 03:54:36 |
Подскажите пожалуйста как впендюрить resource://gre/modules/Memory.jsm |
Dumby > 13-11-2018 08:45:56 |
suz191 пишет
Например, посмотри как вырезали и сделай наоборот. скрытый текст Выделить код Код:((g, id) => { // Resident Set Size: "resident" // Unique Set Size: "residentUnique" var mode = "resident"; var mm = g[id] || (g[id] = ({ init() { var mb = 1024 * 1024, gb = mb * 1024; this.format = num => num < gb ? Math.round(num / mb) + "MB" : (Math.round(100 * num / gb) / 100).toFixed(2) + "GB"; this.ppmm.addMessageListener(id, this); this.timer.initWithCallback( this, 1500, this.timer.TYPE_REPEATING_SLACK ); this.notify(); return this; }, destroy() { delete g[id]; this.timer.cancel(); this.ppmm.removeMessageListener(id, this); }, url: `data:, sendAsyncMessage( "${id}", Cc["@mozilla.org/memory-reporter-manager;1"] .getService(Ci.nsIMemoryReporterManager) .${mode} ) `.replace(/\s/g, ""), ppmm: Services.ppmm, timer: Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer), notify() { this.total = this.count = 0; this.childCount = this.ppmm.childCount; this.ppmm.loadProcessScript(this.url, false); }, receiveMessage(msg) { this.total += msg.data; if (++this.count != this.childCount) return; var val = this.format(this.total); for(var lab of this.labels) lab.setAttribute("value", val); }, labels: new Set(), register(doc, before) { var parent = before ? before.parentNode : doc.getElementById("page-action-buttons"); var lab = doc.createElement("label"); this.labels.add(lab); lab.id = id; doc.defaultView.setTimeout(() => this.labels.has(lab) && parent.insertBefore(lab, before) , 500); return lab; }, unregister(lab) { lab.remove(); this.labels.delete(lab); this.labels.size || this.destroy(); } }).init()); var lab = mm.register(document); addDestructor(() => mm.unregister(lab)); })(ChromeUtils.import("resource://gre/modules/Services.jsm", null), "CBMemoryMonitorIndicator"); Вобще, nsIMemoryReporterManager.getReports() показывал бы и подробнее и точнее (как минимум, плюс GPU процесс), но метод тормозной и сильно напрягает браузер, так что не подходит. |
suz191 > 15-11-2018 19:18:19 |
Dumby пишет
Огромное спасибо! Работает! |
suz191 > 02-10-2020 23:04:38 |
Перестала работать. |
Grishanenko > 17-02-2021 10:07:46 |
Подскажите, нужен ли для FF45+ участок кода: Выделить код Код:try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } Или достаточно только: Как здесь можно получить объем виртуальной памяти? |
kazarin > 26-08-2022 17:54:31 |
А есть версия, которая точно работает на 68 ? |
KOMMEHTATOP > 16-05-2023 15:41:21 |
В 113.0.1 у меня поломалось что-то.НЕ показывает, т.е нет инфы с правой стороны: скрытый текст Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0430%u043C%u044F%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADHklEQVQ4jYWTXUxTBxiG32hn62h1GLASoWoY+JNaZBtLmIMjyyKixLgEspEFkJZNHDHOAdmBU6RkUZzZsmK1+EOyOspAQ92QpjhbEEaUSmLXru4s4WLdxSgmrhCdEGSL7640ahb23L3J99w9H/AsiwBoHo9dOcu+fydvuQuAGoAKQBwWQvMiCps/TPo9WbvYBEDnatHOXTu7nnm5b1w/3NQUliRpHEDO895qnVYhAtiSrV9yfP7mBnY0Jz9am6z1W1v2/3Pj+jDn5h7yMXa7PaZUKnc9sVNWKmvv/5hBW03Cg7ffXHe343Q9f/BcYiTyG/+amefM7BxjsRgnJyc5MTHBWCxGq9X6QKlUFgAA9giaDu/pjfzmjJnBn3/h1PQsp6bvMRqdZCQS4fj4OGVZZjgcZjAYZCAQoCzLrK+vn1IoFNmo3K0ZFvfn0uH8jtFolLIsMxQKMRAIcGxsjKOjoxwZGeHQ0BB9Ph99Ph8HBgbo8XgoCEIIB4rUv3aek9jy+Rd0Op30+/0cHByk1+tlf38/3W43+/r66Ha76XL1sK2tjQ1SIz+pqWP+9u1/wlyx4u6pryT2X/GyurqaXV1d7O3tZU9PD10uF7u7u2m32ylJZlZVVbGy8gOWFO+guaGGpWVlf0DYovK+/kraja8d52mz2Wg0Gtne3s7W1laKokiTyUSj0cjSchMls4W1dSI9J1LZeXQjl7208ksAUAJQZ2VlDTscDoqiyMLCQpaX72Vp+T42NR+hubGR5ywZPLRXP5+UpGsr2Kq5PDW4mZkblhx9uoc1giCELRYLKyqMtDSZeeTQqywrKXik12++9e1nKXd+6kyfB/AyACF6xcCPihN8z0eVmpaWdnNb3luzBoM+PHBq7f1rZ1L/BrAzP1ttDXVtIoAMQ7qq4c5VA3XaFz7+z6IBpANQ5b0W1/7Qn8nlmkW1+4oSnOeb18wASDj4buKtk5/q7gFIWvA3SnbEO29f2EQA+ccPro4ceC9xCEDcqkTFMZUC2xaUAShsdSm3Lx5bNw1gVW5mnEcbv7jk/6SnWfp+fnwwJ1NtX+joXwJBlDIWFgabAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28function%20%28%29%20%7B%0A%20%20%20if%20%28%20document.getElementById%28%27memoryDisplay%27%29%20%29%20return%3B%0A%20%20%20%20%0A%20%20%20//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20....%0A%20%20%20var%20memoryDisplay%20%3D%20document.createElement%28%22statusbarpanel%22%29%3B%0A%20%20%20var%20urlbarIcons%20%3D%20document.getElementById%28%22urlbar-icons%22%29%3B%0A%20%20%20urlbarIcons.insertBefore%28%20memoryDisplay%2C%20urlbarIcons.lastChild%20%29%3B%20//%20%u043F%u0435%u0440%u0435%u0434%20%u043F%u0435%u0440%u0432%u043E%u0439%20%u0438%u043A%u043E%u043D%u043A%u043E%u0439%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20memoryDisplay.id%20%3D%20%22memoryDisplay%22%3B%0A%20%20%20memoryDisplay.label%20%3D%20getMemory%28%29%20+%20%27%20MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20mv%20%3D%20getMemory%28%29%3B%0A%20%20%20%20%20%20memoryDisplay.label%20%3D%20mv%20+%20%27%20MB%27%3B%0A%20%20%20%7D%2C%202000%20%29%3B%20%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%0A%20%20%0A%20%20%0A//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430%20....%0A%20%20%20var%20title%20%3D%20%22%u041B%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%u0421%3A%20%u041C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%5Cn%5Cn%22%3B%0A%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%7D%3B%20%20%20%0A%20%20%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%7D%0A%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20memoryDisplay.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%7D%0A%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%20%20%20%0A%20%20%20var%20context%20%3D%20Cu.import%28%22resource%3A//gre/modules/LoadContextInfo.jsm%22%2C%20%7B%7D%29.LoadContextInfo.default%3B%0A%20%20%20memoryDisplay.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28context%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0437%u0430%u043D%u0438%u043C%u0430%u0435%u043C%u0443%u044E%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u0443%u044E%20%u043F%u0430%u043C%u044F%u0442%u044C%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%20%7D%3B%20//%20%u0434%u043B%u044F%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%20%20%20%20%20%0A%20%20%20%0A%20%0A%20//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20Memory%20Monitor%20.....%0A%20%20%20memoryDisplay.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20//%20%u043F%u043E%20%u041B%u041A%u041C%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u044B%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%27Home%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20dir.exists%28%29%20%26%26%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%21dir.exists%28%29%20%26%26%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20//%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20%20showAlertNotification%28self.image%2C%20self.label%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash-%u043A%u0443%u043A%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u043E%20%u0421%u041A%u041C%20%u043C%u0438%u043D%u0438%u043C%u0438%u0437%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20memoryDisplay.style.color%20%3D%20%22red%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20self.interval%20%29%20%7B%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20clearInterval%28%20self.interval%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20delete%20self.interval%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20self.interval%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.minimizeMemoryUsage%28null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%2040000%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%20%20%0A%20%20%20//%20Css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%20%20%20%23memoryDisplay%20%7B%20-moz-appearance%3A%20none%20%21important%3B%20margin-left%3A%20-4px%20%21important%3B%20margin-right%3A%20-4px%20%21important%3B%20border%3A%200%20%21important%3B%20padding%3A%200%20%21important%3B%20text-align%3A%20right%3B%20%7D%5C%0A%20%20%20%20%20%20%23memoryDisplay%5BresetMemory%5D%20%7B%20color%3A%20red%20%21important%3B%20%7D%5C%0A%20%20%20%27%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20urlbarIcons.removeChild%28%20memoryDisplay%20%29%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A%0A%0A%0A%0A%0A%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Initialization Code скрытый текст Выделить код Код:/*Initialization Code*/ // ==================================================================================== // Memory Monitor ................................ // https://forum.mozilla-russia.org/viewtopic.php?id=52237 // ==================================================================================== var idbut=this.id; var urlbar = document.getElementById("page-action-buttons"); var button = document.getElementById(idbut); urlbar.insertBefore(button, urlbar.lastChild); var style = custombutton.buttonGetHelp(self).replace(/id/g, _id); var uri = makeURI('data:text/css,'+ encodeURIComponent(style)); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, 0); // Подсказка кнопки ................................ this.tooltipText = "Л: Открыть about:memory\nП: Очистка Кеш и удаление Flash-кукисов"; // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { if ( e.button == 0 ) { var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); } if ( e.button == 1 ) gShowPopup(this); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() } // Удалить Flash кукиси .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // Всплывающее сообщение .... var alertService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService); alertService.showAlertNotification('chrome://global/skin/icons/information-16.png', 'Показывать потребление памяти', 'Очистил кеш и удалил Flash кукиси'); setTimeout(function() { alertService.closeAlert() }, 2500); } }; // Показывать потребление памяти на текущей кнопке (function () { self.timer = setInterval(function() { var memory = getMemory(); self.label = getMemory() + ' mb' if ( memory < 300 ) return; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath('буква диска:\\путь\\до\\файла.расширение'); file.launch(); }, 2000 ); // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly return ( Math.round( memory/1048576 ) ); }; // Стиль добавляет текст на кнопку .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ %button% .toolbarbutton-icon {\ display: none !important;\ }\ %button% .toolbarbutton-text {\ display: -moz-box !important;\ }\ %button% {\ -moz-box-orient: horizontal !important;\ }\ '.replace(/%button%/g, "#" + _id) )); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); ИСПРАВИЛ показывает ,но не очищает. скрытый текст Выделить код Код:/*Initialization Code*/ // ==================================================================================== // Memory Monitor ................................ // https://forum.mozilla-russia.org/viewtopic.php?id=52237 // ==================================================================================== var idbut=this.id; var urlbar = document.getElementById("page-action-buttons"); var button = document.getElementById(idbut); urlbar.insertBefore(button, urlbar.lastChild); var style = custombutton.buttonGetHelp(self).replace(/id/g, _id); var uri = makeURI('data:text/css,'+ encodeURIComponent(style)); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, 0); // Подсказка кнопки ................................ this.tooltipText = "Л: Открыть about:memory\nП: Очистка Кеш и удаление Flash-кукисов"; // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { if ( e.button == 0 ) { var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); } if ( e.button == 1 ) gShowPopup(this); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() } // Удалить Flash кукиси .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // Всплывающее сообщение .... var alertService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService); alertService.showAlertNotification('chrome://global/skin/icons/information-16.png', 'Показывать потребление памяти', 'Очистил кеш и удалил Flash кукиси'); setTimeout(function() { alertService.closeAlert() }, 2500); } }; // Показывать потребление памяти на текущей кнопке (function () { self.timer = setInterval(function() { var memory = getMemory(); self.label = getMemory() + ' mb' if ( memory < 300 ) return; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath('буква диска:\\путь\\до\\файла.расширение'); file.launch(); }, 2000 ); // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly return ( Math.round( memory/1048576 ) ); }; // Стиль добавляет текст на кнопку .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ %button% .toolbarbutton-icon {\ display: none !important;\ }\ %button% .toolbarbutton-text {\ display: flex !important;\ }\ %button% {\ flex-direction: row !important;\ }\ '.replace(/%button%/g, "#" + _id) )); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { try { window.clearTimeout( self.timer ) } catch(e) {}; }); })(); |