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

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№1480103-07-2020 08:01:46

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

Re: Custom Buttons

unter_officer пишет

возможно как-то реализовать это с помощью СВ?

Кнопка же инициализируется в некий момент времени, к которому,
некоторые реквесты уже могут уйти немодифированными, например,
первая вкладка при открытии браузера.


Поэтому, такому коду лучше бы разместиться в более подходящем месте,
от самого́ config.js и, может, вплоть до DOMContentLoaded систем uc(f).
Но, если это не критично, то да, можешь и из кнопки попробовать.
Набросок (для CB), чтобы было от чего оттолкнуться.

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

Выделить код

Код:

((g, id) => {
	addDestructor(r => r[5] == "e" && g[id]?.destroy());
	g[id] || ({
		check(channel) {
			var ua, {host} = channel.originalURI;

			if (host == "site1.org")
				ua = "User Agent 1";
			else if (host == "site2.com")
				ua = "User Agent 2";
			//else if (...

			ua && channel.setRequestHeader("User-Agent", ua, false);
		},
		init(topics) {
			var {obs} = Services;
			this.observe = subj => subj instanceof Ci.nsIHttpChannel && this.check(subj);
			obs.addObserver(g[id] = this, topics[0], false);
			obs.addObserver(this.destroy = () => delete g[id] && topics.forEach(
				(t, ind) => obs.removeObserver(ind ? this.destroy : this, t)
			), topics[1], false);
		}
	}).init(["http-on-modify-request", "quit-application-granted"]);
})(Cu.getGlobalForObject(Cu), "CBUserAgentRequestHeaderSetterObserver");

Andrey_Krropotkin пишет

Cu.isCrossProcessWrapper is not a function

Да-да, выброси, эта проверка давно уже неактуальна.

solombala пишет

Недьзя код рестарта подрихтовать? папки создаются при перезапуске в user/администратор

Не смог понять где создаются, но, в этом смысле, рихтовать в коде нечего.
Однако, нежелательные папки, наверно, можно удалить кодом.
Узнать, что лиса после рестарта (Services.startup.wasRestarted), и вперёд.


solombala пишет

И еще, как наэтот код предупредиловку сделать?

Чем обычный confirm() не угодил?

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

Выделить код

Код:

if (confirm("sure?")) {
	// OK detected!
	...
}

Отсутствует

 

№1480203-07-2020 09:32:06

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 77.0

Re: Custom Buttons

Dumby
Папки mozilla образуются в Local и Roaming и не хочу я их чистить, их не должно быть! Рестарт надо рихтовать , он явно не учитывает это: MOZ_LEGACY_PROFILES=1
MOZ_NO_REMOTE=1...Или гашу батником и запускаю тут же, но как вкладки (сессию) показать, как при рестарте?
Или, как это в батник впихнуть?
SessionStore.restoreLastSession();
Короче, нужен код Восстановить сессию при запуске, в префке, вроде, нет значения...

Отредактировано solombala (03-07-2020 12:39:53)

Отсутствует

 

№1480303-07-2020 13:11:22

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

Re: Custom Buttons

solombala пишет

Папки mozilla образуются в Local и Roaming

Не-а, ничего подобного.
Win10, portable32.dll 8.0.3, FF80.0a1

скриншот

Выделить код

Код:

data:image/png;base64,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

Отсутствует

 

№1480403-07-2020 13:26:02

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 78.0

Re: Custom Buttons

Dumby

Dumby пишет

portable32.dll 8.0.3

Так эта не дает мульти загасить! А, рестарт код какой?

Отсутствует

 

№1480503-07-2020 13:29:02

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 604
UA: Firefox 52.0

Re: Custom Buttons

Dumby пишет

Кнопка же инициализируется в некий момент времени, к которому,
некоторые реквесты уже могут уйти немодифированными, например,
первая вкладка при открытии браузера.


Поэтому, такому коду лучше бы разместиться в более подходящем месте,
от самого́ config.js и, может, вплоть до DOMContentLoaded систем uc(f).
Но, если это не критично, то да, можешь и из кнопки попробовать.
Набросок (для CB), чтобы было от чего оттолкнуться.

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

Выделить код

Код:

((g, id) => {
	addDestructor(r => r[5] == "e" && g[id]?.destroy());
	g[id] || ({
		check(channel) {
			var ua, {host} = channel.originalURI;

			if (host == "site1.org")
				ua = "User Agent 1";
			else if (host == "site2.com")
				ua = "User Agent 2";
			//else if (...

			ua && channel.setRequestHeader("User-Agent", ua, false);
		},
		init(topics) {
			var {obs} = Services;
			this.observe = subj => subj instanceof Ci.nsIHttpChannel && this.check(subj);
			obs.addObserver(g[id] = this, topics[0], false);
			obs.addObserver(this.destroy = () => delete g[id] && topics.forEach(
				(t, ind) => obs.removeObserver(ind ? this.destroy : this, t)
			), topics[1], false);
		}
	}).init(["http-on-modify-request", "quit-application-granted"]);
})(Cu.getGlobalForObject(Cu), "CBUserAgentRequestHeaderSetterObserver");

