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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№1640130-05-2022 21:46:32

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 336
UA: Firefox 100.0

Re: Custom Buttons

Dumby
101 dom  inspector - рухнул ? И это не принимает https://addons.mozilla.org/en-US/firefo … ime-shift/

Отсутствует

 

№1640230-05-2022 22:16:54

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1737
UA: Firefox 100.0

Re: Custom Buttons

ВВП пишет

101 dom  inspector - рухнул ?

Можно обойтись без dom_inspector https://github.com/Infocatcher/Custom_Buttons/tree/master/Attributes_Inspector#readme
Add, ссылка 895008e96166a3de68ee76e602ba0267.gif

Отредактировано kokoss (30-05-2022 22:53:54)


Win7

Отсутствует

 

№1640331-05-2022 00:58:57

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

Re: Custom Buttons

ВВП пишет

dom  inspector - рухнул

Если paxmod, то, наверно, это всё тот же пресловутый ограничительный
хардкод на загрузку модулей только по протоколам chrome: и resource:
(то есть file: и jar:file: идут лесом). Остальное не помню.
Хорошо, соберу что есть. Сам он, разумеется, лучше не стал. DOMi 7.0.10.

Отсутствует

 

№1640431-05-2022 04:16:40

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 336
UA: Firefox 101.0

Re: Custom Buttons

Dumby
Это норм, а почему в фоне работает ? какая команда на выход ?
Дело в кн.СВ  -висят процессы в фоне ,не гаснут при выходе....Примерно догадываюсь , где поганка заныкана.
Нашел , нет "псевдосессиям" она гадит ... Так то она  нужна , заманала горящая кнопка сессия , а ее нет.(пустая вкладка)

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

Выделить код

Код:

/*Initialization Code*/ 
((topic, id) => {
    var obs, getObserver = () => {
        for(var o of Services.obs.enumerateObservers(topic)) {
            var res = o.wrappedJSObject;
            if (res && id in res) return res;
        }
    }
    addDestructor(reason => {
        if (reason[5] != "e") return;
        var obs = getObserver();
        obs && obs.destroy();
    });
    (obs = getObserver()) || Services.obs.addObserver(obs = {
        [id]: true, __proto__: null, destroyed: false,
        destroy() {
            Services.obs.removeObserver(this, topic);
            this.destroyed = true;
        },
        get wins() {
            return Array.from(Services.wm.getEnumerator("navigator:browser"))
                .filter(win => win.toolbar.visible);
        },
        observe(cancelQuit, t, data) {
            data != "restart" && !cancelQuit.data && this.onQuit(true);
        },
        handleEvent() {
            this.destroyed || this.onQuit();
        },
        onQuit(fromObs) {
            var {wins} = this, multi = wins.length > 1;

            if (multi) return fromObs && this.destroy();
            this.destroy();

            var {tabs} = wins[0].gBrowser;
            if (tabs.length > 1 ) return;

            var es = JSON.parse(SessionStore.getTabState(tabs[0])).entries;
            es.length == 1 && wins[0].isBlankPageURL(es[0].url) && this.erase();
        },
        erase() {
            Services.obs.notifyObservers(null, "browser:purge-session-history");
            Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {})
                .SessionFileInternal.write = () => {};
        }
    }, topic, false);
    addEventListener("DOMWindowClose", obs);
})("quit-application-requested", `${_id}:quitApplicationRequestedObserver1`);

Отредактировано ВВП (31-05-2022 15:59:09)

Отсутствует

 

№1640501-06-2022 18:16:33

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

Re: Custom Buttons

ВВП пишет

висят процессы в фоне ,не гаснут при выходе

Ну да, я так и написал. Не знаю что им надо.

заманала горящая кнопка сессия , а ее нет.(пустая вкладка)

Тогда попробуй наоборот, на старте.
Это в custom_script.js положить.

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

Выделить код

Код:

(async url => {
	var ls = ChromeUtils.import(url)._LastSession;
	var ss = ls.setState;
	ls.setState = state => {
		if (check(state)) state = null;
		(ls.setState = ss).call(ls, state);
	}
	var check = state => {
		var wins = state?.windows;
		if (!wins || wins.length > 1) return;
		var {tabs} = wins[0];
		if (!tabs || tabs.length > 1) return;
		var {entries} = tabs[0];
		return entries?.length == 1 &&
			Services.wm.getMostRecentWindow("navigator:browser")
				.isBlankPageURL(entries[0].url);
	}
})("resource:///modules/sessionstore/SessionStore.jsm");

Отсутствует

 

№1640601-06-2022 19:04:55

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 336
UA: Firefox 101.0

Re: Custom Buttons

