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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№55129-09-2022 18:13:08

LGS
Участник
 
Группа: Members
Зарегистрирован: 17-09-2022
Сообщений: 22
UA: Firefox 78.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Dumby

Dumby пишет

Ну и настраивать код, конечно, придётся.

На Win10 почти идеально выглядит без правок:
Titlebar.1664463242.png
и текст не подменяется. Реально круто, спасибо!

Dumby пишет

если пишу
#bookmarks-view > treechildren::-moz-tree-separator {
    margin-right: 16px !important;
}

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

Dumby пишет

ничего не получилось

Разве такое может быть..?

Отсутствует

 

№55220-10-2022 14:09:39

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 965
UA: Firefox 106.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Отсутствует

 

№55320-10-2022 15:51:22

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 109
UA: Google 2.1

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

xrun1 пишет

"подставляющий модификаторы поиска"

попробовал запустить код через userCromeJS от Ксяо на [firefox] 106.0.1, не заработала только очистка мышкой #searchbar. брал из второго спойлера с пометкой Update, может в этом проблема...


Жизнь иногда такое выкидывает, что хочется подобрать...

На форуме

 

№55420-10-2022 16:22:25

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1829
UA: Firefox 78.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

xrun1
Сходил по ссылке, вставил код в 108.0a1, пункт есть.

Отсутствует

 

№55520-10-2022 17:14:18

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 965
UA: Firefox 106.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Dumby
Работает, даже не знаю, что у меня было.:beer:

Отсутствует

 

№55601-11-2022 13:47:13

sn260591
Участник
 
Группа: Members
Зарегистрирован: 26-09-2015
Сообщений: 89
UA: Firefox 106.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Подскажите код, который осуществляет перезапуск браузера с текущими аргументами командной строки. Взятый отсюда https://forum.mozilla-russia.org/viewto … 43#p798943 перезапускает без аргументов.

Отсутствует

 

№55706-11-2022 06:44:50

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 276
UA: Firefox 97.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Обновил Demo-ПРОФИЛЬ для Firefox 84+
Скрипт меню сократил, но добавил всплывающих подсказок. Многие скрипты обновлены.
В зависимости от операционной системы, подключаются дополнительные стили для custom_styles_all_user.css.
Теперь у кнопок 2 режима работы - переключаются долгим кликом по Attributes Inspector в левой панели.
Пока режимы работы отличаются только подсказками, но возможно сделать полностью 2 различных профиля кнопок.
Например, в одном режиме у кнопок есть двойной клик, в другом долгое нажатие.
В одном режиме (Экспертном) подключены одни кнопки, во втором (простом) другие.

Отредактировано Dobrov (06-11-2022 06:53:57)

Отсутствует

 

№55807-11-2022 15:06:53

LGS
Участник
 
Группа: Members
Зарегистрирован: 17-09-2022
Сообщений: 22
UA: Firefox 68.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Dumby, можно заставить работать эти скрипты FirefoxTaskManager part1, part2 (не знаю, почему автор разбил на две части) и aboutconfig_menu.uc.js в 68ESR..? Размеры, конечно, не хилые, но, может, посмотрите, что можно сделать..?

Отсутствует

 

№55907-11-2022 18:57:19

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1829
UA: Firefox 78.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

LGS пишет

и aboutconfig_menu.uc.js в 68ESR

Сначала убрать, на всякий случай, строку console.log("aboutconfig_menu.uc.js");
Затем заменить btn.type = 'menu'; на btn.setAttribute("type", "menu");


И должно работать. Ну, иконку ещё заменить, в 68 нет никакого «ion.svg».
Расположить, разумеется, в custom_script.js, а не в окно.


А FirefoxTaskManager — вот тут не знаю.
Для меня всё упирается в CSS. Если JS ещё могу поправить,
то как спозиционировать то, что скрипт суёт во вкладки, так, как в 102, я совершенно без понятия.

Отсутствует

 

№56007-11-2022 20:53:00

LGS
Участник
 