Dumby, мне нужно подменять UserAgent для пары-тройки сайтов, которые не загружаются при открытии браузера. Поэтому кнопка вполне подошла.
Большое спасибо!


«The Truth Is Out There»

Отсутствует

 

№1480603-07-2020 15:09:48

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

Re: Custom Buttons

solombala пишет

Так эта не дает мульти загасить!

Да неужели?

скриншот

Выделить код

Код:

data:image/png;base64,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

А, рестарт код какой?

Ну, я, конечно, алень, но не настолько же.
Код рестарта тестировался бит-в-бит в точности такой,
который был тобой предоставлен.

Отсутствует

 

№1480703-07-2020 18:11:07

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 78.0

Re: Custom Buttons

Dumby
Согласен. новая dll тоже гуд. в ini надо было дописать кое-что. Но...после рестарта падают настройки ublock ? как минимум две и фильтры не всегда срабатывают . Боюсь не только ublock. При моей фишке этого не происходит(через bat/vbs)...
Нужна помощь на этот код ...На "отмена" - надо отменить код в ini-    this._handleClick = () => ps.setIntPref(s, ps.getIntPref(s, 3) ? 0 : 3); т.е -на 0 выставить.

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

/*CODE*/
if (custombuttons.confirmBox(null, "Перезапустить с восстановлением вкладок ?", "Да", "Отмена") ) {
   
   
     var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         file.initWithPath(file.path + "\\memreduct\\fox.vbs");
file.launch(); 
       
}

код в ini
скрытый текст

Выделить код

Код:

/*Initialization Code*/

(ps => {
    var s = "browser.startup.page";

    this._handleClick = () => ps.setIntPref(s, ps.getIntPref(s, 3) ? 0 : 3);

    
})(Services.prefs);


this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };  
this.tooltipText= "ЛКМ: Рестарт";
  
;

Отредактировано solombala (04-07-2020 21:28:39)

Отсутствует

 

№1480809-07-2020 01:19:38

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 604
UA: Firefox 52.0

Re: Custom Buttons

Dumby.
Можно ли добавить в эту кнопку возможность восстановления выбранной сессии (из ранее сохраненных) при открытии браузера.

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

Выделить код

Код:

/*Initialization Code*/

// Simple Session Manager (https://forum.mozilla-russia.org/viewtopic.php?pid=744023#p744023) ..........

// Подсказки для кнопки .....
this.tooltipText = "Simple Session Manager\n\
------------------------------\n\
Л:   Меню сессий\n\
дЛ: Сохранить сессию\n\
П:   CB меню";

// Настройка функций кликов мыши .....
this.onmousedown =e=> {

  this.onmouseup =e=> {        // левый клик
    if ( e.button ) return;
    clearTimeout(self.timer);
    self._handleClick =()=> menupopup.openPopup(this, "after_start");
  }

  if ( e.button == 0 ) {       // длинный левый клик
    self.timer = setTimeout(()=> {
    self.onmouseup = '';
      saveCurrentSession();
    }, 500);
  }

  if ( e.button == 2 ) {       // правый клик
    gShowPopup(this);
  }

}
self.onclick =e=> e.preventDefault();


var menupopup = self.appendChild(document.createXULElement("menupopup"));
menupopup.id = "ssm_menupopup";

