Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№5117-09-2013 08:15:05

2k1dmg
Участник
 
Группа: Members
Зарегистрирован: 06-04-2011
Сообщений: 190
UA: Firefox 23.0

Re: [CB]Memory Monitor

Для 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 workingSet = mgr.resident;

скрытый текст

Выделить код

Код:

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();

Отредактировано 2k1dmg (17-09-2013 15:54:56)

Отсутствует

 

№5217-09-2013 13:08:29

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 23.0

Re: [CB]Memory Monitor

Насчет рестарта посмотрите, как справились здесь:https://github.com/ardiman/userChrome.j … rMod.uc.js

Отсутствует

 

№5317-09-2013 18:57:35

feas
Участник
 
Группа: Extensions
Откуда: от DNS
Зарегистрирован: 25-08-2011
Сообщений: 5213
UA: Firefox 26.0
Веб-сайт

Re: [CB]Memory Monitor

2k1dmg пишет

Для Firefox 26

спасиб =)


Добро пожаловать на форум mozilla-russia.org. Здесь вы можете посоветоваться или обратиться за помощью к фанатам и пользователям продуктов Мозиллы. Если не знаете как правильно оформить пост специально для вас расписан пункт 2.2 правил форума
Сброс на примере Firefox – лёгкое решение большинства проблем
Починка браузера. Перенос своих настроек на новый профиль.

Отсутствует

 

№5430-09-2013 13:50:27

sthprog
Участник
 
Группа: Members
Зарегистрирован: 29-06-2009
Сообщений: 112
UA: Firefox 6.0

Re: [CB]Memory Monitor

Решил создать почти новый профиль, перенес папку с кнопками CB, все отвалились, костыль с предыдущей страницы не работает :( что можно сделать?

Отсутствует

 

№5530-09-2013 20:03:56

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

sthprog пишет

Решил создать почти новый профиль, перенес папку с кнопками CB, все отвалились, костыль с предыдущей страницы не работает :( что можно сделать?

Что за костыль?

Отсутствует

 

№5601-10-2013 06:55:10

sthprog
Участник
 
Группа: Members
Зарегистрирован: 29-06-2009
Сообщений: 112
UA: Firefox 6.0

Re: [CB]Memory Monitor

bunda1 пишет

sthprog пишет: Решил создать почти новый профиль, перенес папку с кнопками CB, все отвалились, костыль с предыдущей страницы не работает  что можно сделать?Что за костыль?

этот, в прошлый раз советовали

Отсутствует

 

№5701-10-2013 08:08:36

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

Отсутствует

 

№5801-10-2013 10:11:39

sthprog
Участник
 
Группа: Members
Зарегистрирован: 29-06-2009
Сообщений: 112
UA: Firefox 6.0

Re: [CB]Memory Monitor

bunda1 пишет

sthprogcustombuttons-0.0.5.7pre1-20130923

Ура, заработало, спасибо.

Отсутствует

 

№5912-11-2013 16:06:08

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 25.0
Веб-сайт

Re: [CB]Memory Monitor

Мне кажется, что для экономии места можно не показывать "МВ", а только само число мегабайт.
Кроме того можно показывать только 3 младшие цифры, а 1200МБ от 200МБ можно различить  цветом фона :)
Индикатор можно ещё в аддон баре показывать - "addon-bar". Это почти там же где и "status-bar", чуть левее в панели закладок.
Интересно - можно ли его помещать ещё в каком-то месте - панели закладок, таб-баре и т.д.?

Отредактировано difabor (12-11-2013 16:09:53)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№6012-11-2013 21:10:51

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

difabor пишет

Мне кажется, что для экономии места можно не показывать "МВ", а только само число мегабайт.

Дело вкуса или переделать просишь?

difabor пишет

Кроме того можно показывать только 3 младшие цифры, а 1200МБ от 200МБ можно различить  цветом фона :)

Ну можно конечно, но почему именно эти значения?

difabor пишет

