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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№910127-08-2020 23:33:32

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. сделайте пожалуйста для user_chrome_files еще одну кнопку "Переключить Куки" из add_toolbar_buttons

Отсутствует

 

№910228-08-2020 01:52:00

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

Re: Настройка внешнего вида Firefox в userChrome.css

_zt пишет

AutoCloseBookMarkFolder + AutoCloseHistoryFolder + SidebarBookmarkSearchOpenFolder + undoBookmarksContextMenu.

Отличные скрипты, спасибо. Только не понял, как должен работать undoBookmarksContextMenu? У меня в контекстном меню закладок появились два неактивных пункта Undo и Redo, как их задействовать то?

Отсутствует

 

№910328-08-2020 02:23:51

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

Re: Настройка внешнего вида Firefox в userChrome.css

xrun1 пишет

У меня не цепляются скрипты.:( Что я сделал не так?

Если правильно помню, то в папке chrome создаёте файл userChrome.uc.js, а потом только в папку chrome закидываете файлы с расширением .uc.js, например SidebarBookmarkSearchOpenFolder.uc.js и всё работает.
CustomJSforFx/userChrome.uc.js at master · Aris-t2/CustomJSforFx · GitHub

Отсутствует

 

№910428-08-2020 02:41:18

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

Re: Настройка внешнего вида Firefox в userChrome.css

voqabuhe пишет

Undo и Redo, как их задействовать то?

Удалите закладку - увидите. ;) В принципе, этот файл особенно не нужен, горячие клавиши и так работают.
Виталий выше дал способ, как их прицепить в ucf.

Отредактировано xrun1 (28-08-2020 02:47:26)

Отсутствует

 

№910528-08-2020 04:00:03

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

Re: Настройка внешнего вида Firefox в userChrome.css

xrun1 пишет

Удалите закладку - увидите.

Теперь понятно, спасибо.

Отсутствует

 

№910628-08-2020 05:56:31

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

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Извиняюсь. Я тупил вчера. Это шаблон.
   
Подскажите для custom_script_win шаблон? И правильный ли это файл для этих скриптов? И не нужны ли в них правки, как в SidebarModoki?
Сами скрипты в предыдущем посте.
Вот этот шаблон попробовал, в итоге профиль пришлось из бэкапа восстанавливать, хотя поначалу все работало. )

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

Выделить код

Код:

setTimeout(() => {
            var loadScripts = ((name) => {
                try {
                    Services.scriptloader.loadSubScript(`chrome://user_chrome_files/content/custom_scripts/import/${name}`, window, "UTF-8");
                } catch(e) {}
            });
            loadScripts("s_ExtensionOptionsMenu.rus.uc.js");
            loadScripts("s_MemoryMinimizationButton.uc.js");
            loadScripts("s_ViewImageInTab.uc.js");
            loadScripts("s_Undo_CloseTab_Button.uc.js");
            // и так далее
        }, 0);

Отредактировано _zt (28-08-2020 07:26:01)

Отсутствует

 

№910728-08-2020 20:28:07

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

katari4688908 пишет

как то можно заменить песочные часы появившиеся на вкладках в 80-той. версии ?.  на то что было до этого. шарики там бегали по горизонтали

https://forum.mozilla-russia.org/viewto … 76#p783576


В about:config создать числовой параметр ui.prefersReducedMotion — 0 https://forum.mozilla-russia.org/viewto … 88#p784488

Отредактировано sandro79 (29-08-2020 01:25:35)

Отсутствует

 

№910828-08-2020 21:55:18

razoo
Участник
 
Группа: Members
Зарегистрирован: 23-07-2009
Сообщений: 48
UA: Firefox 60.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

Проверяйте кто там этот стиль использует Вкладки ниже новый стиль для  78+

Попробовал разные подставки - не получается порядок:
     1. Закладки
     2 .Вкладки
     3. Навигация
Либо табы внизу остаются, либо букмарки от навигации не отрываются. И на 68 и на 78.
По большому счету, мне не нужны табы над контентом, мне нужны букмарки под меню.
Хотелось бы вернуть то, что я поддерживал в фф с 3 версии - с 2008! Any chance?

Отсутствует

 

№910929-08-2020 00:16:09

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2074
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

xrun1 пишет

Мне не важно, где код. Главное, что работает. Осталось вот так

ну если в  custom_script_all_win.js больше нет ничего и не будет то логичнее перенести код в custom_script_win.js
можно изменить по быстрому
load_scripts_by_url[location.href]?.(window);
на
load_scripts_by_url["chrome://browser/content/browser.xhtml"](window);

_zt пишет

Сделайте пожалуйста еще для этих, желательно так же, что бы можно было файлы в подпапку кинуть:
Extension Options Menu

этот для custom_script.js подходит, изменил, добавил там кое-чего
https://forum.mozilla-russia.org/viewto … 29#p784529

_zt пишет

MemoryMinimizationButton

этот подключайте к "chrome://browser/content/browser.xhtml"
а кнопку так же как с SidebarModoki.uc.js

_zt пишет

И эту как угодно - ViewImageInTab

это тоже к "chrome://browser/content/browser.xhtml" или в custom_script_win.js
document.querySelector("#context-viewimage").setAttribute("oncommand", 'openWebLinkIn(gContextMenu.imageURL,"tab")');

egorsemenov06 пишет

сделайте пожалуйста для user_chrome_files еще одну кнопку "Переключить Куки" из add_toolbar_buttons

Ну все расширение по частям разберут, вам же вроде Dumby делал для Куки?
razoo
Да можно сделать но не сочетается такое расположение с моим скриптом, так что только без него

Добавлено 29-08-2020 00:21:23

_zt пишет

Подскажите для custom_script_win шаблон?

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

Отредактировано Vitaliy V. (07-09-2020 12:13:04)

Отсутствует

 

№911029-08-2020 01:13:01

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

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Убрал из custom_script_all_win.js и заменил в custom_script_win.js. Всё работает, спасибо.

Отсутствует

 

№911129-08-2020 07:05:29

razoo
Участник
 
Группа: Members
Зарегистрирован: 23-07-2009
Сообщений: 48
UA: Firefox 60.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

Да можно сделать но не сочетается такое расположение с моим скриптом, так что только без него

Да просто отлично было бы и без скрипта. Если возможно.
Хотя бы понять, почему селектор #PersonalToolbar не работает.

Отсутствует

 

№911229-08-2020 09:53:16

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

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
MemoryMinimizationButton и ViewImageInTab подключил.
   
С ExtensionOptionsMenu проблемы.
Значки в конце строк не подхватываются, вместо "+" квадратик, "-" вообще нет.
Ниже скрины вашего и моего скриптов, обратите внимание, что у меня квадратик - символ, а в вашем варианте квадратик-кракозабрик, так как я ни чего в вашем варианте для скриншота не менял. Но для себя попробовал изменить символы на свои, картинка та же, не подхватываются.