var scs = document.createXULElement("menuitem");
scs.setAttribute("label", "Сохранить сессию");
scs.setAttribute("class", "menuitem-iconic");
scs.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKVSURBVHjajFNNTBNREJ6+7na73bLbQn8I0BKNCYWKGr0oYoiJPxeNh6oHozcOxgSVi4le1JNHQRPigRsewURNPKiJMQicSISUACelRVJ2tz/bdktpy9adBzT8xTjJ5L35ezNv5hsLHEAv7noEntguChx7EuV8oTydKRhfno8kCnt9LTuFZ7f87mAz/8rnl86GOoOBBq+LQX1S1ioLs0txWdEmsulS38Phlcy+BwZ6W0L+JsfolcjpsFDnBKNcgQ193bRUwSrwQFgr6Dkd3o9NzilqMdI/FF+sPYCZ245I4zdunw9DtQr6LxlK6bVdpdrcPAiHfGBYLDD69ltUXsmfw0oIGoPNjkHMjMHa3J9asDyRpoyEOrQR0+dq5MxR0c29Rj3Bhvn8YjeWjZmN9cpWcApSkzpkptYg8T1FdWjTfysg1Ang9YtdT+80OogTbJc7OlsD+OftzOqsBrMflqHe6QKXIEL00zLV0UpSBbM/G9DeEQy6OXKJsfPsCbdXYjb0Yu2/nmMS9LSGYGlYpXLPkxCwkq1mR98Gn8Q4XexxYhhgYKf3TPTfRDaPqklkvViaSSpaxSpw/x1v5e0UG8W10k+iW8qfF2ZiccIydFQ7ScsXKO8ep4NiYj4ai6k5+Eoev1F1Wcn8QJDgnAnHbGYRWTh800cZ77Ryzmr6eCGXzYGiZCcQ2vQ32XT5PiIMTJBI4Waw1ZtZzLu7XaSMd1s9b9paKJA+vpuKqols3y4ov7wXaPN67GPXIl1hnDOOansyVicHhGHMzHkzeDKqqPnr/UOJxX3LNNDb5BJd3KC3Uexu7wgEGxq3limRqcxH47FVWRtPreYePBpJagdu4zYhwjx1cMFus59CuVgqTmPDDlrnvwIMAGS8IFCLagHpAAAAAElFTkSuQmCC");
scs.addEventListener("command", saveCurrentSession, false);
menupopup.appendChild(scs);

var menusep = document.createXULElement("menuseparator"); // Сепаратор .....
menupopup.appendChild(menusep);


var savedSessions = loadFile(); // Сохраненный список .....
for (name in savedSessions) {
  makeitems(name);
}


// overwrite = 1 - Открыть сессию в текущем окне (все открытые вкладки будут закрыты) .....
// overwrite = 0 - Добавить вкладки в текущее окно (сессия будет добавлена к уже открытым вкладкам) .....
var overwrite = 1,
Cc = Components.classes,
Ci = Components.interfaces,
Cu = Components.utils,
SS = "nsISessionStore" in Components.interfaces ? ( Components.classes["@mozilla.org/browser/sessionstore;1"] || Components.classes["@mozilla.org/suite/sessionstore;1"] )
      .getService(Components.interfaces.nsISessionStore) : SessionStore;


if (!window.Services) { Cu.import("resource://gre/modules/Services.jsm"); }


// Функции работы с файлами .....
function saveFile(data) {
  var file = Services.dirsvc.get('UChrm', Ci.nsIFile);
  file.append("simple_session_manager.json");

  var suConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
  suConverter.charset = 'UTF-8';
  data = suConverter.ConvertFromUnicode(data);

  var foStream = Cc['@mozilla.org/network/file-output-stream;1'].createInstance(Ci.nsIFileOutputStream);
  foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0);
  foStream.write(data, data.length);
  foStream.close();
}

function loadFile() {
  var file = Services.dirsvc.get('UChrm', Ci.nsIFile);
  file.append("simple_session_manager.json");
  if (file.exists() === false) return false;
  var fstream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);
  var sstream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream);
  fstream.init(file, -1, 0, 0);
  sstream.init(fstream);

  var data = sstream.read(sstream.available());
    try { data = decodeURIComponent(escape(data)); } catch(e) {}
  sstream.close();
  fstream.close();
  if (data === "undefined") return false;
  data = JSON.parse(data);
  return data;
}


// Получить текущее время .....
function getTime() {
  var d = new Date();
    function addzero(t) {
      (t < 10) ? t = '0' + t : t;
      return t;
    }
  var t = addzero(d.getFullYear()) + '.' + addzero(d.getMonth()+1) + '.' + addzero(d.getDate()) + '-' + addzero(d.getHours()) + ':' + addzero(d.getMinutes()) + ':' + addzero(d.getSeconds());
  return t;
}


// Получить название вкладки .....
function getTabLabel() {
  var label = gBrowser.selectedTab.label;
  return label.substring(0, 70);
}


// Функции "prompt", "alert" и "confirm" от Dumby .....
// https://forum.mozilla-russia.org/viewtopic.php?pid=782149#p782149 .....
// https://forum.mozilla-russia.org/viewtopic.php?pid=782181#p782181 .....
var prompt = (msg, value) => {
  var res = {value};
  var ok = Services.prompt.wrappedJSObject
    .pickPrompter({domWin: window, modalType: Ci.nsIPrompt.MODAL_TYPE_WINDOW})
    .nsIPrompt_prompt(null, msg, res, null, {});
  return ok ? res.value : null;
}
var alert = msg => Services.prompt.wrappedJSObject
  .pickPrompter({domWin: window, modalType: Ci.nsIPrompt.MODAL_TYPE_WINDOW})
  .alert(null, msg);