Интересно - можно ли его помещать ещё в каком-то месте - панели закладок, таб-баре и т.д.?

Легко.

difabor пишет

2. Если текст состоит из нескольких символов, можно ли устанавливать цвета отдельно для каждого символа?

Можно но сложно, я не сделаю.

Отсутствует

 

№6112-11-2013 22:05:57

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 25.0
Веб-сайт

Re: [CB]Memory Monitor

bunda1 пишет
difabor пишет

Мне кажется, что для экономии места можно не показывать "МВ", а только само число мегабайт.

Дело вкуса или переделать просишь?

difabor пишет

Кроме того можно показывать только 3 младшие цифры, а 1200МБ от 200МБ можно различить  цветом фона :)

Ну можно конечно, но почему именно эти значения?

difabor пишет

Интересно - можно ли его помещать ещё в каком-то месте - панели закладок, таб-баре и т.д.?

Легко.

difabor пишет

2. Если текст состоит из нескольких символов, можно ли устанавливать цвета отдельно для каждого символа?

Можно но сложно, я не сделаю.

Спасибо!
Нет, нет, я не прошу Вас переделывать, я хочу сам научиться переделывать! (МВ я сам смогу убрать).
То же касается 3 младших цифр - это я сам постараюсь - всё-таки надо же мне учиться :)
А вот как указать другую панель - я не знаю  и если бы Вы мне просто показали как это делается - был бы Вам очень благодарен.
Кроме того, если бы Вы мне просто показали как менять цвет всего текста - я бы Вам был очень признателен.
Что же касается установки цветов отдельных цифр, то очевидно, что для Memory Monitor это не нужно, но знать, как это делается я бы хотел...


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№6212-11-2013 23:44:59

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

Ох тяжко, мне не русскому человеку трудно объяснять :(

Цвета отдельных цифр - наверно нужно создать и объединить в адресной строке несколько маленьких разноцветных панелей которые должены отображать только одну цифру расхода памяти..

Как указать другую панель здесь почитай Метод appendChild() – добавление дочернего узла к XML элементу | okITgo.ru и Метод insertBefore() XML Элемента | okITgo.ru
Для примера ниже в коде который я переписал для наглядности замени:
var urlbarIcons = document.getElementById("urlbar-icons");
на:
var urlbarIcons = document.getElementById("PersonalToolbar"); //это панель закладок

Выделить код

Код:

// Показывать потребление памяти в адресной строке, от 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; }

Отредактировано bunda1 (13-11-2013 00:03:21)

Отсутствует

 

№6313-11-2013 00:05:02

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 25.0

Re: [CB]Memory Monitor

bunda1 можно подставить в подсказку различные показатели типа памяти из about:memory:
например:
       var commitmentSize=(typeof(gMemReporters["private"])!="undefined" ? gMemReporters["private"].amount : 0);
       var gfxImage=(typeof(gMemReporters["vsize"])!="undefined" ? gMemReporters["vsize"].amount : 0);
     
      memoryPanel.setAttribute("tooltiptext",
        ((workingSet) ? "resident: " + ucjs_MemoryMonitor.getSize(workingSet) + " " + ucjs_MemoryMonitor._prefix + "\n" : "") +
        ((commitmentSize) ? "private: " + ucjs_MemoryMonitor.getSize(commitmentSize) + " " + ucjs_MemoryMonitor._prefix + "\n" : "") +
                ((gfxImage) ? "vsize: " + ucjs_MemoryMonitor.getSize(gfxImage) + " " + ucjs_MemoryMonitor._prefix + "\n" : "")
        );

Из того что показывает кнопка - соответствует: значению resident.
В диспетчере задач  - другое значение.
Можете объяснить (может быть и ни к вам вопрос, а ко всем) - что мы наблюдаем на этой кнопке.? Чисто спортивный интерес.

Отсутствует

 

№6413-11-2013 00:25:09

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

Andrey_Krropotkin пишет

Из того что показывает кнопка - соответствует: значению resident.
В диспетчере задач  - другое значение.

У меня соответствует тому что показывает диспетчер задач, разница около 5-10MB
0dmc.jpg

Добавлено 13-11-2013 00:31:08
Я так понимаю resident и enumerateReporters() отдаёт всю занимаемую оперативную память.

Отредактировано bunda1 (13-11-2013 00:31:08)

Отсутствует

 

№6513-11-2013 02:17:10

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 25.0
Веб-сайт

Re: [CB]Memory Monitor

bunda1 пишет

Ох тяжко, мне не русскому человеку трудно объяснять :(
...

Как указать другую панель здесь почитай Метод appendChild() – добавление дочернего узла к XML элементу | okITgo.ru и Метод insertBefore() XML Элемента | okITgo.ru
Для примера ниже в коде который я переписал для наглядности замени:
var urlbarIcons = document.getElementById("urlbar-icons");
на:
var urlbarIcons = document.getElementById("PersonalToolbar"); //это панель закладок

Огромнейшее спасибо!appl.gif
А как называется таб бар (бар вкладок) и может есть место, где перечислены названия всех тулбаров?

Отредактировано difabor (13-11-2013 02:18:19)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№6613-11-2013 21:33:45

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

difabor пишет

А как называется таб бар (бар вкладок) и может есть место, где перечислены названия всех тулбаров?

TabsToolbar

Отсутствует

 

№6714-11-2013 14:53:52

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 25.0
Веб-сайт

Re: [CB]Memory Monitor

bunda1 пишет
difabor пишет

А как называется таб бар (бар вкладок) и может есть место, где перечислены названия всех тулбаров?

TabsToolbar

Спасибо большое!
Подстраиваю под свои нужды Ваш монитор - скорее, с целью научиться чему либо.
Заодно обнаружил, что personal-bookmarks это не PersonalToolbar и можно добавить и к personal-bookmarks - тогда монитор можно перетаскивать вместе с закладками куда угодно :)
Для Вас, конечно, это не новость, а вот я открываю для себя Америки :)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№6814-11-2013 22:17:31

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

