Нет ли простого способа запросить размер занятой браузером памяти из кода расширения? Поиск на MDC ничего не дал.

Попробовал посмотреть код, используемый в about:memory (chrome://global/content/aboutMemory.js), но используемые там интерфейсы не документированы на MDC.

https://addons.mozilla.org/en-US/firefox/addon/3271/

brici
Спасибо. Но я просмотрел код подходящих расширений на AMO, и все они используют собственные бинарные компоненты (под Windows - dll), то есть авторы кодировали нужные функции на C++. Меня же интересует возможность запроса на JavaScript из XUL, используя какие-нибудь готовые XPCOM-интерфейсы.

okkamas_knife
Спасибо. Проще, наверное, было бы парсить DOM из about:memory, чтобы не зависеть от системы. Но неужели нет выхода ещё проще?..

okkamas_knife
Я ведь уже написал в шапке, что смотрел код страницы. Но там используются интерфейсы, которые не документированы в MDC. Даже Гугл не выдаёт по ним ничего вразумительного. Не хотелось бы тупо копировать обрывки кода, не зная о всех подводных камнях.

homo_nudus, какая к чёрту документация :).

Вот так понятнее? —

Выделить код

Код:

var enumeratedReporters = Components
    .classes["@mozilla.org/memory-reporter-manager;1"]
    .getService(Components.interfaces.nsIMemoryReporterManager).enumerateReporters();
        
while (enumeratedReporters.hasMoreElements())
    {
    with (enumeratedReporters.getNext().QueryInterface(Components.interfaces.nsIMemoryReporter))
        alert(path + ' ' + memoryUsed);
    }

В скобках замечу, что даже самое большое из выдаваемых значений меньше показываемого в диспетчере задач.

luitzen
Спасибо, теперь, конечно, всё компактнее. Ладно, придётся наплевать на паранойю, будем использовать «вещи в себе» :)

1. Встретил сообщения, что about:memory не работает в Линуксе. Кто-то сможет протестировать?

2. Страница появилась начиная с Firefox 3.6. Возможно, что и интерфейсы появились только в этой версии. Сможет ли кто-то протестировать код от luitzen для версии 3.5 (в Custom Buttons, GreaseMonkey, консоли с поддержкой привелигированного кода и т. д.) ?

Спасибо, спросил.