var confirm = msg => Services.prompt.wrappedJSObject
  .pickPrompter({domWin: window, modalType: Ci.nsIPrompt.MODAL_TYPE_WINDOW})
  .confirm(null, msg);


// Сохранение сессий .....
function saveSession(ssdata) {
  var name = prompt('Сохранить:', getTabLabel() + ', ' + gBrowser.tabs.length + ' (B) ' + '[' + getTime() + ']' );
    if (name != null) {
      if (loadFile() === false) { var data = {}; }
      else { var data = loadFile(); }
        if (data[name]) { alert('Сессия с тем же именем уже существует!'); return; }
          data[name] = JSON.parse(ssdata);
          saveFile(JSON.stringify(data));
          makeitems(name);
    }
}


// Сохранить текущую сессию .....
function saveCurrentSession() {
  var ssdata = SS.getBrowserState();
  saveSession(ssdata);
}


// Удалить сессию .....
function remove() {
  var node = this.parentNode.parentNode;
  var name = node.getAttribute("label");
  var cf = confirm('Вы уверены, что хотите удалить ' + name + ' ?');
    if (cf === true) {
      node.style.display = "none";
      var data = loadFile();
      delete data[name];
      saveFile(JSON.stringify(data));
    }
}


// Переименовать сессию .....
function rename() {
  var node = this.parentNode.parentNode;
  var name = node.getAttribute("label");
  var newname = prompt('Переименовать ' + '"' + name + '"' + ' в:', 'введите новое имя');
  if (!newname) return;
  this.parentNode.parentNode.setAttribute("label", newname);
  var data = loadFile();
  var value = data[name];
  data[newname] = value;
  delete data[name];
  saveFile(JSON.stringify(data));
}


// Восстановить сессию .....
function restoreSession(stateString) {
  if (typeof stateString === "string") {
    var state = stateString;
  }
  else {
    var name = this.parentNode.parentNode.getAttribute("label");
    var data = loadFile();
    var state = JSON.stringify(data[name]);
  }
  switch (overwrite) {
    case 0:
    SS.setWindowState(window, state, false);
    break;

    case 1:
    SS.setBrowserState(state);
    break;
  }
}