difabor
Также можно выводить расход памяти или другие данные прямо на Сustom Buttons кнопку:

Выделить код

Код:

// Показывать потребление памяти на текущей кнопке, от 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) {};
   });
     
})();

Отсутствует

 

№6915-11-2013 00:48:03

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 28.0

Re: [CB]Memory Monitor

bunda1 пишет

Добавлены новые возможности:
Теперь Левый клик в адресной строке на расходе оперативной памяти открывает в новой вкладке потребление памяти(about:memory) подробно по элементам.

В [nightly] открывает пустую страницу, с названием вкладки about:memory

Отсутствует

 

№7015-11-2013 20:27:07

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

voqabuhe пишет

В [nightly] открывает пустую страницу, с названием вкладки about:memory

У меня на [nightly] проблем нет, что будет если просто открыть about:memory из адресной строки.

Отсутствует

 

№7115-11-2013 21:07:00

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 28.0

Re: [CB]Memory Monitor

bunda1
Через адресную открывается. А если через кнопку, то сначала открывается пустая страница, потом жму в адресной строке Enter, тогда открывается about:memory

Отсутствует

 

№7215-11-2013 21:26:53

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

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);

на:

Выделить код

Код:

gBrowser.selectedTab = gBrowser.addTab("about:memory");

Отсутствует

 

№7315-11-2013 23:40:47

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 28.0

Re: [CB]Memory Monitor

bunda1
Так вообще перестала работать, совсем исчезла вместе с Изменить масштаб, в одной кнопке были.

Отсутствует

 

№7415-11-2013 23:47:50

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Memory Monitor

Упс, пропустил }); за  setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0);

Отредактировано bunda1 (15-11-2013 23:48:33)

Отсутствует

 

№7516-11-2013 00:14:34

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 28.0

Re: [CB]Memory Monitor

bunda1
Так ничего не изменилось, работает как в первом варианте №72

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]