скрытый текст
2020.1598682727.png 2020.1598682728.png

Мой скрипт, в том виде как он у меня работает:
скрытый текст

Выделить код

Код:

// ==UserScript==
// @name            s_ExtensionOptionsMenu.rus
// @include         main
// @startup         UC.extensionOptionsMenu.exec(win);
// @shutdown        UC.extensionOptionsMenu.destroy();
// @onlyonce
// ==/UserScript==

// original: https://addons.mozilla.org/en-US/firefox/addon/extension-options-menu/

(function () {
  'use strict';

  UC.extensionOptionsMenu = {
    exec: function (win) {
      var document = win.document;
      var sspi = document.createProcessingInstruction(
        'xml-stylesheet',
        'type="text/css" href="data:text/css,' + encodeURIComponent(UC.extensionOptionsMenu.style) + '"'
      );
      document.insertBefore(sspi, document.documentElement);
      UC.extensionOptionsMenu.styles.push(sspi);
    },

    // config
    showVersion:    true,
    showHidden:     true,
    showDisabled:   true,
    autoRestart:    false,
    enabledFirst:   false,
    blackListArray: [],

    populateMenu: function (event) {
      var prevState;
      var showItem = true;
      var popup = event.currentTarget;
      var document = event.view.document;

      while (popup.hasChildNodes())
        popup.removeChild(popup.firstChild);

      var addons;
      (async () => {
        addons = await AddonManager.getAddonsByTypes(['extension']);
      })();

      var thread = Services.tm.mainThread;
      while (addons === undefined)
        thread.processNextEvent(true);

      addons.sort((a, b) => {
        var enabledFirst = UC.extensionOptionsMenu.enabledFirst;
        var ka = (enabledFirst ? a.isActive ? '0' : '1' : '') + ' ' + a.name.toLowerCase();
        var kb = (enabledFirst ? b.isActive ? '0' : '1' : '') + ' ' + b.name.toLowerCase();
        return (ka < kb) ? -1 : 1;
      }).forEach(addon => {
        if (!addon.appDisabled && ((addon.isActive && addon.optionsURL)
            || ((addon.userDisabled && UC.extensionOptionsMenu.showDisabled)
            || (!addon.hidden || UC.extensionOptionsMenu.showHidden)))) {
          var state = addon.isActive;
          if (UC.extensionOptionsMenu.enabledFirst && (prevState && state !== prevState))
            popup.appendChild(document.createXULElement('menuseparator'));
          prevState = state;

          var mi = document.createXULElement('menuitem');
          var label = addon.name;
          if (UC.extensionOptionsMenu.showVersion)
            label = label += ' ' + addon.version;
          mi.setAttribute('label', label);
          mi.setAttribute('class', 'menuitem-iconic');
          mi.setAttribute('tooltiptext', addon.description + '\nID : ' + addon.id + '\n\nЛКМ            :  Настройки\nПКМ            :  Откл. / Включить\nСКМ            :  Домашняя страница\nCtrl + ЛКМ :  Открыть архив\nCtrl + ПКМ :  Деинсталлировать\nCtrl + СКМ :  Копировать ID');
          var icon = addon.iconURL || addon.iconURL64 || UC.extensionOptionsMenu.iconURL || '';
          mi.setAttribute('image', icon);
          mi.addEventListener('click', UC.extensionOptionsMenu.handleClick);
          mi._Addon = addon;

          UC.extensionOptionsMenu.setDisable(mi, addon, 0);

          if (UC.extensionOptionsMenu.blackListArray) {
            for (var i = 0; i < UC.extensionOptionsMenu.blackListArray.length; i++) {
              if (UC.extensionOptionsMenu.blackListArray[i] == addon.id.toLowerCase()) {
                showItem = false;
                break;
              } else {
                showItem = true;
              }
            }
          }
          if (showItem)
            popup.appendChild(mi);
        }
      });
    },

    handleClick: function(event) {
      var win = event.view;
      var mi = event.currentTarget;
      if (!('_Addon' in mi)) {
        return;
      }

      var addon = mi._Addon;
      var pending = addon.pendingOperations & AddonManager.PENDING_UNINSTALL;
      var hasMdf = event.ctrlKey || event.shiftKey || event.altKey || event.metaKey;

      switch (event.button) {
        case 0:
          if (addon.optionsURL && !hasMdf)
            UC.extensionOptionsMenu.openAddonOptions(addon, win);
          else if (event.ctrlKey)
            UC.extensionOptionsMenu.browseDir(addon);
          break;
        case 1:
          if (addon.homepageURL && !hasMdf) {
            openURL(addon.homepageURL);
            closeMenus(mi);
          } else if (event.ctrlKey) {
            Cc['@mozilla.org/widget/clipboardhelper;1'].getService(Ci.nsIClipboardHelper).copyString(addon.id);
            closeMenus(mi);
          }
          break;
        case 2:
          if (!hasMdf) {
            if (addon.userDisabled)
              addon.enable();
            else
              addon.disable();
            UC.extensionOptionsMenu.setDisable(mi, addon, 1);
            if (addon.operationsRequiringRestart && UC.extensionOptionsMenu.autoRestart)
              if ('BrowserUtils' in window)
                BrowserUtils.restartApplication();
              else
                Application.restart();
          } else if (event.ctrlKey) {
            if (Services.prompt.confirm(null, null, 'Delete ' + addon.name + ' permanently?')) {
              if (pending)
                addon.cancelUninstall();
              else {
                addon.uninstall();
                return;
              }
              cls.remove('restartless');
              cls.remove('enabling');
              cls.remove('disabling');
              cls.add('uninstalling');
              cls.add('disabled');
            }
          }
      }
    },

    setDisable: function (mi, addon, toggling) {
      var cls = mi.classList;
      
      if (!addon.operationsRequiringRestart) {
        cls.add('restartless');
        
        if (toggling) {
          if (addon.isActive) {
            if (addon.optionsURL)
              cls.remove('noOptions');
            cls.remove('disabled');
            cls.remove('disabling');
            cls.add('enabling');
          } else {
            cls.remove('enabling');
            cls.add('disabling');
          }
        }
      } else {
        if (toggling)
          if (addon.userDisabled)
            if (addon.isActive)
              cls.add('disabling');
            else
              cls.remove('enabling');
          else
            if (addon.isActive)
              cls.remove('disabling');
            else
              cls.add('enabling');
        else if (addon.userDisabled && addon.isActive)
          cls.add('disabling');
        else if (!addon.userDisabled && !addon.isActive)
          cls.add('enabling');
      }

      if (!addon.isActive)
        cls.add('disabled');

      if (!addon.optionsURL)
        cls.add('noOptions');
    },

    openAddonOptions: function (addon, win) {
      var optionsURL = addon.optionsURL;
      if (!addon.isActive || !optionsURL)
        return;

      switch (Number(addon.optionsType)) {
        case 2:
        case 5:
          BrowserOpenAddonsMgr('addons://detail/' + encodeURIComponent(addon.id) + '/preferences');
          break;
        case 3:
          'switchToTabHavingURI' in win ? win.switchToTabHavingURI(optionsURL, true) : openTab('contentTab', { contentPage: optionsURL });
          break;
        default:
          openDialog(optionsURL, addon.name, 'chrome,titlebar,toolbar,resizable,scrollbars,centerscreen,dialog=no,modal=no');
      }
    },

    browseDir: function (addon) {
      var dir = Services.dirsvc.get('ProfD', Ci.nsIFile);
      var nsLocalFile = Components.Constructor('@mozilla.org/file/local;1', 'nsIFile', 'initWithPath');
      dir.append('extensions');
      dir.append(addon.id);
      if (!dir.exists()) {
          dir = dir.parent;
          dir.append(addon.id + '.xpi');
      }
      dir.launch();
    },

    iconURL:      'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABaUlEQVQ4y6WTW0sCQRiG/SEpVBDUVVfphbAEhWAlqYhrLWUlER2IIgrqYkEp6SBmudWiFf0SiSCwpAI7bJnprq6H/sTbGhJiEyt28fAN7zfz8DHDaABo/oPqBpovX7j4T1gOS6dNCcYiZbhOSrCHi2hugqNCwskVYNmXbxoSuPkCN3NWhCdahLLGKCfDcSBjOJiHeTeHPr8EyifCwGb9RMF0RIaHl+E+zoMJ5+AM5WALSBjaEWHayqLXm4GR/YB+Iw2iYIKTMB6WwIRE0EER9r0s+r1pGNZT6F55ReeigPb5F7TOPpMFTDCDkUAGA753GFYFdC08QedJEvkR2DbfzuntFBz+1K2ZFdCz9Ii2qQfo3Pck2MoZpVI/AqtXQAXjchIdk3fQMok/Ib6CaS0Z1c8pdlc8pqXjUOF7AqVSxDvQOq7RKERBi/UKdbDVnK3vkQWWS9Si1vstGIyxCqiBquZUXc429BfU+AL9Tqy8Q2Za8AAAAABJRU5ErkJggg==',
    
    style: `
      @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
      .restartless label:after { font-size: 18px; content:"☑"; }
      .enabling label:after { content:"☑" !important; }
      .disabling label:after { content:"☐" !important; }
      .uninstalling label:after { content: '!' !important; }
      .noOptions label { color: gray; }
      .disabled label { color: orange; font-style: italic; }
      .disabled label:after { content:"☐" !important; }
    `,

    styles: [],

    init: function() {
      CustomizableUI.createWidget({
        id: 'eom-button',
        type: 'custom',
        defaultArea: CustomizableUI.AREA_NAVBAR,
        onBuild: function (aDocument) {
          var toolbaritem = aDocument.createXULElement('toolbarbutton');
          var props = {
            id: 'eom-button',
            label: 'Extension Options Menu',
            tooltiptext: 'Extension Options Menu',
            type: 'menu',
            class: 'toolbarbutton-1 chromeclass-toolbar-additional',
            style: 'list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABaUlEQVQ4y6WTW0sCQRiG/SEpVBDUVVfphbAEhWAlqYhrLWUlER2IIgrqYkEp6SBmudWiFf0SiSCwpAI7bJnprq6H/sTbGhJiEyt28fAN7zfz8DHDaABo/oPqBpovX7j4T1gOS6dNCcYiZbhOSrCHi2hugqNCwskVYNmXbxoSuPkCN3NWhCdahLLGKCfDcSBjOJiHeTeHPr8EyifCwGb9RMF0RIaHl+E+zoMJ5+AM5WALSBjaEWHayqLXm4GR/YB+Iw2iYIKTMB6WwIRE0EER9r0s+r1pGNZT6F55ReeigPb5F7TOPpMFTDCDkUAGA753GFYFdC08QedJEvkR2DbfzuntFBz+1K2ZFdCz9Ii2qQfo3Pck2MoZpVI/AqtXQAXjchIdk3fQMok/Ib6CaS0Z1c8pdlc8pqXjUOF7AqVSxDvQOq7RKERBi/UKdbDVnK3vkQWWS9Si1vstGIyxCqiBquZUXc429BfU+AL9Tqy8Q2Za8AAAAABJRU5ErkJggg==)',
            onclick: 'if (event.button === 1) BrowserOpenAddonsMgr("addons://list/extension");'
          };
          for (var p in props) {
            toolbaritem.setAttribute(p, props[p]);
          }
          var mp = toolbaritem.appendChild(document.createXULElement('menupopup'));
          mp.setAttribute('id', 'eom-button-popup');
          mp.setAttribute('onclick', 'event.preventDefault(); event.stopPropagation(); setTimeout(function () { document.getElementById("toolbar-context-menu").hidePopup(); }, 0);');
          mp.addEventListener('popupshowing', UC.extensionOptionsMenu.populateMenu);

          return toolbaritem;
        }
      });
    },

    destroy: function () {
      CustomizableUI.destroyWidget('eom-button');
      UC.extensionOptionsMenu.styles.forEach(s => s.parentNode.removeChild(s));
      delete UC.extensionOptionsMenu;
    }
  }

  UC.extensionOptionsMenu.init();

})()