// Создаем меню .....
function makeitems(name) {
  var ss = document.createXULElement("menu");
  ss.setAttribute("label", name);
  ss.setAttribute("class", "savedSessions");
  ss.className = "menu-iconic";
  ss.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAEnQAABJ0BfDRroQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAGxSURBVDiNnZE/T1NRGMZ/7zn3lmKLkIKpaUxZFINEJZ0YHXRwcnBxMQ6aOJi4+FH8Dm5OOjA4+AEYGCTRook1JlVIVUrbW/rnPg63UtReIr7bOXmf5/ye59jDlanHS3O+wn/Mu+/DF8HFeVe5f+vaPTdfPpF4UNvk6frmhwAvXOEsvrR0IoN47xM4CHCADmDQBkAHbdTrTBRZdgYLs6NTD/MiMC+gC8MO6ke8ffWsXv3S3JpksHouv7Z4/UEeM8z6IwKfEGjYRt0G1d3m1p3n0Y1JBi/vTtfKw1Yec2CHBDFmXYjboAgL4tTc5pXsmcNcDxIDUFQHuqgfYT69OAuE9qqAoX4jIcAL7b9H+0deOYYg3tkYXxx2EAo7dQYEBF/TEULD5oow7KHut18RhGVD3GwxMZ36YWn6IJd37vQCSMSNBpYQCMs43PQMAJXlwtr6k7CGfo9iznN1ebGY7Ak1NSJwYERYJgM+Q+nClVzp/OXc3wWMwdT+jAVKCMwLC2PUeoMrrEI4m94BQq0a6mxjoca/YKFgUCfeqR8jPhoHcIAHe3ST2+UFLv2T8o/5uMvrnx9Wn65p5nMEAAAAAElFTkSuQmCC");

  var ss_popup = document.createXULElement("menupopup");
  var rs = document.createXULElement("menuitem");
  rs.setAttribute("label", "Восстановить");
  rs.setAttribute("class", "menuitem-iconic");
  rs.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAACzElEQVQ4jX2QPWwbZRjHf+/5vfPdObZjO3Ga2pVpGtxCP4QIDKgqDCDUNQwgJCS2qFI3hBCRCvXSCcTAAu0GY0Fi4kuq+IjUCpWAgCTq4IpS3Di2G8c+x/bZ57t7mSJFMfBf/3p+z+95BPvy3pufxqKmcVY3ZFFKmQtFGIReuNnrDze6lv5TqfSyx4EIgA/e+fzkZML6MDmVnD80mz1kxW3DMAxQCs/z6Hb6g3q1Xt1ttdfa7dbFN668vrkHkADJhPntufNnc0LTDi7AjFkkUknzcGF2LvCDuZVvfiwCj+/1GoAmhL3x6x2cZhsVqjFIGIZs15ts/LJOJCLt/Z0EiE3Y9eLpR1ONaoMH9zbHAGiC9FSKkwunWF1Z3RoDABhRg/zRPPmj+XHA/0QDaLectFLj6gcT+AHdTm9mzMC27e766lrWtCwy2Qz2hIUeNVDAaDCku9ujWW/ij3wsO9oaMzCiunf66TMU5gt4wyGbf1Upr5W5u15mq1JDhYqZQo6HIuqtueLw4vLXzwC89NZXeQFw/ePv7zx5buHEf6nf3qgMVipOGE0ko6EKhoQi3NnZ+c51BwsaQLOxM9N1uv86vNtz+aHSDn0pH9S2tl6r/Pn3s/VG/WYunzs/NZ2OSID0dKpRrzZS98v3kYbEsi1004BQcbtc9Q07bdYb229/dvmFL5aWVvVts9mq1Wo/e54vJIAQqGOPzQHgj3zcvos39BAIBshRqJQYjYZ/AFy79tQIeHVx+ctiIDRTA+g43Xud9q4PIHVJPBknk82QzqY5VZg2UUrEYhOX9s5aXL5RnMykb8Rj9kcC4OrSVZ1Hpt+PJ5PPz+SzR5KpyYRpGgRKMei7fHLr7lBmZ1XHcX4LgsCxLPt4JBLRm82Hr4j9DyuVSprdO/ZELGafkXpkXtPA94OK03Vv/R4/csEw5XOGbuieN6y6bv/S9XdfvPkPTgcoDlpQJpwAAAAASUVORK5CYII=");
  rs.addEventListener("command", restoreSession, false);

  var rn = document.createXULElement("menuitem");
  rn.setAttribute("label", "Переименовать");
  rn.setAttribute("class", "menuitem-iconic");
  rn.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPFJREFUeNrEU0sOgkAMbc1IIHoQT+KeY7hkBW5ccwLdsOICxI2X8peIGhggI21gggpCwsImM01f+tpOO0WlFIwR0efgeR5nsG0boihizPd91A5UwZDjuq5qwycwUkQYhttSr4Y4l76fDdtBEAQqz3OVZdnPQ09o2sQhrpBSQgnAen/qzLxZzljHcawxy7KAuCJNUyiKAm53SS0FBGQNlUW3lFO2iVCLYRhAXJEkCQPn65NGAswpL/4fWAebt1ZGXB3geHlw9maXsKqjS94CHNxF7xRM0/wKgI7jDBojvbnZAz3Gv/9E7NvGvmXCsev8EmAAWocA9ofpaRIAAAAASUVORK5CYII=");
  rn.addEventListener("command", rename, false);

  var rm = document.createXULElement("menuitem");
  rm.setAttribute("label", "Удалить");
  rm.setAttribute("class", "menuitem-iconic");
  rm.setAttribute("image", "data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABt0lEQVQ4ja2RT2sTURTFz8tk0nntFAQrVLBQxIUg/tkkMoLyIEVECHZhNrrxI+hOP5Mb6eBCcEipYIjZ2LpvhFasUtBSkwzOve+6mE6YSScuxLt67753fudyLvA/a7T+qCHmiTfrfWCMd3j9diPfq2SHX+uPnzJx71gP33w3bX9avBcE2j+SkK30Di7ffJ71VebMxD1hC2GGEEfH41prpftynIm92A0t2aYQQYgBThrndz/2KwCgf9Z2LNtImFOAtc356ijcCwJdJrZEUWzPfJpMAAAStPWR/h2Ktc10CoIQRUKEabFNvNbKfndcAKSjtrVfHW5YorWTzxDKYAxLtOWM+P7yt51hIYPpsDTNTyB/EwNAtWxdMuV8GCfbgxjxIviUYSV/SQOrbVjitbx4N8alBeXcdZR+3Tl3xS8FlIkt0dbnWH3xlbPgKgUo3HEq+tX7C4EuAAbGeOmqCuLIJt69s3PeQ1epKGfapCQJO6vGmwAWf/C1Wau6td8dV123BaAAUfHw6gSwtP3ugxA/y6X9INszAOQgbwFAIC/MQb9/Kv2vF2/UByejlVVn1Xiby/X6rPd/qj/1ak71UYKuwQAAAABJRU5ErkJggg==");
  rm.addEventListener("command", remove, false);

  ss_popup.appendChild(rs);
  ss_popup.appendChild(rn);
  ss_popup.appendChild(rm);
  ss.appendChild(ss_popup);
  menupopup.appendChild(ss);
}

