Про стиль в "справке" не забыли? Без него не прокатит.
скрытый текстВыделить кодКод:
#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; }
в firefox 60+ Всё прописал сейчас работает!
А без стиля можно?
Получается все назад собирать постепенно?
С ней проще разобраться...
Сброс вставил
тут полностью готовый https://forum.mozilla-russia.org/viewto … 39#p758039
Изменено дабы не вносить путаницу...
картинка
Отредактировано suz191 (17-05-2018 23:08:12)
Отсутствует
А без стиля можно?
Вообще без стиля — нет. Он как раз цифры и буквы вместо значка и выводит.
В принципе его вроде в сам код вставить можно, кажется такие кнопки были тут, но я не подскажу сейчас как именно...
Отсутствует
Вообще без стиля — нет. Он как раз цифры и буквы вместо значка и выводит.
В принципе его вроде в сам код вставить можно, кажется такие кнопки были тут, но я не подскажу сейчас как именно...
Я думаю примерно так как-то.
https://forum.mozilla-russia.org/viewto … 39#p758039
Спасибо, получилось все работает
Отредактировано suz191 (17-05-2018 23:06:12)
Отсутствует
suz191
А где разместить этот код
memoryDisplay.style.cssText = "-moz-appearance: none; padding: 0; background-image: -moz-linear-gradient(#FF0, #0000E8, #FF0); margin-left: 1px; border: 0; color: #fff"; //
в коде кнопки?
Что-то с ним у меня кнопка не работает(
Отредактировано Garalf (12-05-2018 10:17:35)
Отсутствует
suz191
А где разместить этот код
memoryDisplay.style.cssText = "-moz-appearance: none; padding: 0; background-image: -moz-linear-gradient(#FF0, #0000E8, #FF0); margin-left: 1px; border: 0; color: #fff"; //
в коде кнопки?
Что-то с ним у меня кнопка не работает(
Это было предположение, её просто нужно сейчас собрать потихоньку обратно отключая места которые её ломают и доработать...
Вот со стилем сразу в коде... вроде работает!
Черным запуск программы и стиль...
Если запуск какой либы программы не нужен выкинте его (первый черный отрезок)
Но этот счетчик, память показывает не правильно и он собственно на данный момент подходит именно для очистки т.к. это прикручено...
Счетчик просто для показа памяти ... На мой взгляд более правильной тут https://forum.mozilla-russia.org/viewto … 42#p757742
Второй черный отрезок это стиль
в firefox 60+ https://forum.mozilla-russia.org/viewto … 39#p758039
Спасибо Coroner и Dumby ещё бы всё это собрать в единое целое то цены бы не было
Отредактировано suz191 (17-05-2018 23:05:47)
Отсутствует
её просто нужно сейчас собрать потихоньку обратно отключая места которые её ломают и доработать...
Её у меня ломал код, отвечающий за показ дискового кэша в подсказке. Код убрал, подсказку оставил.
У меня там было ещё очистка кэша, но я её давно уже выключил.
Все мои "нажатия", в том числе и по "Long Click" работают. Но это у меня, а как в оригинале было — я не помню. Может там и про кэш ничего и небыло...
Отсутствует
Все мои "нажатия", в том числе и по "Long Click" работают. Но это у меня, а как в оригинале было — я не помню. Может там и про кэш ничего и небыло...
Да и пусть так остается... Показывает чистит и хорошо... Все равно не правильно показывает Самое главное память сбрасывает
По-моему это был оригинал и он тоже работает, с вашим заголовком вставленным сверху и подсказки нету, она и не нужна:
в firefox 60+ https://forum.mozilla-russia.org/viewto … 39#p758039
Отредактировано suz191 (17-05-2018 23:04:43)
Отсутствует
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"; };
Отсутствует
Народ, так готовый хэппи энд будет, для "особо одаренных", вроде меня ? Чтоб код копирнул и всё.
А то "вставь сюда","вляпай туда"...
Вообще мёртвая кнопка. Код взял с предпоследнего поста от suz191
Пробовал вставлять описание кликов с предыдущего от Coroner - результат тот-же.
W7x64 FF_ESR-52.7.4 (x32)
Отсутствует
W7x64 FF_ESR-52.7.4 (x32)
Так и берите готовую кнопку. Вы же берёте всё после сообщения
в 60 firefox перестало работать и кнопка и строка состояния
Чего бы ему работать на 52?
Вам в самое начало темы, на страницу номер 1. https://forum.mozilla-russia.org/viewto … 30#p528430
Остальные переделки рассматривать не стоит.
Отредактировано Coroner (16-05-2018 09:11:09)
Отсутствует
Memory Monitor Firefox 60+
1. Старый Код с не правильно отображающейся памятью и использованием запуска внешней программы для очистки памяти
Л: Открыть about:memory
П: Очистка Кеш и удаление Flash-кукисов
(подсказка есть, очистка выделена черным и если не используете можете удалить эти строки):
/*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) {};
});
})();
Отсутствует
suz191, парочка вопросов:
1. Стиль в код перенесён — даёт это какую пользу, или просто так удобнее?
2. Нажатие в about:memory можно переделать на "Garbage Collection", или сразу на "Minimize Memory Usage"?
Отсутствует
suz191, парочка вопросов:
1. Стиль в код перенесён — даёт это какую пользу, или просто так удобнее?
2. Нажатие в about:memory можно переделать на "Garbage Collection", или сразу на "Minimize Memory Usage"?
Добрый день...
1. Удобнее в плане лени (скопировал и вставил)
2. Я не знаю! Но, попробовать наверное можно... Я просто собрал её из старой, по вашим исходникам
И сделал одно сообщение тут, а старые сообщения с кодом поправил ссылкой на это сообщение, чтоб не создавалось в теме хаоса, а то было в каждом сообщении по кусочку кода...
Отредактировано suz191 (18-05-2018 21:39:04)
Отсутствует
suz191, парочка вопросов:
Нажатие в about:memory можно переделать на "Garbage Collection", или сразу на "Minimize Memory Usage"?
Идея понравилась...
Можно попробовать совместить с этим! http://custombuttons.sourceforge.net/fo … f=4&t=3556
Тогда по сути наверное и сброс памяти не нужен будет никакой внешней программой...
Как вам такой Вариант?
Отсутствует
Как вам такой Вариант?
Хороший вариант. Главное что реализуется легко.
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); } };
Отредактировано Coroner (25-05-2018 00:51:20)
Отсутствует
Добрый день! В новом Firefox
Перестал работать правильный монитор от Dumby
из поста https://forum.mozilla-russia.org/viewto … 42#p757742
Они что-то сделали с адресной стройкой и больше он там не отображается!
Не мог ли бы кто-нибудь помочь заставить его отображаться? У меня не получается.
Спасибо!
suz191
Ну, я попробовал просто вывести в адресную строку лейбл,
отображающий расход памяти. (типа как на странице about:performance)Вроде что-то показывает на 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);
Отсутствует
Добрый день! В новом Firefox
Перестал работать правильный монитор от Dumby
из поста https://forum.mozilla-russia.org/viewto … 42#p757742
Разобрался вроде! отсуцтвует вот это resource://gre/modules/Memory.jsm
А где он теперь лежит?
Отсутствует
как впендюрить resource://gre/modules/Memory.jsm
Обратно?
Например, посмотри как вырезали и сделай наоборот.
Или сначала напиши что-нибудь простенькое, вдруг сойдёт. Ну типа
((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() не очень понял! Но, в этом коде его нет значить тормозить не должен!
Ещераз огромное спасибо!
Отсутствует
Подскажите, нужен ли для 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; }
Или достаточно только:
Как здесь можно получить объем виртуальной памяти?
Тупая замена resident на private не помогает.
Нужно для FF52 и ниже.
Отсутствует