Мне понравилось, что вы разрешения добавили. Хотелось бы еще uuid в подсказку (после ID) и сочетание клавиш для копирования uuid. И, если можно, добавить сочетание клавиш для перехода на страницу автора, так как часто домашняя страница мусор.
скрытый текст
2020.1598683243.png

И еще просьба СКМ задействовать для источников и домашней страницы, а не для остальных пунктов.

Отсутствует

 

№911329-08-2020 10:00:40

katari4688908
Участник
 
Группа: Members
Зарегистрирован: 30-01-2019
Сообщений: 29
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

sandro79 пишет

В about:config создать числовой параметр ui.prefersReducedMotion — 0

спасибо. за бегающую точку в место песочных часов.

Отредактировано katari4688908 (29-08-2020 14:29:17)

Отсутствует

 

№911429-08-2020 10:27:46

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет
egorsemenov06 пишет

сделайте пожалуйста для user_chrome_files еще одну кнопку "Переключить Куки" из add_toolbar_buttons

Ну все расширение по частям разберут, вам же вроде Dumby делал для Куки?

Нет  Dumby делал для voqabuhe но она черезчур мудренная.Не откажите пожалуйста в моей просьбе

Отредактировано egorsemenov06 (29-08-2020 10:44:29)

Отсутствует

 

