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

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

№1520101-03-2021 15:41:41

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

Re: Custom Buttons

solombala пишет

Теперь проблема .Их много и аддон "поиск из контекста"
https://addons.mozilla.org/ru/firefox/s … t%20Search берет все поисковики скопом, на отключенные не реагирует.

Да, вижу, повыключал почти все, а он всё равно все те 71 вываливает.
Но аддон не виноват, просто гуглячьи API не предоставляют здесь никаких возможностей.


Можно еще патч всунуть, как с http

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

Выделить код

Код:

//
(async cso => {

	var defaultEngine = "vatera";
	var searchOrder = ["vatera", "google", "Eudict", "palasprint", "readmoo", "ddg"];

	var rph = Cc["@mozilla.org/network/protocol;1?name=resource"].getService(Ci.nsIResProtocolHandler);
	var uri = rph.getSubstitution("app").QueryInterface(Ci.nsIJARURI).JARFile;

	var u = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService).newURI;
	var chrome = [], push = (url, mime, src, rep) => {
		var code = Cu.readUTF8URI(u(url)).replace(src, rep);
		var newURL = `data:${mime};charset=utf-8,` + encodeURIComponent(code);
		chrome.push(["override", url, newURL]);
	}
	push(cso, "application/json", /https(?!\?)/g, "$&?");
	push(
		"chrome://browser/content/parent/ext-search.js", "application/x-javascript",
		"Services.search.getVisibleEngines();",
		`$&
		var hiddenOneOffs = Services.prefs.getStringPref("browser.search.hiddenOneOffs", "");
		if (hiddenOneOffs)
			hiddenOneOffs = hiddenOneOffs.split(","),
			visibleEngines = visibleEngines.filter(
				engine => !hiddenOneOffs.includes(engine.name)
			);`
	);
	var ams = Cc["@mozilla.org/addons/addon-manager-startup;1"].getService(Ci.amIAddonManagerStartup);
	globalThis[Symbol("chrome patches")] = ams.registerChrome(uri, chrome);

	var prfx = "chrome/browser/search-extensions/", len = prfx.length;
	var names = ams.enumerateJAR(uri, `${prfx}*/$~${prfx}*/[^$]*`).map(n => n.slice(len, -1));

	searchOrder.reverse();
	var sel = {engines: []}, dlc = defaultEngine.toLowerCase();
	var find = function(name) {return name.toLowerCase() == this}

	for(var name of names) {
		var lc = name.toLowerCase();
		var engine = {webExtension: {id: lc + "@search.mozilla.org", locale: "default"}};
		var ind = searchOrder.findIndex(find, lc);
		if (ind >= 0) engine.orderHint = ind + 1;
		sel.engines[lc == dlc ? "unshift" : "push"](engine);
	}
	Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsISearchService)
		.wrappedJSObject._fetchEngineSelectorEngines = async () => sel;

})("chrome://browser/content/schemas/chrome_settings_overrides.json");


Это если config.js. А если править omni.ja, то здесь:
%FOX%\browser\omni.ja\chrome\browser\content\browser\parent\ext-search.js
код, который вставить

Выделить код

Код:

…
          var hiddenOneOffs = Services.prefs.getStringPref("browser.search.hiddenOneOffs", "");
          if (hiddenOneOffs)
            hiddenOneOffs = hiddenOneOffs.split(","),
            visibleEngines = visibleEngines.filter(
              engine => !hiddenOneOffs.includes(engine.name)
            );


скриншот, куда вставить

Выделить код

Код:

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

Отсутствует

 

№1520201-03-2021 16:04:22

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

Re: Custom Buttons

Dumby
Вставил в omni.ja...В 77 и 86. Это нечто, нет слов... Ну круто и даже очень!

Отредактировано solombala (01-03-2021 16:04:43)

Отсутствует

 

№1520301-03-2021 20:30:55

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

Re: Custom Buttons

solombala пишет

Тогда пожалуйста

Ну вот, совсем другое дело. Спасибо. Теперь подскажи плиз, как в ней настроить очистку памяти и выровнять в адресной строке?

Отсутствует

 

№1520401-03-2021 21:51:24

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

Re: Custom Buttons

voqabuhe
Извините, вы просили кнопку. Прибамбасы и приблуды эт о нечто другое.

Отсутствует

 

№1520502-03-2021 01:27:12

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

Re: Custom Buttons

solombala
И чё? А теперь попросил "Прибамбасы и приблуды". Какие проблемы?

Отредактировано voqabuhe (02-03-2021 01:31:40)

Отсутствует

 

№1520602-03-2021 13:51:49

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

Re: Custom Buttons

voqabuhe
Кнопка для CB есть здесь, 4-й спойлер. Там по ЛКМ чистится кэш диска и памяти. Не проверял и не знаю, рабочий ли вариант... Спроси у egorsemenov06. А у solombala, если мне память не изменяет, в скрипте вызывается что-то типа memreduct.

Отсутствует

 

№1520702-03-2021 16:08:23

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

Re: Custom Buttons

voqabuhe
Поищите здесь или в CSS - memoryMinimizationButton
Исходник тут - memoryMinimizationButton.uc.js
С минимальными правками подключается в UCF.

Отсутствует

 

№1520804-03-2021 08:59:10

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 86.0

Re: Custom Buttons

А можно ли адаптировать кнопку Attributes_Inspector для UCF ?

Отсутствует

 

№1520904-03-2021 09:41:56

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

Re: Custom Buttons

rubel
Я себе когда-то делал.
Путь только свой пропиши, и иконку.

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

Выделить код

Код:

try {CustomizableUI.createWidget({
	id: "AttributesInspector",
	label: "Attributes Inspector",
	image: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf///////////9EAKf/RACn/0QAp////////////0QAp///////////////////////RACn/0QAp/9EAKf/RACn////////////RACn/0QAp/9EAKf///////////9EAKf//////////////////////0QAp/9EAKf/RACn/0QAp////////////0QAp/9EAKf/RACn////////////RACn/0QAp////////////0QAp/9EAKf/RACn/0QAp/9EAKf///////////9EAKf/RACn/0QAp////////////0QAp/9EAKf///////////9EAKf/RACn/0QAp/9EAKf/RACn//////////////////////////////////////9EAKf/RACn////////////RACn/0QAp/9EAKf/RACn/0QAp///////////////////////////////////////RACn/0QAp////////////0QAp/9EAKf/RACn/0QAp/9EAKf///////////9EAKf/RACn/0QAp////////////0QAp/9EAKf///////////9EAKf/RACn/0QAp/9EAKf/RACn////////////RACn/0QAp/9EAKf///////////9EAKf/RACn////////////RACn/0QAp/9EAKf/RACn/0QAp/////////////////9EAKf/RACn////////////RACn/0QAp////////////0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/////////////////////////////////0QAp/9EAKf///////////9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf//////////////////////0QAp/9EAKf//////////////////////0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp////////////0QAp/9EAKf/RACn//////////////////////9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/RACn/0QAp/9EAKf/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==",
	localized: false,
	onCreated(btn) {
		btn.setAttribute("image", this.image);
		btn.setAttribute("tooltiptext", this.label);
		btn.onmouseenter = btn.onmouseleave = this.onmouse;

		btn.setAttribute("oncommand", "handleCommand(this)");
		btn.handleCommand = this.handleCommand;
	},
	get handleCommand() {
		delete this.handleCommand;
		return this.handleCommand = btn => {
			(btn.handleCommand = new btn.ownerGlobal.Function(this.code).bind(btn))();
		}
	},
	get code() {
		delete this.code;
		return this.code = "this.focusedWindow && this.focusedWindow.focus();\n" +
			Cu.readUTF8URI(Services.io.newURI(
				"chrome://user_chrome_files/content/custom_scripts/USER/Sandbox/Widgets/attributesInspector.js"
			));
	},
	onmouse: e => e.target.focusedWindow =
		e.type.endsWith("r") && Services.wm.getMostRecentWindow(null)
});}
catch(ex) {Cu.reportError(ex);}

Отсутствует

 

№1521004-03-2021 10:02:30

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

Re: Custom Buttons

Dumby

себе когда-то делал

вчера за нее вспоминал, а сегодня.. получите, как в сказке :beer:

Отсутствует

 

№1521104-03-2021 12:41:49

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 86.0

Re: Custom Buttons

Dumby

Я себе когда-то делал.
Путь только свой пропиши, и иконку.

Большое спасибо за прекрасную кнопку. Путь исправил, а иконка и ваша смотрится прекрасно. :)

Отсутствует

 

№1521205-03-2021 04:35:52

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

Re: Custom Buttons

xrun1 пишет

Кнопка для CB есть здесь, 4-й спойлер. Там по ЛКМ чистится кэш диска и памяти. Не проверял и не знаю, рабочий ли вариант...

Ага, спасибо, кнопка рабочая.

А у solombala, если мне память не изменяет, в скрипте вызывается что-то типа memreduct.