Группа: Members
Зарегистрирован: 17-09-2022
Сообщений: 22
UA: Firefox 78.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Dumby

Dumby пишет

должно работать

Спасибо, работает.

Dumby пишет

что скрипт суёт во вкладки, так, как в 102, я совершенно без понятия

А если упростить задачу: вот этот адаптировать под 68. На 78 проверял, там, вроде, только выпадающий список без "вторжения" во вкладки.
Судя по потрохам скрипта, задачу это не упрощает. Отбой, извиняюсь за отнятое время.

Отредактировано LGS (07-11-2022 23:00:20)

Отсутствует

 

№56108-11-2022 13:38:06

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1829
UA: Firefox 78.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

LGS пишет

там, вроде, только выпадающий список без "вторжения" во вкладки

Вторжение есть, div.tabBars добавляется в табский vbox.tab-background
Но да, что-то никакого видимого тултипа это не образует.
Так что попробуем вернуться к предыдущему варианту.


Насчёт позиционирования, оно работает, если .tab-content'у назначить position: relative
Как бы это чего-нибудь не сломало, надо приглядеться.


Кстати вот про «не знаю, почему автор разбил на две части»,
надо полагать, это потому, что скрипты сделаны под «xiaoxiaoflood's uc loader»,
и у второго (part2) присутствует директива @onlyonce, то есть он должен исполняться только один раз.


Итак, part2.
Убираем строку console.log("taskmonitor_part2.js");
Меняем btn.type = 'menu'; на btn.setAttribute("type", "menu");
В стиль (он там в конце) добавляем
tab.tabbrowser-tab .tab-content {position: relative !important;}
И перемещаем скрипт в custom_script.js, если он ещё не там.


part1
Меняем (все) document.body на просто document
то есть убираем «.body», в 68 у документа нет никакого body
И меняем эти четыре строки

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

Выделить код

Код:

/*
        var insertNode = tabNode.getElementsByClassName("tab-content")[0];
*/
        var insertNode = document.getAnonymousElementByAttribute(tabNode, "class", "tab-content");


/*
        var close_button = tabNode.getElementsByClassName("tab-content")[0].getElementsByClassName("tab-close-button")[0];
*/
        var close_button = insertNode.querySelector(":scope > .tab-close-button");


/*
            if ( _btnNode ) btnNode = _btnNode.getElementsByClassName("toolbarbutton-badge-stack")[0];
*/
            if (_btnNode) btnNode =  document.getAnonymousElementByAttribute(_btnNode, "class", "toolbarbutton-badge-stack");


/*
            contParent = document.createXULElement("div");
*/
            contParent = document.createXULElement("box");

Отсутствует

 

№56208-11-2022 18:43:43

LGS
Участник
 
Группа: Members
Зарегистрирован: 17-09-2022
Сообщений: 22
UA: Firefox 68.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Dumby, круто, как всегда, огромное спасибо:

скрытый текст
Taskbar-4.1667918402.png   Taskbar-5.1667918423.png   Taskbar-6.1667918439.png

Только пришлось помимо четырех строк еще три заменить, а то консоль ошибки выдавала и по щелчку ЛКМ в окошке с голубым фоном значения не выводились:
скрытый текст
// var menu_task_obj = win.documen.getElementsByClassName( "fftm_widget_task" )[i;
    var menu_task_obj = document.getElementById( "fftm_widget_task_"+i );

// var fftm_widget = win.documen.getElementsByClassName("fftm_widget_class")[0];
   var fftm_widget = document.getElementById("fftm_widget");