№911529-08-2020 11:11:59

ulver73
Участник
 
Группа: Members
Зарегистрирован: 03-05-2020
Сообщений: 26
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

Здравствуйте, как удалить с контекстного меню пункт { исследовать свойства поддержки доступности}

Отсутствует

 

№911629-08-2020 11:30:20

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

Re: Настройка внешнего вида Firefox в userChrome.css

ulver73
Настройки >> Приватность и защита. Там отключите.

Отсутствует

 

№911729-08-2020 12:12:05

ulver73
Участник
 
Группа: Members
Зарегистрирован: 03-05-2020
Сообщений: 26
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

_zt где именно?
отключить Службу поддержки доступности не помогает

Отредактировано ulver73 (29-08-2020 12:27:04)

Отсутствует

 

№911829-08-2020 13:43:08

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

ulver73

Здравствуйте, как удалить с контекстного меню пункт { исследовать свойства поддержки доступности}

Здравствуйте. Решение под последним спойлером, в созданной вчера теме.

отключить Службу поддержки доступности не помогает

Ну да, не помогает. Это в 78 "поможет", потому что данного пункта меню там нет и в помине.


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

Выделить код

Код:

#context-inspect-a11y {
  display: none !important;
}

Отредактировано sandro79 (30-08-2020 01:52:18)

Отсутствует

 

№911929-08-2020 14:16:31

ulver73
Участник
 
Группа: Members
Зарегистрирован: 03-05-2020
Сообщений: 26
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

sandro79 благодарю!

Отсутствует

 

№912029-08-2020 19:14:46

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2074
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

razoo

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

Выделить код

Код:

@-moz-document url("chrome://browser/content/browser.xhtml") {
*|*:root {
    --v-toolbar-menubar-height: 28px; /* высота панели меню, только чётные числа не меньше 20px,
    если изменяете эту переменную то и в --v-toolbar-menubar-height-content - атрибут height= нужно установить ровно в 4 раза больше*/
    --v-toolbar-menubar-height-content: url("data:image/svg+xml,<svg width='28' height='112' xmlns='http://www.w3.org/2000/svg'><rect x='0' y='0' width='100%' height='100%' style='fill:transparent;'/></svg>");  /* height='4 * --v-toolbar-menubar-height' */
}
#navigator-toolbox {
    border-top: none !important;
    box-shadow: none !important;
    padding-top: 0 !important;
    -moz-appearance: none !important;
    appearance: none !important;
}
*|*:root:not([inFullscreen])[tabsintitlebar] #navigator-toolbox {
    position: relative !important;
}
#navigator-toolbox > toolbar {
    -moz-box-ordinal-group: 10 !important;
}
#navigator-toolbox > #nav-bar {
    -moz-box-ordinal-group: 2 !important;
}
#navigator-toolbox > #PersonalToolbar {
    margin-block: 0 !important;
    box-shadow: none !important;
    -moz-box-ordinal-group: 0 !important;
    padding-inline: 0 !important;
    background: none !important;
    border: none !important;
    color: inherit !important;
}
*|*:root:not(:is([inFullscreen],[chromehidden~="menubar"])) #navigator-toolbox::before {
    content: "" !important;
    display: -moz-box !important;
    height: var(--v-toolbar-menubar-height) !important;
    -moz-box-ordinal-group: 0 !important;
    visibility: visible !important;
}
*|*:root:not([inFullscreen])[tabsintitlebar] > *|body::before {
    content: var(--v-toolbar-menubar-height-content) !important;
    display: -moz-box !important;
    -moz-box-flex: 0 !important;
    -moz-box-orient: vertical !important;
    -moz-box-pack: start !important;
    -moz-box-align: stretch !important;
    -moz-box-ordinal-group: 0 !important;
    margin-bottom: calc(-4 * var(--v-toolbar-menubar-height)) !important;
    box-sizing: content-box !important;
}
*|*:root:not([inFullscreen])[tabsintitlebar][sizemode="normal"] > *|body::before {
    -moz-appearance: -moz-window-titlebar !important;
    appearance: -moz-window-titlebar !important;
}
*|*:root:not([inFullscreen])[tabsintitlebar][sizemode="maximized"] > *|body::before {
    -moz-appearance: -moz-window-titlebar-maximized !important;
    appearance: -moz-window-titlebar-maximized !important;
}
*|*:root:not([inFullscreen])[tabsintitlebar]:-moz-lwtheme > *|body::before {
    visibility: hidden !important;
}
#navigator-toolbox > #titlebar {
    -moz-appearance: none !important;
    appearance: none !important;
    position: static !important;
    -moz-box-ordinal-group: 1 !important;
}
#navigator-toolbox::after {
    -moz-box-ordinal-group: 100 !important;
}
#toolbar-menubar {
    padding-block: 0 !important;
    margin-block: 0 !important;
    border: none !important;
    background: none !important;
    --toolbarbutton-outer-padding: 0px !important;
    --toolbarbutton-inner-padding: calc((var(--v-toolbar-menubar-height) - 16px) / 2) !important;
    -moz-appearance: none !important;
    appearance: none !important;
}
*|*:root:not(:is([inFullscreen],[chromehidden~="menubar"])) #toolbar-menubar {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: row !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    height: var(--v-toolbar-menubar-height) !important;
    overflow: hidden !important;
}
#toolbar-menubar *|*.toolbarbutton-badge {
    margin-inline-end: calc(-1 * (var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding))) !important;
}
*|*:root:not([inFullscreen]) #toolbar-menubar > :is(toolbaritem,toolbarbutton) {
    align-self: center !important;
}
*|*:root:not([inFullscreen]) #toolbar-menubar > :is(#menubar-items,#wrapper-menubar-items,.titlebar-buttonbox-container) {
    align-self: flex-start !important;
}
*|*:root:not([inFullscreen]) #toolbar-menubar > * {
    padding-block: 0 !important;
    margin-block: 0 !important;
}
*|*:root:not([inFullscreen]) #toolbar-menubar[autohide="true"][inactive="true"]:not([customizing="true"]) > *:not(.titlebar-buttonbox-container) {
    opacity: 0 !important;
    pointer-events: none !important;
}
*|*:root[inFullscreen] #toolbar-menubar {
    visibility: collapse !important;
}
*|*:root:not([inFullscreen]) #toolbar-menubar > :is(*[style*="-moz-box-ordinal-group: 1000;"],.titlebar-buttonbox-container) {
    order: 1000 !important;
}
*|*:root:not([inFullscreen]) #toolbar-menubar > :is(toolbarspring,spacer,[id^="wrapper-customizableui-special-spring"]) {
    flex-grow: 1 !important;
}
*|*:root:not([inFullscreen]) #toolbar-menubar > :is(#search-container,#wrapper-search-container) {
    flex-grow: 100 !important;
}
#toolbar-menubar #search-container {
    padding-block: 0 !important;
}
#toolbar-menubar #searchbar {
    min-height: calc(var(--v-toolbar-menubar-height) - 2px) !important;
}
#TabsToolbar {
    -moz-appearance: none !important;
    appearance: none !important;
    padding-block: 0 !important;
    margin-block: 0 !important;
}
#TabsToolbar #tabbrowser-tabs {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
#TabsToolbar > .toolbar-items {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
#TabsToolbar .tab-background {
    border-top-style: solid !important;
}
#TabsToolbar .titlebar-buttonbox-container,
#TabsToolbar::after,
#TabsToolbar .titlebar-spacer:is([type="pre-tabs"],[type="post-tabs"]) {
    display: none !important;
}
@media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8) {
    @media (-moz-windows-classic: 0) {
*|*:root:not([inFullscreen])[sizemode="normal"] #toolbar-menubar:not([autohide="true"]) > #menubar-items {
    margin-top: 1px !important;
}
    }
}
@media (-moz-windows-classic) {
*|*:root:not([inFullscreen])[tabsintitlebar][sizemode="normal"] #navigator-toolbox::before {
    height: calc(var(--v-toolbar-menubar-height) + 4px) !important;
}
*|*:root:not([inFullscreen])[tabsintitlebar][sizemode="normal"]:-moz-lwtheme #navigator-toolbox::before {
    background-image: linear-gradient(to bottom, ThreeDLightShadow 0, ThreeDLightShadow 1px, ThreeDHighlight 1px, ThreeDHighlight 2px, ActiveBorder 2px, ActiveBorder 4px, transparent 4px) !important;
}
*|*:root:not([inFullscreen])[tabsintitlebar][sizemode="normal"] #toolbar-menubar {
    margin-top: 4px !important;
}
}
}