Отредактировано unter_officer (09-07-2020 01:22:09)


«The Truth Is Out There»

Отсутствует

 

№1480909-07-2020 21:10:28

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

Re: Custom Buttons

solombala пишет

Нужна помощь на этот код ...На "отмена" - надо отменить код в ini-    this._handleClick = () => ps.setIntPref(s, ps.getIntPref(s, 3) ? 0 : 3); т.е -на 0 выставить.

Не смог понять зачем держать такой «код в ini», если «На "отмена" - надо отменить».
Но раз «на 0 выставить» — так выстави, просто допиши в Код
else Services.prefs.setIntPref("browser.startup.page", 0);


unter_officer пишет

Можно ли добавить в эту кнопку возможность восстановления выбранной сессии (из ранее сохраненных) при открытии браузера.

Вот прям при открытии, ну разве что на выходе подменить.
Выбор сессии — двойной ЛКМ по соответствующему пункту.
Код добавить в конец.

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

Выделить код

Код:

((g, id, pref, {obs, prefs, ww, dirsvc}, style) => {
	var popup = scs.parentNode;
	addEventListener("dblclick", g[id] || (g[id] = {
		get name() {
			return prefs.getStringPref(pref, null);
		},
		init() {
			obs.addObserver(this, "quit-application", false);
			prefs.addObserver(pref, this.upd = () => {
				var {name} = this;
				for(var win of ww.getWindowEnumerator("navigator:browser")) 
					win.toolbar.visible && this.updPopup(win, name);
				this.oldName = null;
			});
			var st = new Image().style;
			st.cssText = style;
			this.style = st.cssText;
			this.handleMuts = this.handleMuts.bind(this);
			return this;
		},
		destroy(reason) {
			delete g[id];
			obs.removeObserver(this, "quit-application");
			prefs.removeObserver(pref, this.upd);
			reason == "delete" && prefs.clearUserPref(pref);
		},
		observe(s, t, data) {
			this.destroy();
			if (data.includes("restart")) return;
			var {name} = this;
			if (name == null) return;
			var file = dirsvc.get("UChrm", Ci.nsIFile);
			file.append("simple_session_manager.json");
			var state;
			try {state = JSON.parse(Cu.readUTF8File(file))[name];} catch {}
			if (!state) return prefs.clearUserPref(pref);

			g.SessionStoreInternal.getCurrentState = () => state;
			prefs.setBoolPref("browser.sessionstore.resume_session_once", true);
		},
		handleEvent(e) {
			if (!e.button && e.target.nodeName == "menu")
				e.target.label == this.name
					? prefs.clearUserPref(pref)
					: prefs.setStringPref(pref, e.target.label);
		},
		oldName: null,
		updPopup(win, name = this.name) {
			var {style} = this, popup = win.document.getElementById("ssm_menupopup");
			if (popup) for(var menu of popup.getElementsByTagName("menu"))
				if (
					this.oldName != null && menu.label == this.oldName
					&& !void(menu.label = name) || menu.label == name
				)
					menu.style.cssText += style;
				else {
					var css = menu.style.cssText;
					if (css == style) menu.removeAttribute("style");
					else if (css.includes(style))
						menu.style.cssText = css.replace(style, "");
				}
		},
		opts: {
			attributes: true, attributeOldValue: true,
			attributeFilter: ["style", "label"], subtree: true
		},
		handleMuts(muts) {
			if(!muts[0].target.matches(":-moz-window-inactive")) for(var mut of muts)
				if (mut.attributeName == "label" && mut.oldValue == this.name)
					this.oldName = this.name,
					prefs.setStringPref(pref, mut.target.label);
				else if (mut.attributeName == "style" && mut.oldValue == this.style) {
					var css = mut.target.style.cssText;
					css && css != this.style && prefs.clearUserPref(pref);
				}
		}
	}).init(), false, popup || 1);
	g[id].updPopup(window);
	var mo = new MutationObserver(g[id].handleMuts);
	mo.observe(popup, g[id].opts);
	addDestructor(reason => mo.disconnect(reason[5] == "e" && g[id]?.destroy(reason)));
})(
	Cu.import("resource:///modules/sessionstore/SessionStore.jsm", {}),
	"CBSSMQuitApplicationObserver", "CB.SSM.sessionToRestore",  Services,
	"font-weight: bold !important; color: red !important;"
);


А вообще, кнопка совершенно кривая, одноокошечная,
её нереально исправить, только переписать заново.

Отсутствует

 

№1481009-07-2020 21:25:33

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 78.0

Re: Custom Buttons

Dumby
Лажа какая-то... else Services.prefs.setIntPref("browser.startup.page", 0);   Куда это ? Предупредиловка пропадает и толку - ноль...
Это код

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