// var _btnNode = win.documen.getElementsByAttribute("data-extensionid",addonId)[0];
    var _btnNode = document.getElementsByAttribute("data-extensionid",addonId


Хорошо, что у автора они прописаны были выше под комментариями (стр. 700, к примеру)... наугад попробовал строку с ошибкой закомментировать, авторскую активировать - получилось.

Отредактировано LGS (08-11-2022 18:49:02)

Отсутствует

 

№56308-11-2022 19:14:08

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1829
UA: Firefox 78.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

LGS пишет

пришлось помимо четырех строк еще три заменить

Видимо реплейс «.body» прошёл кривовато.
В приведённых строках везде «win.documen»
без буквы «t» на конце слова документ.

Отсутствует

 

№56408-11-2022 19:35:15

LGS
Участник
 
Группа: Members
Зарегистрирован: 17-09-2022
Сообщений: 22
UA: Firefox 68.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Dumby пишет

В приведённых строках везде «win.documen»
без буквы «t» на конце слова документ.

Мой косяк, когда в редакторе замену делал document.body на document букву t потерял. В оригинале все нормально. Странно, что вообще сработала замена трех строк.

Вернул букву t, три строки привел в первоначальное состояние - все нормально. Невнимательность повлекла за собой лишние телодвижения.

Отредактировано LGS (08-11-2022 19:44:39)

Отсутствует

 

№56517-11-2022 16:47:05

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 965
UA: Firefox 107.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

Случайно заметил, что обновился скрипт от Alice0775 memoryMinimizationButton.uc.js. Убрал 3 сообщения слева снизу и заменил "всплывашкой". Кнопка у меня в боковой панели, добавил отступ - в [firefox] v.107 прижалась влево к границе окна. Если кто пользуется, в CustomStylesScripts.jsm секция load: [ // По событию "load"
{ path: "memoryMinimizationButton.uc.js", ucfobj: false, },

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

Выделить код

Код:

// ==UserScript==
// https://raw.githubusercontent.com/alice0775/userChrome.js/master/102/memoryMinimizationButton.uc.js
// @name           memoryMinimizationButton.uc.js
// @namespace      http://space.geocities.yahoo.co.jp/gl/alice0775
// @description    memory minimization button
// @charset        utf-8
// @include        main
// @include        about:processes?memoryMinimizationButton
// @compatibility  Firefox 100
// @author         Alice0775
// @version        2022/06/18 00:00 kil process
// @version        2022/04/01 23:00 Convert Components.utils.import to ChromeUtils.import
// @version        2018/10/09 00:00 fix CSS
// @version        2018/09/07 23:00 fix initial visual status
// ==/UserScript==
var memoryMinimizationButton = {
  get memoryMinimizationButton(){
    return document.getElementById("memoryMinimizationButton");
  },

  get statusinfo() {
    if ("StatusPanel" in window) {
      // fx61+
      return StatusPanel._labelElement.value;
    } else {
      return XULBrowserWindow.statusTextField.label;
    }
  },

  set statusinfo(val) {
    if ("StatusPanel" in window) {
      // fx61+
      StatusPanel._label = val;
    } else {
      XULBrowserWindow.statusTextField.label = val;
    }
    if(this._statusinfotimer)
      clearTimeout(this._statusinfotimer);
    this._statusinfotimer = setTimeout(() => {this.hideStatusInfo();}, 2000);
    this._laststatusinfo = val;
    return val;
  },

  init: function() {
    let style = `
      #memoryMinimizationButton {
          width: 16px;
          height: 16px;
          margin-left: 5px; /* со 107-й сломалось, добавил */
        list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjEuMWMqnEsAAAFdSURBVFhH7VbLbsMwDMsef5dc8z/53F13GXZYm5kaZciqnKro2hxaAkRkmkqI2gI6KNZ1vStPEJluyS6WZVlB3xDpWc3q/Ewf6ASClwicLkhojc5PxaDvgQIU4dWSPjEa/Z1y1ed5fqPUeCmJVhAGUC9YNzz4ghNEelYDrI5aAozjeNyD5QBqgF34DJAN8GN4oGb3cJ527fftumEqgAVurdk7Um680zR92bXWEdMBWB+s14+TegFf93hpgF5dgylK/cFSPSGvOgKA9afWgP4y+lR/xKuOwMN6AdwFXff4H0eAqfhWnU9Mhdx+rrtMBSjER3TUtLYaqOMYjaldN8wGuBmfAWqAcmMPe1ACYF6lIBUZXXFO29I3/5IVoFMpcLoA2iX96gVLiBb0bb6gINSy/WLsgb4HDgBD0BzqXsv0i8nDm+/JCC8lKW5zY4SGvT9LBdbVS0g/64q4fxh+AZvdJHHKcZdFAAAAAElFTkSuQmCC');
      }
      @media (min-resolution: 1.1dppx) {
        #memoryMinimizationButton {
          width: 32px;
          height: 32px;
        }
      }
     `.replace(/\s+/g, " ");

    let sss = Components.classes['@mozilla.org/content/style-sheet-service;1']
                .getService(Components.interfaces.nsIStyleSheetService);
    let newURIParam = {
        aURL: 'data:text/css,' + encodeURIComponent(style),
        aOriginCharset: null,
        aBaseURI: null
    }
    let cssUri = Services.io.newURI(newURIParam.aURL, newURIParam.aOriginCharset, newURIParam.aBaseURI);
    if (!sss.sheetRegistered(cssUri, sss.AUTHOR_SHEET))
      sss.loadAndRegisterSheet(cssUri, sss.AUTHOR_SHEET);

    if (this.memoryMinimizationButton)
      return;

    ChromeUtils.import("resource:///modules/CustomizableUI.jsm");
    try {
      CustomizableUI.createWidget({ //must run createWidget before windowListener.register because the register function needs the button added first
        id: 'memoryMinimizationButton',
        type:  'custom',
        defaultArea: CustomizableUI.AREA_NAVBAR,
        onBuild: function(aDocument) {
          var toolbaritem = aDocument.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'toolbarbutton');
          var props = {
            id: "memoryMinimizationButton",
            class: "toolbarbutton-1 chromeclass-toolbar-additional",
            tooltiptext: "Memory minimization(shift+click; kill other tabs)",
            oncommand: "memoryMinimizationButton.doMinimize(event);",
            type: CustomizableUI.TYPE_TOOLBAR,
            label: "Memory minimization",
            removable: "true"
          };
          for (var p in props) {
            toolbaritem.setAttribute(p, props[p]);
          }
          
          return toolbaritem;
        },
      });
    } catch(ee) {}
  },

  doMinimize: function(event) {
    function doGlobalGC()  {
       Services.obs.notifyObservers(null, "child-gc-request");
       Cu.forceGC();
    }

    function doCC()  {
      Services.obs.notifyObservers(null, "child-cc-request");
      if (typeof window.windowUtils != "undefined")
        window.windowUtils.cycleCollect();
      else
      window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
            .getInterface(Components.interfaces.nsIDOMWindowUtils).cycleCollect();
    }

    function doMemMinimize(event) {
      if (event.button == 1 || event.shiftKey || event.altKey)
        memoryMinimizationButton.kill();
      Services.obs.notifyObservers(null, "child-mmu-request");
      var gMgr = Cc["@mozilla.org/memory-reporter-manager;1"]
             .getService(Ci.nsIMemoryReporterManager);
//      gMgr.minimizeMemoryUsage(() => {if (!(event.button == 1 || event.shiftKey || event.altKey)) memoryMinimizationButton.displayStatus("Memory minimization done")});
      gMgr.minimizeMemoryUsage(() => {if (!(event.button == 1 || event.shiftKey || event.altKey)) memoryMinimizationButton.displayStatus("")});
    }
    function sendHeapMinNotifications()  {
      function runSoon(f) {
        var tm = Cc["@mozilla.org/thread-manager;1"]
                  .getService(Ci.nsIThreadManager);

        tm.mainThread.dispatch({ run: f }, Ci.nsIThread.DISPATCH_NORMAL);
      }

      function sendHeapMinNotificationsInner() {
        var os = Cc["@mozilla.org/observer-service;1"]
                 .getService(Ci.nsIObserverService);
        os.notifyObservers(null, "memory-pressure", "heap-minimize");

        if (++j < 3)
          runSoon(sendHeapMinNotificationsInner);
      }

      var j = 0;
      sendHeapMinNotificationsInner();
    }

//    this.displayStatus("Memory minimization start")
    doGlobalGC();
    doCC();
    //sendHeapMinNotifications();
    // Добавил всплывашку
    setTimeout((event)=> {doMemMinimize(event);}, 1000, event);
    var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
    alertsService.showAlertNotification("chrome://user_chrome_files/content/custom_styles/icons/information-16.png", "Memory", "Потребление памяти минимизировано!");
    setTimeout(() => alertsService.closeAlert(), 2000);
  },
  
  _statusinfotimer: null,
  _laststatusinfo: null,
  displayStatus: function(val) {
    this.statusinfo = val;
  },
  hideStatusInfo: function() {
    if(this._statusinfotimer)
      clearTimeout(this._statusinfotimer);
    this._statusinfotimer = null;
    if (this._laststatusinfo == this.statusinfo)
      this.statusinfo = "";
  },

  kill: function() {
    this.browser = document.createXULElement("browser");
    this.browser.src = "about:processes?memoryMinimizationButton";
    document.documentElement.appendChild(this.browser);
    setTimeout(() => {
      this.browser.src = "about:blank";
      document.documentElement.removeChild(this.browser);
      delete this.browser;
//      Services.console.logStringMessage("killing done");
//      this.displayStatus("Memory minimization done")
    }, 8000);
  }
}

if (location.href == "chrome://browser/content/browser.xhtml") {
  memoryMinimizationButton.init();
} else if (location.href == "about:processes?memoryMinimizationButton") {
//  Services.console.logStringMessage("killing start");
  setTimeout(() => {
    let closeButtons = document.querySelectorAll("tr.process > td.close-icon");
    for(let closeButton of closeButtons) {
      closeButton.click();
    }
  }, 5000);
}


И кнопка в панель адреса, вроде от Dumby, ссылки нет.
scriptsbackground: [ // В фоне [System Principal]
скрытый текст

Выделить код

Код:

(async id => ({

  delay: 2e3,

  val: "",
  init(topic, mm) {
    Services.obs.addObserver(mm = this, topic);
    Services.obs.addObserver(function quit(s, t) {
      this.timer?.cancel();
      Services.obs.removeObserver(mm, topic);
      Services.obs.removeObserver(quit, t);
    }, "quit-application-granted");
  },
  observe(win) {
    var df = win.MozXULElement.parseXULToFragment(
      `<hbox id="${id}" tooltiptext="${
        "ЛКМ: Минимизировать потребление памяти&#xA;ПКМ: about:performance&#xA;Ctrl+ПКМ: about:debugging#/runtime/this-firefox"
      }" onclick="event.button || ${
        "memoryMinimizationButton.doMinimize(event)"
      }"><label id="${id += "-label"}"/></hbox>`
    );
    this.timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
    (this.observe = async win => {
      this.timer.cancel();
      await new Promise(ChromeUtils.idleDispatch);
      var clone = win.document.importNode(df, true);
      clone.firstChild.oncontextmenu = this.about;
      win.document.getElementById("star-button-box").after(clone);
      this.notify();
    })(win);
  },
  about(e) {
    var gb = e.view.gBrowser;
    gb.selectedTab = gb.addTrustedTab(`about:${
      e.ctrlKey ? "debugging#/runtime/this-firefox" : "performance"
    }`);
  },
  async notify() {
    var info = await ChromeUtils.requestProcInfo();
    var bytes = info.memory;
    for(var child of info.children) bytes += child.memory;
    this.timer.initWithCallback(this, this.delay, this.timer.TYPE_ONE_SHOT);

    var prev = this.val;
    if ((this.val = this.mgb(bytes)) != prev)
      for(var win of CustomizableUI.windows) {
        var lab = win.document.getElementById(id);
        if (lab) lab.value = this.val;
      }
  },
  mgb: bytes => bytes < 1073741824
    ? Math.round(bytes / 1048576) + "MB"
    : (bytes / 1073741824).toFixed(2) + "GB"
}).init("browser-delayed-startup-finished"))("ucf-mem-indicator");


Если что напутал, поправьте.

Отсутствует

 

№56619-11-2022 16:19:27

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1093
UA: Firefox 102.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

xrun1
Кнопка в панель адреса
+ та и следующая страница обсуждения, если на кнопку в строке адреса надо повесить функцию очистки по клику и ...
   
А секция sendHeapMinNotifications() разве не к уведомлениям в статусе относится?

Отсутствует

 

№56720-11-2022 11:07:13

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 965
UA: Firefox 107.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

_zt пишет

секция sendHeapMinNotifications() разве не к уведомлениям в статусе относится?

Это функция и вызов её закомментарил, там всего одно место как раз перед моей "всплывашкой". Правильно это или что-то ф-ция делает ещё - не знаю...
За ссылку на разговор о кнопке спасибо. Я помню, что-то было на пару страниц, читал, но ссылку у себя не сохранил.
Что касается очистки по клику, так это есть. Скрипт создаёт свою кнопку, но я ей не пользуюсь, она сидит в боковой панели. А по клику ЛКМ на кнопке в строке адреса как раз и вызывается функция из скрипта memoryMinimizationButton.doMinimize(event). Я кнопку компоновал из нескольких сообщений, в том числе из Вашего.

Отсутствует

 

№56821-11-2022 09:07:26

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1093
UA: Firefox 102.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

xrun1
Понятно. Только непонятно, нужна ли мне последняя секция?

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

Выделить код

Код:

var memoryMinimizationButton = {
  get memoryMinimizationButton(){
    return document.getElementById("memoryMinimizationButton");
  },

  doMinimize: function(event) {
    function doGlobalGC()  {
       Services.obs.notifyObservers(null, "child-gc-request");
       Cu.forceGC();
    }

    function doCC()  {
      Services.obs.notifyObservers(null, "child-cc-request");
      if (typeof window.windowUtils != "undefined")
        window.windowUtils.cycleCollect();
      else
      window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
            .getInterface(Components.interfaces.nsIDOMWindowUtils).cycleCollect();
    }

    function doMemMinimize(event) {
      memoryMinimizationButton.kill();
      Services.obs.notifyObservers(null, "child-mmu-request");
      var gMgr = Cc["@mozilla.org/memory-reporter-manager;1"]
             .getService(Ci.nsIMemoryReporterManager);
    }

    doGlobalGC();
    doCC();
    // Всплывашка
    setTimeout((event)=> {doMemMinimize(event);}, 1000, event);
    var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
    alertsService.showAlertNotification("chrome://user_chrome_files/content/custom_styles/icons/information-16.png", "Memory Minimization", "Минимизация памяти выполнена!");
    setTimeout(() => alertsService.closeAlert(), 2000);
  },

  kill: function() {
    this.browser = document.createXULElement("browser");
    this.browser.src = "about:processes?memoryMinimizationButton";
    document.documentElement.appendChild(this.browser);
    setTimeout(() => {
      this.browser.src = "about:blank";
      document.documentElement.removeChild(this.browser);
      delete this.browser;
    }, 8000);
  }
}

if (location.href == "about:processes?memoryMinimizationButton") {
  setTimeout(() => {
    let closeButtons = document.querySelectorAll("tr.process > td.close-icon");
    for(let closeButton of closeButtons) {
      closeButton.click();
    }
  }, 5000);
}

Отсутствует

 

№56921-11-2022 10:33:52

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 965
UA: Firefox 107.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

_zt пишет

нужна ли мне последняя секция?

Думаю, нет. Как я понял, по задумке автора по shift+click должны закрываться другие табы. У меня не закрываются. Может потому, что у меня нет кнопки закрытия вкладки, а в этой секции скрипт кликает по ней.))

Отсутствует

 

№57024-11-2022 22:38:38

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1829
UA: Firefox 78.0

Re: UCF - ваши кнопки, темы, дополнения, скрипты…

https://hg.mozilla.org/mozilla-central/rev/49cefc94b9bd

Отсутствует

 

Board footer

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