Но, только заметил что вы для [firefox] 68 спрашивали, этот стиль для 78 +, смысл в 68?


egorsemenov06

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

Выделить код

Код:

try {
    (() => {
        var id = "ucf-cookie-toggle",
        label = "Переключить Куки",
        tooltiptext = "ЛКМ: Переключить Куки\nСКМ: Удалить куки домена текущей страницы\nПКМ: Управление куками",
        img = "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='80' width='16' viewBox='0 0 48 240'><g><rect x='0' y='0' width='48' height='48' rx='3' ry='3' style='fill:rgb(243, 135, 37);'/><path style='opacity:0.25;fill:black;' d='M 18.9,48 11,40.1 5,22 14,8 28,5 40,10 48,18 V 45 C 48,46.7 46.7,48 45,48 Z'/><path style='fill:white;' d='M 40.6,23.2 C 31,20.5 31,20.5 31.8,10 24,16.2 24,16.2 15.2,10 17,18.8 17,18.8 7.38,23.2 16.2,27.5 16.2,27.5 15.2,38 24,32.8 24,32.8 31.8,37.7 31.8,27.5 31.8,27.5 40.6,23.2 Z M 45,23.2 C 45,34.5 35.4,45 24,45 12.6,45 3,34.5 3,23.2 3,11.8 12.6,3 24.1,3 35.4,3 45,11.8 45,23.2' /><path style='fill:white;' d='M 16,24.1 C 16,19.5 19.5,16 24.1,16 28.5,16 32,19.5 32,24.1 32,28.5 28.5,32 24,32 19.5,32 16,28.5 16,24.1' /><rect x='0' y='48' width='48' height='48' rx='3' ry='3' style='fill:rgb(243, 135, 37);'/><path style='opacity:0.25;fill:black;' d='M 19,96 10,87 4,70 12,56 30,51.8 48,69.8 V 93 C 48,94.7 46.7,96 45,96 Z'/><path style='fill:white;' d='M 24.6,58 C 24.6,58 24.6,63.2 15.6,58 17.4,67.6 17.4,67.6 7.5,71.2 16.5,75.5 16.5,75.5 15.6,86 24.6,80.8 24.6,86 24.6,86 Z M 24.6,51 C 27.3,51 30,51.8 30,51.8 V 92.2 C 30,92.2 27.3,93 24.6,93 12.9,93 3,82.5 3,71.2 3,59.8 12.9,51 24.6,51' /><path style='fill:white;' d='M 16,72 C 16,68 20.4,64 25,64 V 80 C 20.5,80 16,77 16,72' /><rect x='0' y='96' width='48' height='48' rx='3' ry='3' style='fill:rgb(209, 8, 3);'/><path style='opacity:0.25;fill:black;' d='M 18.7,144 11,136 4,119 13,103 28,100 41,107 48,114 V 141 C 48,142.7 46.7,144 45,144 Z'/><path style='fill:white;' d='M 40.6,120 C 32.8,116 32.8,116 31.8,106 24,111 24,111 15.2,106 15.2,116 15.2,116 7.38,120 15.2,124 15.2,124 15.2,134 24,129 24,129 31.8,134 32.8,124 32.8,124 40.6,120 Z M 45,120 C 45,131 35.4,141 24,141 12.6,141 3,131 3,120 3,107 12.6,99 24.1,99 35.4,99 45,107 45,120' /><path style='fill:none;stroke:white;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;' d='M 30,126 18,114' /><path style='fill:none;stroke:white;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;' d='M 18,126 30,114' /><rect x='0' y='144' width='48' height='48' rx='3' ry='3' style='fill:rgb(243, 135, 37);'/><path style='opacity:0.25;fill:black;' d='M 18.5,192 9.3,183 4,166 13,151 28,148 39.2,153 48,162 V 189 C 48,190.7 46.7,192 45,192 Z'/><path style='fill:white;' d='M 40.6,168 C 31,164 31,164 31.8,154 24,159 24,159 15.2,154 16.2,164 16.2,164 7.38,168 16.2,171 16.2,171 15.2,182 24.8,178 24,184 24,184 24,175 31,168 40.6,168 Z M 45,168 C 45,169 44.2,172 44.2,172 32.8,172 29.2,177 29.2,188 29.2,188 26.6,189 24,189 12.6,189 3,179 3,168 3,155 12.6,147 24.1,147 35.4,147 45,155 45,168' /><path style='fill:white;' d='M 16,168 C 16,164 19.5,160 24.1,160 28.4,160 32,164 32,168 32,173 28.5,176 24,176 19.5,176 16,173 16,168' /><rect x='0' y='192' width='48' height='48' rx='3' ry='3' style='fill:rgb(243, 135, 37);'/><path style='opacity:0.25;fill:black;' d='M 18.5,240 9.3,231 4,214 13,199 29.2,196 48,215 V 237 C 48,239 46.7,240 45,240 Z'/><path style='fill:white;' d='M 40.6,216 C 31,220 31,220 31.8,230 24,225 24,225 15.2,230 16.2,220 16.2,220 7.38,216 16.2,213 16.2,213 15.2,202 24.8,206 24,200 24,200 24,209 31,216 40.6,216 Z M 45,216 C 45,214 44.2,212 44.2,212 32.8,212 29.2,207 29.2,196 29.2,196 26.6,195 24,195 12.6,195 3,205 3,216 3,229 12.6,237 24.1,237 35.4,237 45,229 45,216' /><path style='fill:white;' d='M 16,216 C 16,212 19.5,208 24.1,208 28.4,208 32,212 32,216 32,221 28.5,224 24,224 19.5,224 16,221 16,216' /></g></svg>";

        var tbarbtns = {
            initialised: false,
            get network_cookie_cookieBehavior() {
                delete this.network_cookie_cookieBehavior;
                try {
                    return this.network_cookie_cookieBehavior = Services.prefs.getIntPref("network.cookie.cookieBehavior");
                } catch(e) { }
                return this.network_cookie_cookieBehavior = null;
            },
            init: function() {
                if (this.initialised) return;
                Services.prefs.addObserver("network.cookie.cookieBehavior", this);
                this.initialised = true;
            },
            prefToggleNumber: function(pref, next) {
                Services.prefs.setIntPref(pref, next[Services.prefs.getIntPref(pref)]);
            },
            getETDL: function(uri) {
                var eTLD;
                try {
                    eTLD = Services.eTLD.getBaseDomain(uri);
                } catch (e) {
                    eTLD = uri.asciiHost;
                }
                return eTLD;
            },
            viewCookies: function(win) {
                var uri = win.gBrowser.selectedBrowser.currentURI;
                try {
                    let _uri;
                    if (_uri = win.ReaderMode.getOriginalUrl(uri.spec))
                        uri = Services.io.newURI(_uri);
                } catch(e) {}
                uri = this.getETDL(uri);
                var _win = Services.wm.getMostRecentWindow("Browser:SiteDataSettings");
                var _setFilter = () => {
                    var filter = _win.document.querySelector("#searchBox");
                    if (!filter) return;
                    filter.value = uri;
                    filter.focus();
                    filter.dispatchEvent(new _win.Event("input", { bubbles: true }));
                };
                if (_win) {
                    _win.focus();
                    _setFilter();
                } else {
                    win.SiteDataManager.updateSites().then(() => {
                        _win = win.openDialog("chrome://browser/content/preferences/dialogs/siteDataSettings.xhtml", "Browser:SiteDataSettings", "chrome,dialog=no,centerscreen,resizable");
                        _win.addEventListener("DOMContentLoaded", function DOMLoad() {
                            _setFilter();
                        }, { once: true });
                    });
                }
            },
            observe: function(aSubject, aTopic, aData) {
                if (aData == "network.cookie.cookieBehavior") {
                    let network_cookie_cookieBehavior = tbarbtns.network_cookie_cookieBehavior = Services.prefs.getIntPref(aData),
                    getW = CustomizableUI.getWidget(id);
                    if (getW.instances.length)
                        for(let {node} of getW.instances)
                            try {
                                node.setAttribute("activated", network_cookie_cookieBehavior);
                            } catch(e) {}
                    else
                        for (let win of CustomizableUI.windows)
                            try {
                                getW.forWindow(win).node.setAttribute("activated", network_cookie_cookieBehavior);
                            } catch(e) {}
                }
            },
            uninit: function() {
                if (!this.initialised) return;
                Services.prefs.removeObserver("network.cookie.cookieBehavior", this);
                this.initialised = false;
            },
        };
        CustomizableUI.createWidget({
            id: id,
            type: "custom",
            label: label,
            tooltiptext: tooltiptext,
            localized: false,
            defaultArea: CustomizableUI.AREA_NAVBAR,
            onBuild: function(document) {
                var win = document.defaultView, toolbarbutton = document.createXULElement("toolbarbutton");
                toolbarbutton.id = id;
                toolbarbutton.className = "toolbarbutton-1 chromeclass-toolbar-additional";
                toolbarbutton.setAttribute("label", label);
                toolbarbutton.setAttribute("context", "false");
                toolbarbutton.setAttribute("tooltiptext", tooltiptext);
                var cookieBehavior = tbarbtns.network_cookie_cookieBehavior;
                if (cookieBehavior !== null) {
                    toolbarbutton.setAttribute("activated", cookieBehavior);
                    toolbarbutton.addEventListener("click", function(event) {
                        if (event.button == 0)
                            tbarbtns.prefToggleNumber("network.cookie.cookieBehavior", [1,2,3,4,0]);
                        else if (event.button == 1) {
                            (this._clearSiteData || ("gIdentityHandler" in win && "clearSiteData" in win.gIdentityHandler && (this._clearSiteData = win.eval(`(${`${win.gIdentityHandler.clearSiteData}`.replace(/^.*clearSiteData/, "async function clearSiteData").replace(/this\s*\./g, "gIdentityHandler.").replace(/PanelMultiView\.hidePopup.+;|event\.stopPropagation.+;/g, "")})`))) || (this._clearSiteData = function() {}))(event);
                        } else if (event.button == 2) {
                            event.preventDefault();
                            event.stopPropagation();
                            tbarbtns.viewCookies(win);
                        }
                    });
                }
                var btnstyle = "data:text/css;charset=utf-8," + encodeURIComponent(`
                    #${id} {
                        list-style-image: url("${img}") !important;
                       -moz-image-region: rect(0px, 16px, 16px, 0px) !important;
                    }
                    #${id}[activated="1"] {
                        -moz-image-region: rect(16px, 16px, 32px, 0px) !important;
                    }
                    #${id}[activated="2"] {
                        -moz-image-region: rect(32px, 16px, 48px, 0px) !important;
                    }
                    #${id}[activated="3"] {
                        -moz-image-region: rect(48px, 16px, 64px, 0px) !important;
                    }
                    #${id}[activated="4"] {
                        -moz-image-region: rect(64px, 16px, 80px, 0px) !important;
                    }
                `);
                try {
                    win.windowUtils.loadSheetUsingURIString(btnstyle, win.windowUtils.USER_SHEET);
                } catch (e) {}
                tbarbtns.init();
                return toolbarbutton;
            },
            onDestroyed: function(doc) {
                tbarbtns.uninit();
            },
        });
    })();
} catch(e) {}