Dumby
Классика ! Не постоjе речи !

Отсутствует

 

№1640702-06-2022 00:02:06

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

Re: Custom Buttons

Dumby пишет

Custom Buttons 0.0.7.0.0.26, paxmod и bootstrap в zip-папке.

А редактор кнопок как бы для тёмных тем адаптировать?

Отсутствует

 

№1640802-06-2022 08:26:01

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

Re: Custom Buttons

voqabuhe
Что значит «как бы»? Стиль нужен, под себя.
Я не знаток CSS и не любитель тёмных тем.
Был бы любитель, может что-то типа такого завёл, не уверен.

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

Выделить код

Код:

@-moz-document url-prefix(chrome://custombuttons/content/editor.xul) {
	@media (prefers-color-scheme: dark) {
		* {
			color: #eee !important;
		}
		tab, tabpanels,  #accelkey,
		[anonid=qstextbox], image.checkbox-check:not([checked]) {
			border: 1px solid gray !important;
		}
		tab, tabpanels, caption, #accelkey, [anonid=qstextbox],
		menupopup, menuitem, menuseparator, toolbox, textbox[multiline] {
			appearance: none !important;
		}
		caption, input, textarea, menupopup,
		#accelkey, [anonid=qstextbox], menuitem:not([_moz-menuactive]),
		image.checkbox-check:not([checked]), scrollbox, textbox[multiline] {
			background-color: #23222b !important;
		}

		tab {
			height: 24px !important;
			border-bottom: none !important;
			margin-inline-end: -1px !important;
		}
		tab:hover, menuitem[_moz-menuactive], checkbox:not([checked]):hover > .checkbox-check {
			background-color: #52525e !important;
		}
		tab[selected] {
			background-color: navy !important;
		}
		tab[selected]:hover {
			background-color: mediumblue !important;
		}

		fieldset {
			border-color: gray !important;
		}
		.cbeditor-textbox {
			padding: 2px 3px !important;
		}
		label[control]:hover {
			color: #ffa !important;
		}

		#textbox-contextmenu > menuitem {
			min-height: 22px !important;
		}
		#textbox-contextmenu > menuseparator {
			padding: 0 !important;
			height: 1px !important;
			border: none !important;
			margin-block: 3px !important;
			background-color: gray !important;
		}
	}
}

Отсутствует

 

№1640902-06-2022 08:56:32

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

Re: Custom Buttons

Dumby
Вставил в userContent.css, что-то не фига не изменилось. Или куда его надо было пристроить?
Спасибо большое.

Отредактировано voqabuhe (02-06-2022 09:39:52)

Отсутствует

 

№1641002-06-2022 09:07:22

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1737
UA: Firefox 101.0

Re: Custom Buttons

Dumby пишет

Можно. Внутрь расширения, или отдельным скриптом,
window.browsingContext.prefersColorSchemeOverride = "light";

Можно поподробнее? Желательно внутрь расширения!


voqabuhe пишет

Вставил в userContent.css, что-то не фига не изменилось. Или куда его надо было пристроить?

Туда же куда и этот: https://forum.mozilla-russia.org/viewto … 84#p796684

Отредактировано kokoss (02-06-2022 09:10:59)


Win7

Отсутствует

 

№1641102-06-2022 09:25:51

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

Re: Custom Buttons

voqabuhe пишет

Туда же куда и этот: https://forum.mozilla-russia.org/viewto … 84#p796684

В смысле в userChrome.css? Туда тоже пробовал, у меня не работает.

Отсутствует

 

№1641202-06-2022 09:33:37

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 91.0

Re: Custom Buttons

Исправьте пожалуйста кнопку Min&Quit&Restart, для работы на Firefox Browser 91.10.0 ESR
Сворачивание и перезагрузка работают, а вот выход по клику средней, перестал работать.

Выделить код

Код:

/*Initialization Code*/

this.tooltipText = "Left    => Свернуть Mozilla \nMiddle => Выйти из Mozilla \nRight   => Перезагрузить Mozilla";

this.onclick = function(event) {
    if(event.button == 0) {
// Действие при клике ЛКМ
window.minimize();
    }
    else if(event.button == 1) {
// Действие при клике СКМ
goQuitApplication();
    }
    else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
// Действие при клике ПКМ без модификаторов
  var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"]
                             .getService(Components.interfaces.nsIAppStartup);
  appStartup.quit(appStartup.eForceQuit | appStartup.eRestart);

    }
};
this.oncontextmenu = function(event) {
    if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Блокируем контекстное меню при клике ПКМ без модификаторов
        event.preventDefault();
        event.stopPropagation();
    }
};