Похоже на то, ибо после ЛКМ ломится в профиле к memred/start.vbs. Вот этого start.vbs и не хватает, его как понимаю solombala и зажал. :sick:

_zt пишет

Исходник тут - memoryMinimizationButton.uc.js
С минимальными правками подключается в UCF.

Спасибо, полностью рабочая кнопка, ничего править не надо. Она для GitHub - Aris-t2/CustomJSforFx: custom scripts

Отсутствует

 

№1521305-03-2021 05:59:05

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 86.0

Re: Custom Buttons

memoryMinimizationButton.uc.js
Да какая-то бестолковая кнопка. Ничего не показывает, сколько было и сколько стало после оптимизации.
Вот была хорошая кнопка Memory Monitorдля старых версий.
Dumby
Может быть вы её почините для новых версий, чтоб правильно отображала потребление памяти?
Ну и конечно желательно адаптировать для UCF.

Отсутствует

 

№1521405-03-2021 06:07:42

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

Re: Custom Buttons

rubel пишет

memoryMinimizationButton.uc.js
Да какая-то бестолковая кнопка. Ничего не показывает, сколько было и сколько стало после оптимизации.

Дык она в паре с Memory Monitor работает, ссылку на которую выше xrun1 дал.  Одна оптимизирует, другая показывает.

Отсутствует

 

№1521505-03-2021 07:05:05

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 86.0

Re: Custom Buttons

voqabuhe

Дык она в паре с Memory Monitor работает, ссылку на которую выше xrun1 дал.  Одна оптимизирует, другая показывает.

Ну дык Виталий её так и не сделал для UCF.
Вот здесь  egorsemenov06 только просит(4спойлер) сделать её для UCF.
Так что ждем. :)

Отсутствует

 

№1521605-03-2021 07:38:14

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

Re: Custom Buttons

rubel
Ну да, у меня она в CB.

Отсутствует

 

№1521705-03-2021 10:46:37

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

Re: Custom Buttons

rubel пишет

Может быть вы её почините

Не, что-то не охота.

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

Могу нечто простенькое предложить.
Ни приблуд, ни прибамбасов, вообще ничего.
Суммарный жор памяти, так, как показывает его страница about:processes
В custom_script.js

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

Выделить код

Код:

(async id => ({

	delay: 2e3,

	val: "",
	init(topic, mm) {
		Services.obs.addObserver(mm = this, topic);
		Services.obs.addObserver(function quit(s, t) {
			this.timer?.cancel();
			Services.obs.removeObserver(mm, topic);
			Services.obs.removeObserver(quit, t);
		}, "quit-application-granted");
	},
	observe(win) {
		var df = win.MozXULElement.parseXULToFragment(
			`<hbox id="${id}"><label id="${id += "-label"}"/></hbox>`
		);
		this.timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
		(this.observe = async win => {
			this.timer.cancel();
			await new Promise(ChromeUtils.idleDispatch);
			win.document.getElementById("star-button-box")
				.after(win.document.importNode(df, true));
			this.notify();
		})(win);
	},
	async notify() {
		var info = await ChromeUtils.requestProcInfo();
		var bytes = info.residentSetSize;
		for(var child of info.children) bytes += child.residentUniqueSize;
		this.timer.initWithCallback(this, this.delay, this.timer.TYPE_ONE_SHOT);

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

Отредактировано Dumby (20-04-2021 09:53:52)

Отсутствует

 

№1521805-03-2021 11:05:42

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

Re: Custom Buttons

voqabuhe

Она для GitHub - Aris-t2/CustomJSforFx: custom scripts

Я знаю для чего она.
   

ничего править не надо

Надо, если хотите подключить ее в UCF. Я ж об этом писал.
   
Добавлено 05-03-2021 11:09:27
   
Dumby
На 78 не взлетает, да и about:processes на 78 нет, вроде.

Отредактировано _zt (05-03-2021 11:09:51)

Отсутствует

 

№1521905-03-2021 11:33:47

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

Re: Custom Buttons

_zt пишет

На 78 не взлетает, да и about:processes на 78 нет, вроде.

Да, на 78 ещё нет residentUniqueSize
Можно заменить на тот же residentSetSize и будет сумма таких.


Но, вот обоснование введения residentUniqueSize,
цитата из aboutProcesses.js. Заставляет задуматься.

Выделить код

Код:

...
    // Resident set size is the total memory used by the process, including shared memory.
    // Resident unique size is the memory used by the process, without shared memory.
    // Since all processes share memory with the parent process, we count the shared memory
    // as part of the parent process (`"browser"`) rather than as part of the individual
    // processes.
    let totalRamSize =
      cur.type == "browser" ? cur.residentSetSize : cur.residentUniqueSize;

Отсутствует

 

№1522005-03-2021 11:41:31

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 86.0

Re: Custom Buttons

_zt

Надо, если хотите подключить ее в UCF. Я ж об этом писал.

Ну может поделитесь правленной версией.

Добавлено 05-03-2021 11:53:27
Dumby

Могу нечто простенькое предложить.
Ни приблуд, ни прибамбасов, вообще ничего

Все равно спасибо, наглядно виден расход памяти в адресной строке. :)

Отредактировано rubel (05-03-2021 11:53:27)

Отсутствует

 

№1522105-03-2021 13:07:40

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

Re: Custom Buttons

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3Eram%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/jpeg%3Bbase64%2C%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A%0A//%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A//%20Memory%20Monitor%20................................%0A//%20https%3A//forum.mozilla-russia.org/viewtopic.php%3Fid%3D52237%0A//%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0Avar%20idbut%3Dthis.id%3B%0Avar%20urlbar%20%3D%20document.getElementById%28%22page-action-buttons%22%29%3B%0Avar%20button%20%3D%20document.getElementById%28idbut%29%3B%0Aurlbar.insertBefore%28button%2C%20urlbar.Child%29%3B%0A%0Avar%20style%20%3D%20custombutton.buttonGetHelp%28self%29.replace%28/id/g%2C%20_id%29%3B%0Avar%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28style%29%29%3B%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Asss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.tooltipText%20%3D%20%22%u041B%u041A%u041C%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u041F%u0430%u043C%u044F%u0442%u044C%22%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20this.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20%0A%20%20%20%0A%20%20%20%20%20%20if%20%28event.button%20%3D%3D%200%29%20%7B%20%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20var%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20file.initWithPath%28file.path%20+%20%22%5C%5Cmemreduk%5C%5Cstart.vbs%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20file.launch%28%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%20%20%20%20%20%20%20%20%0A//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u043A%u043D%u043E%u043F%u043A%u0435%0A%28function%20%28%29%20%7B%20%0Aself.timer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20memory%20%3D%20getMemory%28%29%3B%0A%20%20%20%20%20%20self.label%20%3D%20getMemory%28%29%0A%20%20%20%20%20%20if%20%28%20memory%20%3E%20770%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20file.initWithPath%28file.path%20+%20%22%5C%5Cmemreduk%5C%5Cstart.vbs%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20file.launch%28%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%2C%202000%20%29%3B%20%20%20%20%20%0A%20%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0437%u0430%u043D%u0438%u043C%u0430%u0435%u043C%u0443%u044E%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u0443%u044E%20%u043F%u0430%u043C%u044F%u0442%u044C%20%u0432%20MB%20....%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%3B%20%7D%20//%20FF26%20-%20Nightly%0A%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%20%20%20%20%0A%0A//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%25button%25%20.toolbarbutton-icon%20%7B%5C%0A%20%20%20%20%20display%3A%20none%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20.toolbarbutton-text%20%7B%5C%0A%20%20%20%20%20display%3A%20-moz-box%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20%7B%5C%0A%20%20%20%20%20-moz-box-orient%3A%20horizontal%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%27.replace%28/%25button%25/g%2C%20%22%23%22%20+%20_id%29%20%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%0A//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20....%0A%20%20addDestructor%28function%28%29%20%7B%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%0A%7D%29%28%29%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%23id%20.toolbarbutton-text%20%7B%0Amin-height%3A%2023px%20%21important%3B%20height%3A%2023px%20%21important%3B%20border-radius%3A%203px%20%20%21important%3B%20padding%3A%200px%205px%200px%20%21important%3B%20font-family%3A%20segoe%20ui%20%21important%3B%20%20color%3A%20%2300ffff%20%21important%3B%20font-size%3A%2015px%20%21important%3B%20%20margin-bottom%3A%202px%20%21important%3B%20%20margin-right%3A%201px%20%21important%3B%20margin-left%3A%203px%20%21important%3B%20%20background%3A%20linear-gradient%28rgb%2872%2C%2085%2C%20108%29%2Crgb%2820%2C%2025%2C%2034%29%29%20%21important%3B%0A%20%20%20%20%20%0A%7D%0A%0A%23id%20.toolbarbutton-icon%20%7B%0A%20%20display%3A%20none%20%21important%3B%0A%7D%20%0A%0A%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Url кнопки память .Плюс приблуды .Папку memreduk - в профиль. Версия винды 64.Браузер - без разницы .У кого винда32- сменить две соответствующие утилиты(memred и nircmd)
https://www.upload.ee/files/12966080/memreduk.rar.html Автоматом срабатывает при 770мгб .сами выставляйте. Для особо одаренных - при мультережиме нет большого смысла.

Добавлено 05-03-2021 13:32:50
Видео в плеер,(без мультирежима) Плеер -смотреть путь в двух местах прописан!

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0412%u0438%u0434%u0435%u043E%20%u0432%20player%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bmoz-icon%3A//file%3A//D%3A%5CPotPlayer%5CPotPlayerMini64.exe%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A%0A%0Avar%20path%20%3D%20%27D%3A%5C%5CPotPlayer%5C%5CPotPlayerMini64.exe%27%0A%0Avar%20sysPlayerName%20%3D%20%22PotPlayer%22%3B%0A%0Avar%20openIn%20%3D%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%22+sysPlayerName%3B%0Avar%20videoMoved%20%3D%20%22%u0412%u0438%u0434%u0435%u043E%20%u043F%u0435%u0440%u0435%u043D%u0435%u0441%u0435%u043D%u043E%20%u0432%20%22+sysPlayerName%3B%0Avar%20noFound%20%3D%20%22%u041D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%u043E%20%u0432%u0438%u0434%u0435%u043E%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%2C%20%u0434%u043E%u0441%u0442%u0443%u043F%u043D%u043E%u0435%20%u0434%u043B%u044F%20%u043F%u0435%u0440%u0435%u043D%u043E%u0441%u0430%20%u0432%20%22+sysPlayerName%3B%0A%0Avar%20YoutubeID%20%3D%20/%28%3F%3Ayoutube%28%3F%3A-nocookie%29%3F%5C.com%5C/%28%3F%3A%5B%5E%5C/%5Cn%5Cs%5D+%5C/%5CS+%5C/%7C%28%3F%3Av%7Ce%28%3F%3Ambed%29%3F%29%5C/%7C%5CS*%3F%5B%3F%26%5Dv%3D%29%7Cyoutu%5C.be%5C/%29%28%5Ba-zA-Z0-9_-%5D%7B11%7D%29%28%3F%3A%5CW%7C%24%29/%3B%0A%0A%0A%0Aif%28%21%28cbu.getPrefs%28%22CB.KMP%22%29%29%20%7C%7C%20cbu.getPrefs%28%22CB.KMP%22%29.length%20%3C%209%29%20cbu.setPrefs%28%22CB.KMP%22%2C%20%22videotoplayer%22%29%3B%0Avar%20tmp%20%3D%20%27%27%2C%0Atmpp%20%3D%20%27%27%2C%0AinnerA%20%3D%20%27%3Cdiv%20style%3D%22display%3Ablock%21important%3Bcolor%3A%2300ff00%21important%3Bwidth%3A250px%21important%3Bfont%3Abold%2016px%20serif%21important%3Bz-index%3A999%21important%3Bopacity%3A1%21important%3Bvisibility%3A%20visible%21important%3B%27%2C%0AinnerB%20%3D%20%27left%3A5px%21important%3Bposition%3Aabsolute%21important%3Bheight%3Aauto%21important%3Bbox-sizing%3Aborder-box%21important%3Bpadding%3A5px%21important%3Bmargin%3A5px%21important%3B%27%2C%0AstopPl%20%3D%20%22javascript%3A%28function%28%29%7Bv%3Ddocument.getElementById%28%27movie_player%27%29%3Bif%28v%29%7Bv.stopVideo%28%29%7Delse%7Bv%3Ddocument.getElementsByTagName%28%27video%27%29%3Bif%28v%29%7Bv%5B0%5D.src%3D%27%27%3Btry%7Bv%5B0%5D.load%28%29%7Dcatch%28e%29%7B%7D%7D%3B%7D%7D%29%28%29%3B%22%2C%0AytIMGouter%20%3D%20function%28ytID%29%20%7Breturn%20%27%3Cdiv%20width%3D%22100%25%22%3E%3Cbr%20/%3E%3Ca%20target%3D%22_blank%22%20href%3D%22https%3A//www.youtube.com/watch%3Fv%3D%27%20+%20ytID%20+%20%27%22%3E%3Cimg%20src%3D%22https%3A//i.ytimg.com/vi/%27%20+%20ytID%20+%20%27/hqdefault.jpg%22%3E%3C/a%3E%3Cbr%20/%3E%27%20+%20innerA%20+%20%27background-color%3Ablack%21important%3Bposition%3Arelative%21important%3Bbottom%3A20px%21important%3B%22%3E%26nbsp%3B%26nbsp%3B%27%20+%20videoMoved%20+%20%27%3C/div%3E%3Cbr%20/%3E%3C/div%3E%3Cbr%20/%3E%27%7D%2C%0AhandlWin%20%3D%20function%28currentWin%29%20%7B%0Atmp%20%3D%20%27%27%3B%0Avar%20elem%20%3D%20currentWin.document.getElementsByTagName%28%27video%27%29%2C%20currLoc%20%3D%20currentWin.location%3B%0Aif%28elem.length%20%3E%200%29%20%7B%0Aif%28currLoc.hostname.indexOf%28%27youtu%27%29%20%21%3D%20-1%20%26%26%20%28tmp%20%3D%20currLoc.toString%28%29.match%28YoutubeID%29%29%20%26%26%20tmp%5B1%5D.length%20%3D%3D%2011%29%20%7B%0Aplay%28cbu.getPrefs%28%22CB.KMP%22%29%20%3D%3D%20%22videotoplaylist%22%20%3F%20%27https%3A//www.youtube.com/embed/%27%20+%20tmp%5B1%5D%20%3A%20%27https%3A//www.youtube.com/watch%3Fv%3D%27%20+%20tmp%5B1%5D%29%3B%0AvideoMovedbox%20%3D%20currentWin.document.createElement%28%27videoMoved%27%29%3B%0AvideoMovedbox.innerHTML%20%3D%20innerA%20+%20innerB%20+%20%27top%3A-15px%21important%3B%22%3E%3Cb%3E%27%20+%20videoMoved%20+%20%27%3C/b%3E%3C/div%3E%27%3B%0AloadURI%28stopPl%29%3B%0AcurrentWin.document.getElementById%28%27eow-title%27%29.appendChild%28videoMovedbox%29%3B%0Areturn%20true%3B%0A%7D%3B%0Afor%28i%20%3D%200%3B%20i%20%3C%20elem.length%3B%20i++%29%20%7B%0Aif%28%28%28tmp%20%3D%20getSrc%28elem%5Bi%5D.parentNode%2C%20currLoc%29%29%20%26%26%20tmp.length%20%3E%202%29%20%7C%7C%20%28i%20%3D%3D%200%20%26%26%20currentWin.document.body.innerHTML.substring%280%2C%207%29%20%3D%3D%20%27%3Cvideo%20%27%20%26%26%20%28tmp%20%3D%20currLoc.toString%28%29%29%29%29%20%7B%0AvideoMovedbox%20%3D%20currentWin.document.createElement%28%27videoMoved%27%29%3B%0AvideoMovedbox.innerHTML%20%3D%20innerA%20+%20innerB%20+%20%27top%3A20px%21important%3Bbackground-color%3Ablack%21important%3B%22%3E%27%20+%20videoMoved%20+%20%27%3C/div%3E%27%3B%0Aplay%28tmp%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0Aif%28currLoc.hostname%20%3D%3D%20%27www.youtube.com%27%29%20%7B%0Aelem%5Bi%5D.parentNode.parentNode.appendChild%28videoMovedbox%29%3B%0A%7D%20else%20%7B%0Aelem%5Bi%5D.parentNode.appendChild%28videoMovedbox%29%3B%0A%7D%3B%0Aelem%5Bi%5D.src%20%3D%20%27%27%3B%0Atry%20%7B%0Aelem%5Bi%5D.load%28%29%0A%7D%20catch%28e%29%20%7B%7D%3B%0Areturn%20true%3B%0A%7D%0A%7D%0A%7D%3B%0A%0AcurrentWin._elems%20%3D%20currentWin.document.getElementsByTagName%28%27iframe%27%29%3B%0Aif%28currentWin._elems.length%20%3E%200%29%20%7B%0Afor%28currentWin._iCounter%20%3D%200%3B%20currentWin._iCounter%20%3C%20currentWin._elems.length%3B%20currentWin._iCounter++%29%20%7B%0Aif%28%28currentWin._elems%5BcurrentWin._iCounter%5D.src.indexOf%28%27youtube.com%27%29%20%3E%20-1%29%20%26%26%20%28tmp%20%3D%20currentWin._elems%5BcurrentWin._iCounter%5D.src.match%28YoutubeID%29%29%20%26%26%20%28tmp%5B1%5D.length%20%3D%3D%2011%29%29%20%7B%0Aplay%28cbu.getPrefs%28%22CB.KMP%22%29%20%3D%3D%20%22videotoplaylist%22%20%3F%20%27https%3A//www.youtube.com/embed/%27%20+%20tmp%5B1%5D%20%3A%20%27https%3A//www.youtube.com/watch%3Fv%3D%27%20+%20tmp%5B1%5D%29%3B%0AcurrentWin._elems%5BcurrentWin._iCounter%5D.outerHTML%20%3D%20ytIMGouter%28tmp%5B1%5D%29%3B%0Areturn%20true%3B%0A%7D%3B%0Aif%28currentWin._elems%5BcurrentWin._iCounter%5D.clientWidth%20%3E%2080%20%26%26%20currentWin._elems%5BcurrentWin._iCounter%5D.clientHeight%20%3E%2040%20%26%26%20handlWin%28currentWin._elems%5BcurrentWin._iCounter%5D.contentWindow%29%29return%20true%3B%0A%7D%0A%7D%3B%0A%0Aelem%20%3D%20currentWin.document.getElementsByTagName%28%27object%27%29%3B%0AcurrLoc%20%3D%20currentWin.location%3B%0Aif%28elem.length%20%3D%3D%200%29%20%7B%0Aelem%20%3D%20currentWin.document.getElementsByTagName%28%27embed%27%29%0A%7D%3B%0Aif%28elem.length%20%3E%200%29%20%7B%0Afor%28i%20%3D%200%3B%20i%20%3C%20elem.length%3B%20i++%29%20%7B%0Aif%28elem%5Bi%5D.innerHTML.indexOf%28%27youtu%27%29%20%21%3D%20-1%20%26%26%20%28tmp%20%3D%20elem%5Bi%5D.innerHTML.match%28YoutubeID%29%29%20%26%26%20tmp%5B1%5D.length%20%3D%3D%2011%29%20%7B%0Aplay%28cbu.getPrefs%28%22CB.KMP%22%29%20%3D%3D%20%22videotoplaylist%22%20%3F%20%27https%3A//www.youtube.com/embed/%27%20+%20tmp%5B1%5D%20%3A%20%27https%3A//www.youtube.com/watch%3Fv%3D%27%20+%20tmp%5B1%5D%29%3B%0Aelem%5Bi%5D.outerHTML%20%3D%20ytIMGouter%28tmp%5B1%5D%29%3B%0Areturn%20true%3B%0A%7D%20else%20%7B%0Aif%28elem%5Bi%5D.clientWidth%20%3E%2080%20%26%26%20elem%5Bi%5D.clientHeight%20%3E%2040%29%20%7B%0Aif%28%28%28tmp%20%3D%20getSrc%28elem%5Bi%5D.parentNode%2C%20currLoc%29%29%20%7C%7C%20%28tmp%20%3D%20getLink%28elem%5Bi%5D%2C%20currLoc%29%29%29%20%26%26%20tmp.length%20%3E%202%29%20%7B%0Aplay%28tmp%29%3B%0Aelem%5Bi%5D.outerHTML%20%3D%20innerA%20+%20%27background-color%3Ablack%21important%3Bbottom%3A20px%21important%3B%22%3E%26nbsp%3B%26nbsp%3B%27%20+%20videoMoved%20+%20%27%3C/div%3E%27%3B%0Areturn%20true%3B%0A%7D%3B%0A%7D%3B%0A%7D%0A%7D%3B%0A%7D%3B%0Areturn%20false%3B%0A%7D%3B%0A%0Athis.onclick%20%3D%20this.oncontextmenu%20%3D%20e%20%3D%3E%20%7B%0Aif%20%28e.target%20%21%3D%20this%29%20return%3B%0Aif%28e.button%20%3D%3D%200%29%20%7B%0Aif%28cbu.getPrefs%28%22CB.KMP%22%29.substring%280%2C6%29%20%3D%3D%20%22videom%22%29%7B%0Aelem%20%3D%20content.document.getElementsByTagName%28%27object%27%29%3B%0Aif%28elem.length%20%3D%3D%200%29%20%7B%0Aelem%20%3D%20content.document.getElementsByTagName%28%27embed%27%29%0A%7D%3B%0A%0AresizeObjs%28elem%29%3B%0AresizeObjs%28content.document.getElementsByTagName%28%27iframe%27%29%29%3B%0AresizeObjs%28content.document.getElementsByTagName%28%27video%27%29%29%3B%0A%7D%20else%20%7B%0Aif%28%21handlWin%28content%29%29custombuttons.alertSlide1%28noFound%29%3B%0A%7D%0A%7D%3B%0Aif%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20//%20%u041F%u041A%u041C%0Ae.preventDefault%28%29%3B%0Aif%20%28custombuttons.confirmBox%28null%2C%20%22%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u043F%u043B%u0435%u0435%u0440%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%3F%22%2C%20%22%u0414%u0430%22%2C%20%22%u041D%u0435%u0442%22%29%20%29%20%7B%0Avar%20file%20%3D%20Cc%5B%27@mozilla.org/file/local%3B1%27%5D.createInstance%28Ci.nsIFile%29%3B%0Afile.initWithPath%28%27D%3A%5C%5CPotPlayer%5C%5CPotPlayerMini64.exe%27%29%3B%0Avar%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0Avar%20link%20%3D%20gClipboard.read%28%29%3B%0Avar%20args%20%3D%20%5Blink%2C%22/play%22%5D%3B%0Aprocess.init%28%20file%20%29%3B%0Aprocess.run%28%20false%2C%20args%2C%20args.length%20%29%3B%0A%7D%0A%7D%3B%0A%7D%0Athis.oncontextmenu%20%3D%20e%20%3D%3E%20e.target%20%21%3D%20this%20%3F%20menu.hasAttribute%28%22context%22%29%0A%20%20%20%20%3A%20e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.altKey%20%7C%7C%20e.metaKey%20%7C%7C%20%28%0A%20%20%20%20%20%20%20%20e.detail%20%21%3D%201%20%3F%20menu.hidePopup%28%29%20%3A%20%21%21menu.openPopup%28this%2C%20%22after_start%22%29%0A%20%20%20%20%29%3B%0Acustombuttons.alertSlide1%20%3D%20function%28sTitle%29%20%7B%0Avar%20as%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0Aas.showAlertNotification%28%27chrome%3A//global/skin/icons/information-16.png%27%2C%20%22%22%2C%20sTitle%2C%20false%2C%20%22%22%2C%20null%29%3B%0AsetTimeout%28%28%29%20%3D%3E%20as.closeAlert%28%29%2C%20999%29%3B%0A%7D%3B%0Athis.tooltipText%3D%22%u041B%3A%20%u0412%u0438%u0434%u0435%u043E%20%u0432%20%u043F%u043B%u0435%u0435%u0440%5Cn%u041F%3A%20%u0412%u0438%u0434%u0435%u043E%20%u0438%u0437%20Clipboard%22%3B%0Afunction%20resizeObjs%28objs%29%20%7B%0Aif%28%21objs%29%20return%3B%0ALEVELS%20%3D%203%3B%0Adir%20%3D%20%28cbu.getPrefs%28%22CB.KMP%22%29%20%3D%3D%20%22videomaximize%22%29%20%3F%201%20%3A%20-1%3B%0Afor%28i%20%3D%200%3B%20i%20%3C%20objs.length%3B%20i++%29%20%7B%0Avar%20Width%20%3D%20new%20Array%28LEVELS%29%0Avar%20Height%20%3D%20new%20Array%28LEVELS%29%0AWidth%5B0%5D%20%3D%20objs%5Bi%5D.clientWidth%3B%0AHeight%5B0%5D%20%3D%20objs%5Bi%5D.clientHeight%3B%0Aif%28%28Width%5B0%5D%20%3E%20%28-20%20*%20dir%20+%20100%29%29%20%26%26%20%28Height%5B0%5D%20%3E%20%28-20%20*%20dir%20+%2060%29%29%29%20%7B%0Aobj%20%3D%20objs%5Bi%5D%3B%0Afor%28var%20k%20%3D%201%3B%0A%28%28k%20%3C%20LEVELS%29%20%26%26%20%28obj.parentNode%29%29%3B%20k++%29%20%7B%0Aobj%20%3D%20obj.parentNode%0AWidth%5Bk%5D%20%3D%20obj.clientWidth%3B%0AHeight%5Bk%5D%20%3D%20obj.clientHeight%3B%0A%7D%3B%0AWidth%5B0%5D%20%3D%20Width%5B0%5D%20+%20dir%20*%20%28Width%5B0%5D%20/%205%20%7C%200%29%3B%0AHeight%5B0%5D%20%3D%20Height%5B0%5D%20+%20dir%20*%20%28Height%5B0%5D%20/%205%20%7C%200%29%3B%0Aobjs%5Bi%5D.style.width%20%3D%20Width%5B0%5D%20+%20%22px%22%3B%0Aobjs%5Bi%5D.width%20%3D%20Width%5B0%5D%3B%0Aobjs%5Bi%5D.style.height%20%3D%20Height%5B0%5D%20+%20%22px%22%3B%0Aobjs%5Bi%5D.height%20%3D%20Height%5B0%5D%3B%0Aobj%20%3D%20objs%5Bi%5D%3B%0Afor%28var%20k%20%3D%201%3B%0A%28%28k%20%3C%20LEVELS%29%20%26%26%20%21%28objs%5Bi%5D.tagName%20%3D%3D%20%27IFRAME%27%29%20%26%26%20%28obj.parentNode%29%20%26%26%20%28Width%5Bk%5D%29%20%26%26%20%28Height%5Bk%5D%29%20%26%26%20%28Width%5Bk%5D%20%3E%20%28-20%20*%20dir%20+%20100%29%29%20%26%26%20%28Height%5Bk%5D%20%3E%20%28-20%20*%20dir%20+%2060%29%29%29%3B%20k++%29%20%7B%0Aobj%20%3D%20obj.parentNode%0AWidth%5Bk%5D%20%3D%20Width%5Bk%5D%20+%20dir%20*%20%28Width%5Bk%5D%20/%205%20%7C%200%29%3B%0AHeight%5Bk%5D%20%3D%20Height%5Bk%5D%20+%20dir%20*%20%28Height%5Bk%5D%20/%205%20%7C%200%29%3B%0Aobj.style.width%20%3D%20Width%5Bk%5D%20+%20%22px%22%3B%0Aobj.width%20%3D%20Width%5Bk%5D%3B%0Aobj.style.height%20%3D%20Height%5Bk%5D%20+%20%22px%22%3B%0Aobj.height%20%3D%20Height%5Bk%5D%3B%0A%7D%0A%7D%0A%7D%3B%0A%7D%3B%0A%0Afunction%20restProtHost%28lnkR%2C%20curLoc%29%20%7B%0Aif%28lnkR.length%3D%3D0%29return%20%27%27%3B%0Alet%20tr%20%3D%20lnkR.replace%28/%5E%3A%5C/%5C//%2C%20curLoc.protocol%20+%20%22//%22%29%3B%0Aif%28%21tr.match%28/%5Ehttps%3F%3A%5C/%5C//i%29%29%7B%0AlnkR%20%3D%20tr.replace%28/%5E%5C/+/%2C%20%27%27%29%3B%0Aif%28lnkR.split%28%27/%27%29%5B0%5D.split%28%27%3F%27%29%5B0%5D.split%28%27%23%27%29%5B0%5D.toLowerCase%28%29.match%28/%5E%28%3F%3A%5B-a-z%5Cd%5D+%5C.%29+%5Ba-z%5Cd%5D%7B2%2C6%7D%24/%29%29%7B%0Atr%20%3D%20curLoc.protocol%20+%20%27//%27%20+%20lnkR%3B%0A%7Delse%7B%0Atr%20%3D%20curLoc.protocol%20+%20%27//%27%20+%20curLoc.host%20+%20%22/%22%20+%20lnkR%3B%0A%7D%0A%7D%3B%0Areturn%20tr%3B%0A%7D%3B%0A%0Afunction%20getSrc%28vobj%2C%20currentLoc%29%20%7B%0Avar%20t%20%3D%20%27%27%2C%0Att%20%3D%20%27%27%3B%0Aif%28%28%28%28t%20%3D%20vobj.innerHTML.match%28/%3Cvideo.*%3F%5Cssrc%3D%28%3F%3A%28%3F%3A%27%28%5B%5E%27%5D*%29%27%29%7C%28%3F%3A%22%28%5B%5E%22%5D*%29%22%29%7C%28%5B%5E%5Cs%5D*%29%29/i%29%29%20%26%26%20%28t%29%20%26%26%20%28tt%20%3D%20t%5B1%5D%20%7C%7C%20t%5B2%5D%20%7C%7C%20t%5B3%5D%29%20%26%26%20tt.indexOf%28%27blob%3A%27%29%20%3D%3D%20-1%20%29%20%7C%7C%20%28%28t%20%3D%20vobj.innerHTML.match%28/%3Csource.*%3F%5Cssrc%3D%28%3F%3A%28%3F%3A%27%28%5B%5E%27%5D*%29%27%29%7C%28%3F%3A%22%28%5B%5E%22%5D*%29%22%29%7C%28%5B%5E%5Cs%5D*%29%29.*%3F%5Cstype%3D%5B%27%22%5D%3Fvideo%5C//i%29%29%20%26%26%20%28t%29%20%26%26%20%28tt%20%3D%20t%5B1%5D%20%7C%7C%20t%5B2%5D%20%7C%7C%20t%5B3%5D%29%29%29%20%26%26%20tt.length%20%3E%202%20%26%26%20tt.indexOf%28%27blob%3A%27%29%20%3D%3D%20-1%20%29%20%7B%0Aif%28tt.indexOf%28%22.mp4/%3F%22%29%20%3D%3D%20-1%29%20%7B%0Att%20%3D%20tt.replace%28/%26amp%3B/g%2C%20%22%26%22%29%0A%7D%3B%0At%20%3D%20restProtHost%28tt%2C%20currentLoc%29%3B%0Areturn%20t%3B%0A%7D%3B%0Areturn%20%27%27%3B%0A%7D%3B%0A%0Afunction%20getLink%28obj%2C%20curLocation%29%20%7B%0A%0A%0Aif%28%21obj%20%7C%7C%20%21obj.tagName%29%20return%20%27%27%3B%0Avar%20flashvars%20%3D%20%27%27%2C%0A//%20%20%20%20%20%20%20%20src%20%3D%20%27%27%2C%0Aq%20%3D%20obj.tagName.toLowerCase%28%29%3B%0A%0Avar%20getParam%20%3D%20function%28e%2C%20n%29%20%7B%0Avar%20v%20%3D%20%27%27%2C%0Ar%20%3D%20new%20RegExp%28%27%5E%28%27%20+%20n%20+%20%27%29%24%27%2C%20%27i%27%29%2C%0Aparam%20%3D%20e.getElementsByTagName%28%27param%27%29%3B%0Afor%28var%20igp%20%3D%200%2C%20p%3B%20p%20%3D%20param%5Bigp%5D%3B%20igp++%29%20%7B%0Aif%28p.hasAttribute%28%27name%27%29%20%26%26%20p.getAttribute%28%27name%27%29.match%28r%29%29%20%7B%0Av%20%3D%20p.getAttribute%28%27value%27%29%3B%0Abreak%0A%7D%3B%0A%7D%3B%0Areturn%20v%3B%0A%7D%3B%0A%0A%0Aif%28q%20%3D%3D%20%27object%27%29%20%7B%0A//%20%20%20%20%20%20%20%20src%20%3D%20obj.getAttribute%28%27data%27%29%20%7C%7C%20obj.getAttribute%28%27src%27%29%20%7C%7C%20getParam%28obj%2C%20%27movie%7Cdata%7Csrc%7Ccode%7Cfilename%7Curl%27%29%20%7C%7C%20%28obj.getElementsByTagName%28%27embed%27%29.length%20%3E%200%20%3F%20obj.getElementsByTagName%28%27embed%27%29%5B0%5D.getAttribute%28%27src%27%29%20%3A%20%27%27%29%3B%0Aflashvars%20%3D%20getParam%28obj%2C%20%27flashvars%27%29%3B%0A%7D%20else%20if%28q%20%3D%3D%20%27embed%27%29%20%7B%0A//%20%20%20%20%20%20%20%20src%20%3D%20obj.getAttribute%28%27src%27%29%3B%0Aflashvars%20%3D%20obj.getAttribute%28%27flashvars%27%29%3B%0A%7D%20else%20return%20%27%27%3B%0A%0A%0Aif%28%21flashvars%29%20return%20%27%27%3B%0A//%20%20%20src%20%3D%20restProtHost%28src%2C%20curLocation%29%3B%0A%0Avar%20restPath%20%3D%20function%28f%2C%20s%29%20%7B%0Areturn%28f.substring%280%2C%204%29%20%3D%3D%20%27http%27%29%20%3F%20f%20%3A%20s.replace%28/%5B%23%3F%5D.*%24/%2C%20%27%27%29.replace%28/%5B%5E%5C/%5D*%24/%2C%20f%29%0A%7D%3B%0A%0Afunction%20videoLinkExtract%28fl%29%20%7B%0A//alert%28fl%29%3B%0Avar%20linkArr%20%3D%20%5B%5D%2C%0AoutLinks%20%3D%20%5B%5D%2C%0Ajj%20%3D%200%2C%0Alba%20%3D%20%27%27%2C%0Albb%20%3D%20%27%27%2C%0AdecodeURL%20%3D%20gBrowser.currentURI.spec%3B%20%7B%0Atry%20%7B%0Areturn%20decodeURIComponent%28s%29%0A%7D%20catch%28e%29%20%7B%0Areturn%20unescape%28s%29%0A%7D%0A%7D%3B%0A%0Afor%28var%20ij%20%3D%200%3B%20ij%20%3C%203%3B%20ij++%29%20%7B%0Alba%20%3D%20lba%20+%20String.fromCharCode%28parseInt%28%28Math.random%28%29%20*%2015%20+%201%29%20+%20%27%27%2C%2010%29%29%3B%0Albb%20%3D%20lbb%20+%20String.fromCharCode%28parseInt%28%28Math.random%28%29%20*%2015%20+%2016%29%20+%20%27%27%2C%2010%29%29%3B%0A%7D%3B%0A%0Afunction%20pushWithMerit%28lnk%29%20%7B%0A%0Avar%20merit%20%3D%20-11%3B%0Aif%28lnk.match%28/%5Ehttps%3F%3A%5C/%5C//i%29%29%20merit%20%3D%20merit%20+%2040%3B%0Aif%28outLinks.length%20%3D%3D%200%29%20merit%20%3D%20merit%20+%201%3B%0Aif%28lnk.match%28/%5E%5C//%29%29%20merit%20%3D%20merit%20+%207%3B%0Aif%28lnk.match%28/%5E%5C/%5C//%29%29%20merit%20%3D%20merit%20+%2030%3B%0Aif%28lnk.match%28/240p%28%5B%5Ea-z%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%201%3B%0Aif%28lnk.match%28/%5B%5Ea-z%5D240%28%5B%5Ea-z0-9%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%201%3B%0Aif%28lnk.match%28/360p%28%5B%5Ea-z%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%203%3B%0Aif%28lnk.match%28/%5B%5Ea-z%5D360%28%5B%5Ea-z0-9%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%203%3B%0Aif%28lnk.match%28/480p%28%5B%5Ea-z%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%205%3B%0Aif%28lnk.match%28/%5B%5Ea-z%5D480%28%5B%5Ea-z0-9%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%205%3B%0Aif%28lnk.match%28/720p%28%5B%5Ea-z%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%207%3B%0Aif%28lnk.match%28/%5B%5Ea-z%5D720%28%5B%5Ea-z0-9%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%207%3B%0Aif%28lnk.match%28/%5C.mp4%28%5B%5Ea-z%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%208%3B%0Aif%28lnk.match%28/_hd%28%5B%5Ea-z%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20+%206%3B%0Aif%28lnk.match%28/%5C.%28jpg%7Cxml%29%28%5B%5Ea-z%5D%7C%24%29/i%29%29%20merit%20%3D%20merit%20-%2040%3B%0Aif%28merit%20%3E%200%29%20outLinks.push%28merit%20+%20lba%20+%20lnk%29%3B%0AServices.console.logStringMessage%28%27merit%3A%27+merit+%27%20lnk-%3E%27+lnk%29%3B%0A%7D%3B%0A%0AlinkArr.push%28fl%29%3B%0Awhile%28linkArr.length%20%3E%20jj%20%26%26%20jj%20%3C%2030%29%20%7B%0A%0Avar%20testPaths%20%3D%20%5B%5D%3B%0AtestPaths%20%3D%20linkArr%5Bjj%5D.split%28/%28%5C.%28%3F%3Aflv%7Cmp4%7Cm3u8%29%29/i%29%3B%0Aif%28testPaths%5BtestPaths.length%20-%201%5D%20%3D%3D%20%27%27%29%20testPaths.pop%28%29%3B%0A%0Afor%28k%20%3D%201%3B%20k%20%3C%20testPaths.length%3B%20k%20%3D%20k%20+%202%29%20%7B%0A%0Aif%28testPaths%5Bk%20-%201%5D.indexOf%28lba%29%20%3E%20-1%29%20%7B%0Apref%20%3D%20testPaths%5Bk%20-%201%5D%3B%0A%7D%20else%20%7B%0Avar%20testAboutDom%20%3D%20testPaths%5Bk%20-%201%5D.toLowerCase%28%29.split%28/%28https%3F%3A%5C/%5C/%29/%29%3B%20%0Aif%28testAboutDom%5BtestAboutDom.length%20-%201%5D%3D%3D%27%27%29%20testAboutDom.pop%28%29%3B%0Avar%20pTest%20%3D%20testAboutDom%5BtestAboutDom.length%20-%201%5D.split%28/%28%5C%3F%5B%5E%5C%3F%5D*%3F%26%29/%29%3B%0Aif%28pTest.length%3E2%29%7B%0ApTest.pop%28%29%3B%0ApTest.pop%28%29%3B%0A%7D%3B%0AtestAboutDom%5BtestAboutDom.length%20-%201%5D%20%3D%20pTest.join%28%27%27%29%3B%0Apref%20%3D%20testPaths%5Bk%20-%201%5D.substring%28testAboutDom.join%28%27%27%29.lastIndexOf%28%22%26%22%29%20+%201%29%3B%0A%7D%3B%0A%0At2%20%3D%20pref.lastIndexOf%28lbb%29%3B%0Aif%28t2%20%3E%20-1%29%20%7B%0Apref%20%3D%20pref.substring%28t2%20+%203%29%3B%0A%7D%20else%20%7B%0A%0At2%20%3D%20pref.lastIndexOf%28%27%7B%22%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%202%29%3B%0At2%20%3D%20pref.lastIndexOf%28%27%5B%22%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%202%29%3B%0At2%20%3D%20pref.lastIndexOf%28%27%2C%22%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%202%29%3B%0At2%20%3D%20pref.toLowerCase%28%29.lastIndexOf%28%27%22http%3A//%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%201%29%3B%0At2%20%3D%20pref.toLowerCase%28%29.lastIndexOf%28%27%22https%3A//%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%201%29%3B%0At2%20%3D%20pref.toLowerCase%28%29.lastIndexOf%28%27%2Chttp%3A//%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%201%29%3B%0At2%20%3D%20pref.toLowerCase%28%29.lastIndexOf%28%27%2Chttps%3A//%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%201%29%3B%0At2%20%3D%20pref.toLowerCase%28%29.lastIndexOf%28%27%3Bhttp%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%201%29%3B%0At2%20%3D%20pref.toLowerCase%28%29.lastIndexOf%28%27*https%3A//%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%201%29%3B%0At2%20%3D%20pref.toLowerCase%28%29.lastIndexOf%28%27%20or%20%27%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%204%29%3B%0A%0Apref%20%3D%20pref.substring%28pref.split%28%27/%27%29%5B0%5D.toLowerCase%28%29.split%28%27%252f%27%29%5B0%5D.lastIndexOf%28%27%3D%27%29%20+%201%29%3B%0A%0A%7D%0A%0Aif%28pref.length%20%3E%200%29%20%7B%0A%0Aif%28pref.split%28%27%3F%27%29%5B0%5D.toLowerCase%28%29.match%28/%25%5B2-3%5D%5B0-9a-f%5D/%29%29%20%7B%0A%0At2%20%3D%20pref.indexOf%28%27%22%27%29%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%201%29%3B%0Asuff%20%3D%20testPaths%5Bk%20+%201%5D%20%3F%20testPaths%5Bk%20+%201%5D.split%28%27%26%27%29%5B0%5D.split%28%27%22%27%29%5B0%5D.split%28%27%3B%27%29%5B0%5D.split%28/%2Chttp/i%29%5B0%5D%20%3A%20%27%27%3B%0Aif%28%28suff%20%21%3D%20testPaths%5Bk%20+%201%5D%29%20%7C%7C%20%28testPaths.length%20%3C%20k%20+%203%29%29%20%7B%0Aif%28testPaths.length%20%3E%20k%20+%201%29%20%7B%0AtestPaths%5Bk%20+%201%5D%20%3D%20%28%28pref%20%3D%3D%20testPaths%5Bk%20-%201%5D%29%20%3F%20%27%27%20%3A%20%27%26%27%29%20+%20testPaths%5Bk%20+%201%5D.substr%28suff.length%29%0A%7D%3B%0At2%20%3D%20pref.lastIndexOf%28lba%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%203%29%0AlinkArr.push%28decodeURL%28pref%20+%20testPaths%5Bk%5D%20+%20suff%29%29%3B%0A%0A%7D%20else%20%7B%0AtestPaths%5Bk%20+%201%5D%20%3D%20%28pref%20%3D%3D%20testPaths%5Bk%20-%201%5D%20%3F%20%27%27%20%3A%20lbb%29%20+%20pref%20+%20testPaths%5Bk%5D%20+%20suff%0A%7D%0A%7D%20else%20%7B%0Asuff%20%3D%20testPaths%5Bk%20+%201%5D%20%3F%20testPaths%5Bk%20+%201%5D.split%28%27%3B%27%29%5B0%5D.split%28%27%22%5D%27%29%5B0%5D.split%28%27%22%7D%27%29%5B0%5D.split%28%27%22%2C%27%29%5B0%5D.split%28/%2Chttps%3F%3A%5C/%5C//i%29%5B0%5D.split%28%27*https%3A//%27%29%5B0%5D.split%28%27%20or%20%27%29%5B0%5D%20%3A%20%27%27%3B%0At2%20%3D%20suff.indexOf%28%27%26%27%29%3B%0Aif%28%28t2%20%3E%20-1%29%20%26%26%20%28pref%20%21%3D%20testPaths%5Bk%20-%201%5D%29%29%20%7B%0Aif%28t2%20%3D%3D%200%29%20suff%20%3D%20%27%27%3B%0Aif%28suff.charAt%280%29%20%21%3D%20%27%3F%27%29%20suff%20%3D%20suff.split%28/%28%26%5B%5E%26%5D+%3Dhttps%3F%3A%5C/%5C/%29/i%29%5B0%5D%3B%0A%7D%3B%0Aif%28%28suff%20%21%3D%20testPaths%5Bk%20+%201%5D%29%20%7C%7C%20%28testPaths.length%20%3C%20k%20+%203%29%29%20%7B%0Aif%28testPaths.length%20%3E%20k%20+%201%29%20%7B%0AtestPaths%5Bk%20+%201%5D%20%3D%20%28%28pref%20%3D%3D%20testPaths%5Bk%20-%201%5D%29%20%3F%20%27%27%20%3A%20%27%26%27%29%20+%20testPaths%5Bk%20+%201%5D.substr%28suff.length%29%0A%7D%3B%0At2%20%3D%20pref.lastIndexOf%28lba%29%3B%0Aif%28t2%20%3E%20-1%29%20pref%20%3D%20pref.substring%28t2%20+%203%29%3B%0ApushWithMerit%28pref%20+%20testPaths%5Bk%5D%20+%20suff%29%3B%0A%0A%7D%20else%20%7B%0AtestPaths%5Bk%20+%201%5D%20%3D%20lba%20+%20%28pref%20%3D%3D%20testPaths%5Bk%20-%201%5D%20%3F%20%27%27%20%3A%20lbb%29%20+%20pref%20+%20testPaths%5Bk%5D%20+%20suff%0A%7D%0A%7D%0A%7D%0A%7D%3B%0Ajj%20%3D%20jj%20+%201%3B%0A%7D%3B%0A%0Aif%28outLinks.length%20%3D%3D%200%29%20return%20%27%27%3B%0Afunction%20srt%28a%2C%20b%29%20%7B%0Aa%20%3D%20parseInt%28a.substr%280%2C%20a.indexOf%28lba%29%29%2C%2010%29%3B%0Ab%20%3D%20parseInt%28b.substr%280%2C%20b.indexOf%28lba%29%29%2C%2010%29%3B%0Aif%28a%20%3C%20b%29%20return%201%3B%0Aif%28a%20%3E%20b%29%20return%20-1%3B%0Areturn%200%0A%7D%3B%0AoutLinks.sort%28srt%29%3B%0AoutLinks%5B0%5D%20%3D%20outLinks%5B0%5D.substr%28outLinks%5B0%5D.indexOf%28lba%29%20+%203%29%0Aif%28outLinks%5B0%5D.indexOf%28%27_hq.mp4/%3Ftime%3D%27%29%20%3E%200%29%20outLinks%5B0%5D%20%3D%20outLinks%5B0%5D.replace%28/%26/g%2C%20%27%26amp%3B%27%29%3B%0Areturn%20outLinks%5B0%5D%3B%0A%7D%3B%0Aol%20%3D%20videoLinkExtract%28flashvars%29%3B%0Aif%28%21ol%29%20return%20%27%27%3B%0A//%20%20%20%20ol%20%3D%20ol.replace%28/%5E%3A%3F%5C/%5C//%2C%20curLocation.protocol%20+%20%22//%22%29%3B%0A//%20%20%20%20return%20restPath%28ol%2C%20src%29%3B%0Areturn%20restProtHost%28ol%2C%20curLocation%29%3B%0A%7D%3B%0A%0Avar%20menu%20%3D%20self.appendChild%28document.createXULElement%28%22menupopup%22%29%29%3B%0Aself.image%20%3D%20%22moz-icon%3A//file%3A//%22%20+%20path%3B%0Avar%20playerName%20%3D%20path.split%28%22%5C%5C%22%29.pop%28%29.replace%28%22.exe%22%2C%22%22%29%3B%0AsetTimeout%28%28%29%20%3D%3E%20%7B%0AMenu_n_TooltipTxts.forEach%28%28m%29%20%3D%3E%20%7B%0Aif%28%22separator%22%20in%20m%29%20%7B%0Amenu.appendChild%28document.createXULElement%28%22menuseparator%22%29%29%3B%0Areturn%0A%7D%3B%0Avar%20mItem%20%3D%20document.createXULElement%28%22menuitem%22%29%3B%0AmItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%0Aif%28%22radio%22%20in%20m%29%20%7B%0AmItem.setAttribute%28%22type%22%2C%20%22radio%22%29%3B%0AmItem.setAttribute%28%27checked%27%2C%20cbu.getPrefs%28%22CB.KMP%22%29%20%3D%3D%20m.value%29%3B%0Aif%28cbu.getPrefs%28%22CB.KMP%22%29%20%3D%3D%20m.value%29%20%7B%0Aself.tooltipText%20%3D%20m.tooltipTxt%3B%0A%7D%0AmItem.onclick%20%3D%20%28%29%20%3D%3E%20%7B%0Acbu.setPrefs%28%22CB.KMP%22%2C%20m.value%29%3B%0Atmp%20%3D%20%28self.image%20%3D%3D%20imgFlashToPlayer%20%7C%7C%20self.image%20%3D%3D%20imgFlashMinimize%20%7C%7C%20%20self.image%20%3D%3D%20imgFlashMaximize%29%3B%0Aif%28m.value.substring%280%2C9%29%3D%3D%27videotopl%27%29%7B%0Aself.image%20%3D%20tmp%20%3F%20imgFlashToPlayer%20%3A%20imgHTML5ToPlayer%3B%0A%7D%20else%20if%28m.value%3D%3D%27videominimize%27%29%20%7B%0Aself.image%20%3D%20tmp%20%3F%20imgFlashMinimize%20%3A%20imgHTML5Minimize%3B%0A%7D%20else%20self.image%20%3D%20tmp%20%3F%20imgFlashMaximize%20%3A%20imgHTML5Maximize%3B%0Aself.tooltipText%20%3D%20m.tooltipTxt%3B%0A%7D%3B%0A%7D%0Aif%28%22checkbox%22%20in%20m%29%20%7B%0AmItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0AmItem.setAttribute%28%27checked%27%2C%20%28self.image%20%3D%3D%20imgFlashToPlayer%20%7C%7C%20self.image%20%3D%3D%20imgFlashMinimize%20%7C%7C%20%20self.image%20%3D%3D%20imgFlashMaximize%20%29%29%3B%0AmItem.onclick%20%3D%20function%28e%29%20%7B%0Ae.stopPropagation%28%29%3B%0Ae.preventDefault%28%29%3B%0Aif%28e.button%20%3D%3D%200%29%20toggleFlash%28%29%3B%0A%7D%0A%7D%0Amenu.appendChild%28mItem%29%3B%0A%7D%29%3B%0Amenu.onclick%20%3D%20function%28e%29%20%7B%0Ae.stopPropagation%28%29%3B%0Aif%28e.button%20%3E%200%29%20e.preventDefault%28%29%3B%0A%7D%3B%0A%7D%2C%20100%29%3B%0A%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0Avar%20menuitem%20%3D%20contextMenu.insertBefore%28document.createXULElement%28%22menuitem%22%29%2C%20document.getElementById%28%22context-savelink%22%29%29%3B%0Amenuitem.setAttribute%28%22label%22%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%22%20+sysPlayerName%29%3B%20%20%20%20%20%20%0Amenuitem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0Amenuitem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20path%29%3B%20%0Amenuitem.onclick%20%3D%20%28%29%20%3D%3E%20play%28gContextMenu.linkURL%20%7C%7C%20gContextMenu.mediaURL%29%3B%0AaddEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20menuitem.hidden%20%3D%20%21gContextMenu.onLink%20%26%26%20%21gContextMenu.onVideo%20%26%26%20%21gContextMenu.onPlainTextLink%2C%20false%2C%20contextMenu%29%3B%0AaddDestructor%28%28%29%3D%3E%20menuitem.remove%28%29%20%29%3B%0A%0Aonclick%20%3D%20%28%29%20%3D%3E%20%7B%0Ae.preventDefault%28%29%3B%0Avar%20vurl%20%3D%20gContextMenu.mediaURL%2C%20videoelem%20%3D%20gContextMenu.target%3B%0Aif%28videoelem%20%26%26%20videoelem.nodeName.toLowerCase%28%29%20%3D%3D%20%27video%27%29%20%7B%0Aif%28content.location.hostname.indexOf%28%27youtu%27%29%20%21%3D%20-1%20%26%26%20%28tmp%20%3D%20content.location.toString%28%29.match%28YoutubeID%29%29%20%26%26%20tmp%5B1%5D.length%20%3D%3D%2011%29%20%7B%0Aplay%28vurl%29%3B%0AvideoMovedbox%20%3D%20content.document.createElement%28%27videoMoved%27%29%3B%0AvideoMovedbox.innerHTML%20%3D%20innerA%20+%20innerB%20+%20%27top%3A-15px%21important%3B%22%3E%3Cb%3E%27%20+%20videoMoved%20+%20%27%3C/b%3E%3C/div%3E%27%3B%0AloadURI%28stopPl%29%3B%0Acontent.document.getElementById%28%27eow-title%27%29.appendChild%28videoMovedbox%29%3B%0Areturn%3B%0A%7D%3B%0A%0Aif%28content.location.hostname%20%3D%3D%20%27www.youtube.com%27%29%20%7B%0Avideoelem.parentNode.parentNode.appendChild%28videoMovedbox%29%3B%0A%7D%20else%20%7B%0Avar%20inFrameHref%20%3D%20inFrameWin.location.href%2C%20found%20%3D%20false%3B%0Aif%28inFrameWin.location.hostname%20%3D%3D%20%27www.youtube.com%27%20%26%26%20%28tmp%20%3D%20inFrameHref.match%28YoutubeID%29%29%20%26%26%20tmp%5B1%5D.length%20%3D%3D%2011%29%7B//%u0438%20%u0437%u043D%u0430%u0447%u0438%u0442%20%u0432%u043E%20%u0444%u0440%u0435%u0439%u043C%u0435%0Aelem%20%3D%20inFrameWin.parent.document.getElementsByTagName%28%27iframe%27%29%3B%0Aif%28elem.length%20%3E%200%29%20%7B%0Afor%28i%20%3D%200%3B%20i%20%3C%20elem.length%3B%20i++%29%20%7B%0Aif%28elem%5Bi%5D.contentWindow%20%3D%3D%20inFrameWin%29%20%7B%0Aelem%5Bi%5D.outerHTML%20%3D%20ytIMGouter%28tmp%5B1%5D%29%3B%0Afound%20%3D%20true%3B%0Abreak%3B%0A%7D%3B%0A%7D%3B%0A%7D%3B%0Aif%28%21found%29inFrameWin.document.body.innerHTML%20%3D%20ytIMGouter%28tmp%5B1%5D%29%3B%0Areturn%3B%0A%7D%3B%0Avideoelem.parentNode.appendChild%28videoMovedbox%29%3B%0A%7D%3B%0Avideoelem.src%20%3D%20%27%27%3B%0Atry%20%7B%0Avideoelem.load%28%29%0A%7D%20catch%28e%29%20%7B%7D%3B%0A%7D%20else%20play%28vurl%29%3B%0A%7D%3B%0A%0A%0AaddEventListener%28%22popupshowing%22%2C%20%28%29%20%3D%3E%20%7B%0AmItem.hidden%20%3D%20%21gContextMenu.onVideo%20%7C%7C%20%21gContextMenu.mediaURL%3B%0AmItem2.hidden%20%3D%20%21gContextMenu.linkURL%3B%0AmItem3.hidden%20%3D%20framItem.hidden%20%7C%7C%20gContextMenu.target.ownerDocument.location.hostname.indexOf%28%27youtube.com%27%29%20%3D%3D%20-1%3B%0A%7D%2C%20false%2C%20contextMenu%29%3B%0AaddDestructor%28%28%29%20%3D%3E%20%7BmItem.remove%28%29%3BmItem2.remove%28%29%3BmItem3.remove%28%29%7D%29%3B%0A%0A%0Afunction%20play%28link%29%20%7B%0Aif%20%28custombuttons.confirmBox%28null%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%20%u0441%u0441%u044B%u043B%u043A%u0443%20%20%u0432%20%u043F%u043B%u0435%u0435%u0440%u0435%20%3F%22%2C%20%22%u0414%u0430%22%2C%20%22%u041E%u0442%u043C%u0435%u043D%u0430%22%29%20%29%20%7B%0Avar%20file%20%3D%20Services.dirsvc.get%28%27CurProcD%27%2C%20Ci.nsIFile%29%3B%0Avar%20MozExeDir%20%3D%20file.path.split%28%27%5C%5C%27%29.slice%280%2C-1%29.join%28%27%5C%5C%27%29%3B%0Afile.initWithPath%28path%29%3B%0Aif%28%21file.exists%28%29%29%20%7B%0Acustombuttons.alertBox%28%22File%20not%20found%21%22%2C%20MozExeDir%20+%20Path%29%3B%0Areturn%3B%0A%7D%3B%0Avar%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0Avar%20args%20%3D%20%5Blink%5D%3B%0Aprocess.init%28%20file%20%29%3B%0Aprocess.run%28%20false%2C%20args%2C%20args.length%20%29%3B%0A%7D%3B%0A%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано solombala (05-03-2021 13:32:50)

Отсутствует

 

№1522205-03-2021 14:13:18

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 86.0

Re: Custom Buttons

solombala
Вот так показывает кнопка Dumby после старта FF
486fe56546e6.png
А вот так твоя
767367722ab3.png
По моему, ты один остался в новых версиях без мультирежима. Чем ты это мотивируешь, если не секрет.

Отсутствует

 

№1522305-03-2021 14:21:50

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

Re: Custom Buttons

rubel
Спроси у Dumby  ...Какую память кнопка показывает. Какой вкладки? если на каждую своя...Или она все процессы показывает, т. е. сумму?
Или ты скажи, в чем фишка мультирежима? Только в жоре памяти...

Отсутствует

 

№1522405-03-2021 16:25:16

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 559
UA: Firefox 86.0

Re: Custom Buttons

solombala

Какую память кнопка показывает. Какой вкладки? если на каждую своя...Или она все процессы показывает, т. е. сумму?

Dumby

Могу нечто простенькое предложить.
Ни приблуд, ни прибамбасов, вообще ничего.
Суммарный жор памяти, так, как показывает его страница about:processes

Вот ответ на твой вопрос.
solombala

Или ты скажи, в чем фишка мультирежима? Только в жоре памяти...

Раз сделали этот режим, значит не просто так. А памяти у меня 16 гб так что не жалко ради стабильности. :)

Отсутствует

 

№1522505-03-2021 19:42:54

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

Re: Custom Buttons

Dumby
Здесь можно рихтануть, чтобы и при мультирежиме правильно показывало, или это не совместимо? Так то всегда однопроцессорный режим.

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

Выделить код

Код:

/*Initialization Code*/

// ====================================================================================
// Memory Monitor ................................
// https://forum.mozilla-russia.org/viewtopic.php?id=52237
// ====================================================================================
var idbut=this.id;
var urlbar = document.getElementById("page-action-buttons");
var button = document.getElementById(idbut);
urlbar.insertBefore(button, urlbar.Child);

var style = custombutton.buttonGetHelp(self).replace(/id/g, _id);
var uri = makeURI('data:text/css,'+ encodeURIComponent(style));
var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
sss.loadAndRegisterSheet(uri, 0);

// Подсказка кнопки ................................
this.tooltipText = "ЛКМ: Очистить Память";       

                   
// Настройка функций кликов мыши для кнопки ................................
this.onclick = this.oncontextmenu = function(event) {
    
     
      if (event.button == 0) { 
       
         
         var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         file.initWithPath(file.path + "\\memreduk\\start.vbs"); 
         file.launch();
         
         
     }
         
          
};
this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };
        
// Показывать потребление памяти на текущей кнопке
(function () { 
self.timer = setInterval(function() {
      var memory = getMemory();
      self.label = getMemory()
      if ( memory > 770 ) {
        var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         file.initWithPath(file.path + "\\memreduk\\start.vbs"); 
         file.launch();
         
           }
   }, 2000 );     
 
// Получить всю занимаемую оперативную память в MB ....
   function getMemory() {           
      var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager);
      try {
          var e = reporterManager.enumerateReporters();
          while ( e.hasMoreElements() ) {
                  var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter);
                  self[mr.path] = mr;
                  }
          var memory = self["resident"].amount;
          }
      catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly
     
      return ( Math.round( memory/1048576 ) );
   };     

// Стиль добавляет текст на кнопку ....
   var uri = makeURI('data:text/css,'+ encodeURIComponent('\
   %button% .toolbarbutton-icon {\
     display: none !important;\
   }\
   %button% .toolbarbutton-text {\
     display: -moz-box !important;\
   }\
   %button% {\
     -moz-box-orient: horizontal !important;\
   }\
   '.replace(/%button%/g, "#" + _id) ));
   const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
   sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
   
// Удалять счётчик памяти и другие изменения ....
  addDestructor(function() {
      try { window.clearTimeout( self.timer ) } catch(e) {};
   });
})();

Отсутствует

 

Board footer

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