_zt
Не вижу там никаких крякозябров, когда проверяете нужно отключать другой скрипт и стили заодно, т.к. очевидно что ваши квадратики попали на мой.
Забыл я селекторы изменить.
А "+" или "-" присутствуют, разумеется не всегда а только при переключении.

_zt пишет

Мне понравилось, что вы разрешения добавили

Добавил также отключение системных расширений, просмотр их файлов во вкладке

Отредактировано Vitaliy V. (01-09-2020 15:13:37)

Отсутствует

 

№912129-08-2020 19:29:38

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

egorsemenov06

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

Выделить код

Код:

try {
    (() => {
        var id = "ucf-cookie-toggle",
        label = "Переключить Куки",
        tooltiptext = "ЛКМ: Переключить Куки\nСКМ: Удалить куки домена текущей страницы\nПКМ: Управление куками",
        img = "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='80' width='16' viewBox='0 0 48 240'><g><rect x='0' y='0' width='48' height='48' rx='3' ry='3' style='fill:rgb(243, 135, 37);'/><path style='opacity:0.25;fill:black;' d='M 18.9,48 11,40.1 5,22 14,8 28,5 40,10 48,18 V 45 C 48,46.7 46.7,48 45,48 Z'/><path style='fill:white;' d='M 40.6,23.2 C 31,20.5 31,20.5 31.8,10 24,16.2 24,16.2 15.2,10 17,18.8 17,18.8 7.38,23.2 16.2,27.5 16.2,27.5 15.2,38 24,32.8 24,32.8 31.8,37.7 31.8,27.5 31.8,27.5 40.6,23.2 Z M 45,23.2 C 45,34.5 35.4,45 24,45 12.6,45 3,34.5 3,23.2 3,11.8 12.6,3 24.1,3 35.4,3 45,11.8 45,23.2' /><path style='fill:white;' d='M 16,24.1 C 16,19.5 19.5,16 24.1,16 28.5,16 32,19.5 32,24.1 32,28.5 28.5,32 24,32 19.5,32 16,28.5 16,24.1' /><rect x='0' y='48' width='48' height='48' rx='3' ry='3' style='fill:rgb(243, 135, 37);'/><path style='opacity:0.25;fill:black;' d='M 19,96 10,87 4,70 12,56 30,51.8 48,69.8 V 93 C 48,94.7 46.7,96 45,96 Z'/><path style='fill:white;' d='M 24.6,58 C 24.6,58 24.6,63.2 15.6,58 17.4,67.6 17.4,67.6 7.5,71.2 16.5,75.5 16.5,75.5 15.6,86 24.6,80.8 24.6,86 24.6,86 Z M 24.6,51 C 27.3,51 30,51.8 30,51.8 V 92.2 C 30,92.2 27.3,93 24.6,93 12.9,93 3,82.5 3,71.2 3,59.8 12.9,51 24.6,51' /><path style='fill:white;' d='M 16,72 C 16,68 20.4,64 25,64 V 80 C 20.5,80 16,77 16,72' /><rect x='0' y='96' width='48' height='48' rx='3' ry='3' style='fill:rgb(209, 8, 3);'/><path style='opacity:0.25;fill:black;' d='M 18.7,144 11,136 4,119 13,103 28,100 41,107 48,114 V 141 C 48,142.7 46.7,144 45,144 Z'/><path style='fill:white;' d='M 40.6,120 C 32.8,116 32.8,116 31.8,106 24,111 24,111 15.2,106 15.2,116 15.2,116 7.38,120 15.2,124 15.2,124 15.2,134 24,129 24,129 31.8,134 32.8,124 32.8,124 40.6,120 Z M 45,120 C 45,131 35.4,141 24,141 12.6,141 3,131 3,120 3,107 12.6,99 24.1,99 35.4,99 45,107 45,120' /><path style='fill:none;stroke:white;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;' d='M 30,126 18,114' /><path style='fill:none;stroke:white;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;' d='M 18,126 30,114' /><rect x='0' y='144' width='48' height='48' rx='3' ry='3' style='fill:rgb(243, 135, 37);'/><path style='opacity:0.25;fill:black;' d='M 18.5,192 9.3,183 4,166 13,151 28,148 39.2,153 48,162 V 189 C 48,190.7 46.7,192 45,192 Z'/><path style='fill:white;' d='M 40.6,168 C 31,164 31,164 31.8,154 24,159 24,159 15.2,154 16.2,164 16.2,164 7.38,168 16.2,171 16.2,171 15.2,182 24.8,178 24,184 24,184 24,175 31,168 40.6,168 Z M 45,168 C 45,169 44.2,172 44.2,172 32.8,172 29.2,177 29.2,188 29.2,188 26.6,189 24,189 12.6,189 3,179 3,168 3,155 12.6,147 24.1,147 35.4,147 45,155 45,168' /><path style='fill:white;' d='M 16,168 C 16,164 19.5,160 24.1,160 28.4,160 32,164 32,168 32,173 28.5,176 24,176 19.5,176 16,173 16,168' /><rect x='0' y='192' width='48' height='48' rx='3' ry='3' style='fill:rgb(243, 135, 37);'/><path style='opacity:0.25;fill:black;' d='M 18.5,240 9.3,231 4,214 13,199 29.2,196 48,215 V 237 C 48,239 46.7,240 45,240 Z'/><path style='fill:white;' d='M 40.6,216 C 31,220 31,220 31.8,230 24,225 24,225 15.2,230 16.2,220 16.2,220 7.38,216 16.2,213 16.2,213 15.2,202 24.8,206 24,200 24,200 24,209 31,216 40.6,216 Z M 45,216 C 45,214 44.2,212 44.2,212 32.8,212 29.2,207 29.2,196 29.2,196 26.6,195 24,195 12.6,195 3,205 3,216 3,229 12.6,237 24.1,237 35.4,237 45,229 45,216' /><path style='fill:white;' d='M 16,216 C 16,212 19.5,208 24.1,208 28.4,208 32,212 32,216 32,221 28.5,224 24,224 19.5,224 16,221 16,216' /></g></svg>";

        var tbarbtns = {
            initialised: false,
            get network_cookie_cookieBehavior() {
                delete this.network_cookie_cookieBehavior;
                try {
                    return this.network_cookie_cookieBehavior = Services.prefs.getIntPref("network.cookie.cookieBehavior");
                } catch(e) { }
                return this.network_cookie_cookieBehavior = null;
            },
            init: function() {
                if (this.initialised) return;
                Services.prefs.addObserver("network.cookie.cookieBehavior", this);
                this.initialised = true;
            },
            prefToggleNumber: function(pref, next) {
                Services.prefs.setIntPref(pref, next[Services.prefs.getIntPref(pref)]);
            },
            getETDL: function(uri) {
                var eTLD;
                try {
                    eTLD = Services.eTLD.getBaseDomain(uri);
                } catch (e) {
                    eTLD = uri.asciiHost;
                }
                return eTLD;
            },
            viewCookies: function(win) {
                var uri = win.gBrowser.selectedBrowser.currentURI;
                try {
                    let _uri;
                    if (_uri = win.ReaderMode.getOriginalUrl(uri.spec))
                        uri = Services.io.newURI(_uri);
                } catch(e) {}
                uri = this.getETDL(uri);
                var _win = Services.wm.getMostRecentWindow("Browser:SiteDataSettings");
                var _setFilter = () => {
                    var filter = _win.document.querySelector("#searchBox");
                    if (!filter) return;
                    filter.value = uri;
                    filter.focus();
                    filter.dispatchEvent(new _win.Event("input", { bubbles: true }));
                };
                if (_win) {
                    _win.focus();
                    _setFilter();
                } else {
                    win.SiteDataManager.updateSites().then(() => {
                        _win = win.openDialog("chrome://browser/content/preferences/dialogs/siteDataSettings.xhtml", "Browser:SiteDataSettings", "chrome,dialog=no,centerscreen,resizable");
                        _win.addEventListener("DOMContentLoaded", function DOMLoad() {
                            _setFilter();
                        }, { once: true });
                    });
                }
            },
            observe: function(aSubject, aTopic, aData) {
                if (aData == "network.cookie.cookieBehavior") {
                    let network_cookie_cookieBehavior = tbarbtns.network_cookie_cookieBehavior = Services.prefs.getIntPref(aData),
                    getW = CustomizableUI.getWidget(id);
                    if (getW.instances.length)
                        for(let {node} of getW.instances)
                            try {
                                node.setAttribute("activated", network_cookie_cookieBehavior);
                            } catch(e) {}
                    else
                        for (let win of CustomizableUI.windows)
                            try {
                                getW.forWindow(win).node.setAttribute("activated", network_cookie_cookieBehavior);
                            } catch(e) {}
                }
            },
            uninit: function() {
                if (!this.initialised) return;
                Services.prefs.removeObserver("network.cookie.cookieBehavior", this);
                this.initialised = false;
            },
        };
        CustomizableUI.createWidget({
            id: id,
            type: "custom",
            label: label,
            tooltiptext: tooltiptext,
            localized: false,
            defaultArea: CustomizableUI.AREA_NAVBAR,
            onBuild: function(document) {
                var win = document.defaultView, toolbarbutton = document.createXULElement("toolbarbutton");
                toolbarbutton.id = id;
                toolbarbutton.className = "toolbarbutton-1 chromeclass-toolbar-additional";
                toolbarbutton.setAttribute("label", label);
                toolbarbutton.setAttribute("context", "false");
                toolbarbutton.setAttribute("tooltiptext", tooltiptext);
                var cookieBehavior = tbarbtns.network_cookie_cookieBehavior;
                if (cookieBehavior !== null) {
                    toolbarbutton.setAttribute("activated", cookieBehavior);
                    toolbarbutton.addEventListener("click", function(event) {
                        if (event.button == 0)
                            tbarbtns.prefToggleNumber("network.cookie.cookieBehavior", [1,2,3,4,0]);
                        else if (event.button == 1) {
                            (this._clearSiteData || ("gIdentityHandler" in win && "clearSiteData" in win.gIdentityHandler && (this._clearSiteData = win.eval(`(${`${win.gIdentityHandler.clearSiteData}`.replace(/^.*clearSiteData/, "async function clearSiteData").replace(/this\s*\./g, "gIdentityHandler.").replace(/PanelMultiView\.hidePopup.+;|event\.stopPropagation.+;/g, "")})`))) || (this._clearSiteData = function() {}))(event);
                        } else if (event.button == 2) {
                            event.preventDefault();
                            event.stopPropagation();
                            tbarbtns.viewCookies(win);
                        }
                    });
                }
                var btnstyle = "data:text/css;charset=utf-8," + encodeURIComponent(`
                    #${id} {
                        list-style-image: url("${img}") !important;
                       -moz-image-region: rect(0px, 16px, 16px, 0px) !important;
                    }
                    #${id}[activated="1"] {
                        -moz-image-region: rect(16px, 16px, 32px, 0px) !important;
                    }
                    #${id}[activated="2"] {
                        -moz-image-region: rect(32px, 16px, 48px, 0px) !important;
                    }
                    #${id}[activated="3"] {
                        -moz-image-region: rect(48px, 16px, 64px, 0px) !important;
                    }
                    #${id}[activated="4"] {
                        -moz-image-region: rect(64px, 16px, 80px, 0px) !important;
                    }
                `);
                try {
                    win.windowUtils.loadSheetUsingURIString(btnstyle, win.windowUtils.USER_SHEET);
                } catch (e) {}
                tbarbtns.init();
                return toolbarbutton;
            },
            onDestroyed: function(doc) {
                tbarbtns.uninit();
            },
        });
    })();
} catch(e) {}