Выделить код

Код:

if (custombuttons.confirmBox(null, "Перезапустить с восстановлением вкладок ?", "Да", "Отмена") ) {
	 var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         file.initWithPath(file.path + "\\memreduct\\fox.vbs");
file.launch();  
   
}


Это ini
скрытый текст

Выделить код

Код:

(ps => {
    var s = "browser.startup.page";

    this._handleClick = () => ps.setIntPref(s, ps.getIntPref(s, 3) ? 0 : 3);
    
    
})(Services.prefs);

   

this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };  

this.tooltipText= "ЛКМ: Рестарт";
  
;

Отсутствует

 

№1481109-07-2020 22:15:36

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

Re: Custom Buttons

solombala пишет

else Services.prefs.setIntPref("browser.startup.page", 0);   Куда это ?

Это в код (не в ini), после закрывающей скобки от if
(то есть в конец).
Уж наверно конструкцию if else не первый раз видишь.

Отсутствует

 

№1481209-07-2020 22:27:08

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 78.0

Re: Custom Buttons

Dumby
Та ну на... Не фига...В самый конец? Теперь да...Класс! Кстати, этот гнусный ютуб в 78 сходу видео запускает в текущей вкладке...или это мой косяк? Медиа на 5 стоит...

Отредактировано solombala (09-07-2020 22:54:50)

Отсутствует

 

№1481310-07-2020 00:04:37

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 604
UA: Firefox 52.0

Re: Custom Buttons

Dumby пишет

Вот прям при открытии, ну разве что на выходе подменить.
Выбор сессии — двойной ЛКМ по соответствующему пункту.
Код добавить в конец.

Спасибо большое!


Dumby пишет

А вообще, кнопка совершенно кривая, одноокошечная,
её нереально исправить, только переписать заново.

Если Вам не трудно, и если найдете время, то перепишите пожалуйста.


«The Truth Is Out There»

Отсутствует

 

№1481413-07-2020 05:57:40

sibirnik
Участник
 
Группа: Members
Зарегистрирован: 11-08-2016
Сообщений: 63
UA: Firefox 78.0

Re: Custom Buttons

Подскажите пожалуйста (в шапке все ссылки не рабочие) этот аддон ещё работает и если да, то где скачать? И на новых версиях(у меня 68.0.2) это работает?, если нет, то на какой версии - это работает?

Отсутствует

 

№1481513-07-2020 08:15:09

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 237
UA: Firefox 68.0

Re: Custom Buttons

sibirnik
Последняя версия CB, лучше paxmod (как по мне)
https://forum.mozilla-russia.org/viewto … 38#p782238

это конфиги (в папку ff, где firefox.exe)
https://www.upload.ee/files/11888164/signed.7z.html

А чтобы всё заработало надо удалить из папки профиля папку startupCache.

Всё это работает точно как часы с 68 до 77

Отредактировано momo2000 (13-07-2020 08:16:19)

Отсутствует

 

№1481613-07-2020 08:32:34

sibirnik
Участник
 
Группа: Members
Зарегистрирован: 11-08-2016
Сообщений: 63
UA: Firefox 78.0

Re: Custom Buttons

momo2000

momo2000 пишет

Всё это работает точно как часы с 68 до 77

Попробую. Спасибо.

Отсутствует

 

№1481717-07-2020 11:23:31

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 79.0

Re: Custom Buttons

Dumby
У меня с 79 перестал этот код срабатывать (для однопроцессорного режима)

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

Выделить код

Код:

setTimeout(()=> { 
   var promise = AddonManager.getAddonsByTypes(["extension"]);
      promise.then(addons=> {
         addons.forEach(addon=> { 
            if ( addon.name == "Right Links WE" ) {
                 addon.softDisabled = true;
                 setTimeout(()=> addon.softDisabled = false, 200);
                 }
                                                    
         });
      });
}, 200);


Можно починить?

Отредактировано Garalf (17-07-2020 11:40:11)

Отсутствует

 

№1481817-07-2020 11:46:41

vending_machine
Участник
 
Группа: Members
Зарегистрирован: 10-01-2020
Сообщений: 549
UA: Firefox 78.0

Re: Custom Buttons

Garalf
Кардинальное  решение для многопроцессного, сводит потребление к однопроцессному.
https://forum.mozilla-russia.org/viewto … 36#p782936

Отредактировано vending_machine (17-07-2020 11:48:05)

Отсутствует

 

№1481917-07-2020 14:56:56

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 78.0

Re: Custom Buttons

vending_machine
Спасибо! Действительно, облегчает работу.

Отсутствует

 

№1482017-07-2020 19:42:02

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

Re: Custom Buttons