Отсутствует

 

№1641302-06-2022 09:33:57

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1737
UA: Firefox 101.0

Re: Custom Buttons

voqabuhe пишет

В смысле в userChrome.css? Туда тоже пробовал, у меня не работает.

Странно, до этого же работал, проверь только с этим кодом.


Win7

Отсутствует

 

№1641402-06-2022 09:37:15

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

Re: Custom Buttons

kokoss
А всё заработал, что-то с копированием похоже было не то.

Отсутствует

 

№1641502-06-2022 12:06:44

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

Re: Custom Buttons

kokoss пишет

Можно поподробнее? Желательно внутрь расширения!

Хорошо, добавлю в следущую версию (if any).


Привяжем к наличию на старте настройки
extensions.custombuttons.prefersColorSchemeOverride
(создать, строковую, со значением light или dark).


Можешь сам добавить правку в расширение, в файл
%custombuttons@xsms.org%\chrome\custombuttons\content\SelfHelper\SelfHelper.jsm
после this.version = parseInt(AppConstants.MOZ_APP_VERSION); вот так:

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

Выделить код

Код:

…
		this.version = parseInt(AppConstants.MOZ_APP_VERSION);
		if (this.version >= 95) {
			var pref = "extensions.custombuttons.prefersColorSchemeOverride";
			var pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
			if (pb.prefHasUserValue(pref)) {
				for(var prop in this.data) this.data[prop][95] = "colorscheme";
				this.colorscheme = doc => {
					var bc = doc.ownerGlobal.browsingContext;
					if (bc.embedderElement) return;
					var val = pb.getCharPref(pref, "");
					if (val && (val == "light" || val == "dark"))
						bc.prefersColorSchemeOverride = val;
				}
			}
		}

vv07 пишет

выход по клику средней, перестал работать

//goQuitApplication();
goQuitApplication(event);

Отсутствует

 

№1641602-06-2022 13:01:28

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1737
UA: Firefox 101.0

Re: Custom Buttons

Dumby пишет

Хорошо, добавлю в следущую версию (if any).

Благодарю :beer:

Можешь сам добавить правку в расширение, в файл
%custombuttons@xsms.org%\chrome\custombuttons\content\SelfHelper\SelfHelper.jsm
после this.version = parseInt(AppConstants.MOZ_APP_VERSION); вот так:
скрытый текст

И как это работает? А то у меня без изменений!


Win7

Отсутствует

 

№1641702-06-2022 13:06:29

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 689
UA: Firefox 84.0

Re: Custom Buttons

Dumby
Сработало. Спасибо

Отсутствует

 

№1641802-06-2022 13:45:11

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

Re: Custom Buttons

kokoss пишет

И как это работает?

Ну как, проводишь правку.
Создаёшь упомянутую настройку со значением light
Рестарт с очисткой startupCache.
Всё, теперь окна CB-редактора будут открываться светлыми,
даже при включённой в браузере тёмной теме.

Отсутствует

 

№1641902-06-2022 14:25:11

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1737
UA: Firefox 101.0

Re: Custom Buttons

Dumby
Теперь понятно как это работает, если хочешь светлую тему то изменяешь на "light", если тёмную то "dark" + стиль. Хотя бы так...


Win7

Отсутствует

 

№1642005-06-2022 14:16:03

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 336
UA: Firefox 98.0

Re: Custom Buttons

Dumby
Как бы протокол "справки" под фокс заделать ? Заманал майкрософтский браузер...

Отсутствует

 

№1642106-06-2022 16:24:15

ALEX_45_ORP
Участник
 
Группа: Members
Зарегистрирован: 18-01-2018
Сообщений: 162
UA: Firefox 99.0

Re: Custom Buttons

ВВП пишет

Dumby
Как бы протокол "справки" под фокс заделать ? Заманал майкрософтский браузер...

Не совсем понял, что такое"протокол "справки"", но у меня фокс заделан по умолчанию и все ссылки, где бы они не были, открывает именно он (кроме тех, что он не ассоциирует), благо, что портативный ...
2022-06-06_162614.jpg

Отредактировано ALEX_45_ORP (06-06-2022 16:31:36)


Win 10х64

Отсутствует

 

№1642210-06-2022 08:07:07

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

Re: Custom Buttons

Dumby
Не посмотрите этот код:

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

Выделить код

Код:

// Отключить обновление иконок всех закладок при импорте закладок из HTML файла .....
// Dumby: https://forum.mozilla-russia.org/viewtopic.php?pid=794978#p794978 .....
// Код для config.js .....
(async url => {
	var nsvo = Cu.import(url, {});
	var code = `eval(\`${nsvo.insertFaviconForNode}\`);`
		.replace(
			".iconUri",
			'$& || node.iconUri.startsWith("http")'
				//+ `\n    && Components.stack.caller.filename == "${url}"\n  `
		)
		.replace(/(catch \(ex\) {).+?}/s, "$1}");

	var subst = "bookmarks-html-import-meds-tmp-script";
	var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
	var rph = ios.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler);
	rph.setSubstitution(subst, ios.newURI("data:," + encodeURIComponent(code)));
	Cc["@mozilla.org/moz/jssubscript-loader;1"]
		.getService(Ci.mozIJSSubScriptLoader).loadSubScript("resource://" + subst, nsvo);
	rph.setSubstitution(subst, null);
	
})("resource://gre/modules/BookmarkHTMLUtils.jsm");

102-ая бетка отказывается с ним работать, крашится при запуске.


«The Truth Is Out There»

Отсутствует

 

№1642311-06-2022 10:50:13

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

Re: Custom Buttons

unter_officer пишет

102-ая бетка отказывается с ним работать, крашится

Да, я уже упоминал пару раз почему.


Увы, здесь такое можно повторить, наверное, только с Debugger'ом.

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

Выделить код

Код:

(async url => {
	var g = Cu.getGlobalForObject(Cu);
	//var func = ChromeUtils.importESM(url).BookmarkHTMLUtils.importFromFile;
	var func = ChromeUtils.import(url).BookmarkHTMLUtils.importFromFile;

	var sandbox = new Cu.Sandbox(g, {freshCompartment: true});
	Cc["@mozilla.org/jsdebugger;1"].createInstance(Ci.IJSDebugger).addClass(sandbox);
	var dbg = new sandbox.Debugger();

	dbg.addDebuggee(g);
	try {
		var gref = dbg.makeGlobalObjectReference(g);
		var env = gref.makeDebuggeeValue(func).environment;
		var ref = name => env.find(name).getVariable(name).unsafeDereference();

		var name = "insertFaviconForNode";
		var Services = ref("Services"), PlacesUtils = ref("PlacesUtils");

		func = eval(`(${ref(name)})`
			.replace(
				".iconUri",
				'$& || node.iconUri.startsWith("http")'
					//+ `\n    && Components.stack.caller.filename == "${url}"\n  `
			)
			.replace(/(catch \(ex\) {).+?}/s, "$1}")
		);
		env.find(name).setVariable(name, gref.makeDebuggeeValue(func));
	} catch(ex) {
		Cu.reportError(ex);
	}
	dbg.removeDebuggee(g);
//})("resource://gre/modules/BookmarkHTMLUtils.sys.mjs");
})("resource://gre/modules/BookmarkHTMLUtils.jsm");

Отсутствует

 

№1642411-06-2022 14:17:44

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

Re: Custom Buttons

Dumby пишет

Да, я уже упоминал пару раз почему.


Увы, здесь такое можно повторить, наверное, только с Debugger'ом.

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


«The Truth Is Out There»

Отсутствует

 

№1642524-06-2022 03:11:21

kazarin
Участник
 
Группа: Members
Зарегистрирован: 23-11-2016
Сообщений: 85
UA: Firefox 100.0

Re: Custom Buttons

Здоровья вам, уважаемые форумчане. Помогите, пожалуйста, с кнопкой скроллбаров, в [firefox] 100 отображается некорректно.

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

Выделить код

Код:

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


Кнопка:
скрытый текст

Выделить код

Код:

// Mинимальный стиль для полосы прокрутки (скролбара) от 11.05.2013. ...............................

var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
                    .getService(Components.interfaces.nsIStyleSheetService);
var uri = makeURI('data:text/css,'+ encodeURIComponent('\n\
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);\n\
scrollbar thumb { -moz-appearance: none !important; background-color: #336666 !important; border-radius: 4px !important; opacity: 0.7 !important;}\n\
scrollbar:not(:hover) thumb { opacity: 0.3 !important; }\n\
scrollbar[orient="vertical"]   { -moz-margin-start: -8px !important; min-width: 8px !important;  max-width: 8px !important;}\n\
scrollbar[orient="horizontal"] { -moz-margin-start: -8px !important;   margin-top: -8px !important; min-height: 8px !important; max-height: 8px !important;}\n\
scrollbar scrollbarbutton { visibility: collapse !important; }\n\
scrollbar { -moz-appearance: none!important; background: transparent !important; position: relative !important; }\n\
scrollbar scrollcorner, scrollcorner { background: transparent !important; }\n\
'));
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);


Искал поиском по форуму, не нашёл.

Отсутствует

 

Board footer

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