От души Огромнейшее ВАМ СПАСИБО!!!!

Отсутствует

 

№912229-08-2020 20:24:29

Xvost
Участник
 
Группа: Members
Откуда: Краматорск, Дружковка, Украина
Зарегистрирован: 03-11-2007
Сообщений: 138
UA: Firefox 81.0
Веб-сайт

Re: Настройка внешнего вида Firefox в userChrome.css

Как убрать значки папок из панели закладок?

Отсутствует

 

№912329-08-2020 20:38:45

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 80.0

Re: Настройка внешнего вида Firefox в userChrome.css

Xvost пишет

Как убрать значки папок из панели закладок?

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

Выделить код

Код:

#personal-bookmarks .bookmark-item[container] {
   display: none !important;
}

Отсутствует

 

№912429-08-2020 20:55:09

razoo
Участник
 
Группа: Members
Зарегистрирован: 23-07-2009
Сообщений: 48
UA: Firefox 60.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Это супер! Всё работает как надо. Плюс полезные ремарки в коде - сразу уменьшил высоту меню.
Ещё погоняю в разных режимах, допишу свои мелочи, но думаю ничего не сломается - тут виден компетентный подход.
Огромное Спасибо.

Но, только заметил что вы для [firefox] 68 спрашивали, этот стиль для 78 +, смысл в 68?

Вы правы, смысла нет.
Ещё раз благодраю.

Отсутствует

 

№912530-08-2020 00:02:39

Xvost
Участник
 
Группа: Members
Откуда: Краматорск, Дружковка, Украина
Зарегистрирован: 03-11-2007
Сообщений: 138
UA: Firefox 81.0
Веб-сайт

Re: Настройка внешнего вида Firefox в userChrome.css

sandro79 пишет
Xvost пишет

Как убрать значки папок из панели закладок?

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

Выделить код

Код:

#personal-bookmarks .bookmark-item[container] {
   display: none !important;
}

Хорошо, с этим разобрались. Теперь: нужно заменить текст у определённой папки на иконку. Я использую код:

Выделить код

Код:

#personal-bookmarks .bookmark-item[container][label="ПВ"] > .toolbarbutton-text {
	display: url('pv.bmp') !important;
}

Результата нет. Поправите меня, пожалуйста.

Отсутствует

 

Board footer

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