Garalf пишет

У меня с 79 перестал этот код срабатывать

Выделить код

Код:

addon.softDisabled =

https://hg.mozilla.org/mozilla-central/rev/116a28847684

Отсутствует

 

№1482119-07-2020 20:17:49

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 78.0

Re: Custom Buttons

Dumby
Посмотри, пожалуйста, что можно сделать с этим кодом "Активация вкладки наведением курсора" в 78, в 68 работает безукоризненно, как uc.js [спасибо bunda1, https://forum.mozilla-russia.org/viewto … 06#p557706]

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

Выделить код

Код:

(function() {
var tab_hover={
   event:null,
   tid:null,
 
   onLoad: function() {
      gBrowser.tabContainer.addEventListener("mouseout", tab_hover.onMouseOut, false);
      gBrowser.tabContainer.addEventListener("mouseover", tab_hover.onMouseOver, false);
   },
   onUnload: function() {
      gBrowser.tabContainer.removeEventListener("mouseover", tab_hover.onMouseOver, false);
      gBrowser.tabContainer.removeEventListener("mouseout", tab_hover.onMouseOut, false);
   },
 
   onMouseOver: function(event) {
      tab_hover.event=event.target;
      tab_hover.tid=setTimeout( function(){ gBrowser.selectedTab=tab_hover.event;   } , 200);
   },
   onMouseOut: function() {
      clearTimeout(tab_hover.tid);
   }
};
if (!this.tab_hoverRun) tab_hover.onLoad();
this.tab_hoverRun = true;
})();


А в 78, куда я его только не пытался воткнуть :), ибо ни бум-бум, не хочет. Распаковал user_chrome_files и в custom_script_all_win после строки "// Здесь может быть ваш код...." поместил вот такой кусочек (см. ниже), вроде заработало, но поведение более чем странное: если курсор вести горизонтально, то активация случается через таб (т.е. 2-я условная станет активной, когда курсор уже на 3-й и т.д.), а чтобы последовательно они открывались, вынужден делать пилообразные жесты, проходя сквозь таб (либо сверху вниз, затем снизу, либо постоянно сверху). Прошу прощения за сумбурность
скрытый текст

Выделить код

Код:

(function () { 
   var menubar = document.getElementById('toolbar-menubar');

   addEventListener("mouseover", function(e) {
      if ( menubar.getAttribute("autohide") == 'true' && menubar.getAttribute("inactive") ) {
           gBrowser.selectedTab = e.target;
           }        
   }, false, gBrowser.tabContainer ); 
})();

Отредактировано bezuma (20-07-2020 11:02:31)

Отсутствует

 

№1482219-07-2020 23:37:04

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

Re: Custom Buttons

bezuma пишет

А в 78, куда я его только не пытался воткнуть :), ибо ни бум-бум, не хочет.

Ну, в 68 вкладки конструировались через XBL,
и event.target события "mouseover" был, собственно, сам <tab>


А в 78 вкладки конструируются через кустомэлементщину,
и event.target события "mouseover" будет, в большинстве случаев,
одним из элементов их дочернего добра.


Вобщем, раз говоришь «в 68 работает безукоризненно», тогда вот такая правка.
И нет, когда подправишь, не размещай в custom_script_all_win,
размещай, после такой же упомянутой строки, но только в custom_script_win.js

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

Выделить код

Код:

/*
   onMouseOver: function(event) {
      tab_hover.event=event.target;
      tab_hover.tid=setTimeout( function(){ gBrowser.selectedTab=tab_hover.event;   } , 200);
   },
*/
   onMouseOver: e => tab_hover.tid = setTimeout(tab_hover.activate, 200, e.target),
   activate: trg => gBrowser.selectedTab = trg.closest("tab"),

Отсутствует

 

№1482320-07-2020 00:03:54

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 78.0

Re: Custom Buttons

Dumby
Я знал, что ты колдун! Awesome! :beer: конечно же, custom_script_win.js, попутал при копипасте, волновался маленько. Творческих успехов

Отсутствует

 

№1482420-07-2020 03:41:09

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

Re: Custom Buttons

Dumby пишет

Вобщем, раз говоришь «в 68 работает безукоризненно», тогда вот такая правка.
И нет, когда подправишь, не размещай в custom_script_all_win,
размещай, после такой же упомянутой строки, но только в custom_script_win.js

Спасибо. А в отдельные файлы здесь скрипты можно помещать?

Отсутствует

 

№1482520-07-2020 21:24:04

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

Re: Custom Buttons

voqabuhe пишет

А в отдельные файлы здесь скрипты можно помещать?

Будь уверен.
https://forum.mozilla-russia.org/viewtopic.php?pid=776177#p776177

Отсутствует

 

Board footer

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