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

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

№1250112-03-2018 10:03:54

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4698
UA: Palemoon 27.0

Re: Custom Buttons

Dobrov пишет:

Я спрашивал про разный стиль текста в одной подсказке - Заголовок bold, затем обычный шрифт, или одно слово другим цветом, затем обычный шрифт.

Пример, на скорую руку:

Выделить код

Код:

this.onmouseover =()=> {
   self.tooltipText = "";
   
   var tooltip = self.appendChild(document.createElement("tooltip"));
   tooltip.style.cssText = "-moz-box-orient: vertical;";
   
   var image = tooltip.appendChild(document.createElement("image"));
   image.setAttribute("src", "https://forum.mozilla-russia.org/favicon.ico#-moz-resolution=16,16");
   image.style.cssText = "width: 16px !important; height: 16px !important;";
   
   var label = tooltip.appendChild(document.createElement("label"));
   label.setAttribute("value", "Demo1");
   label.style.cssText = "color: blue !important; font-weight: bold !important; font-size: 14px !important;";
   
   var label = tooltip.appendChild(document.createElement("label"));
   label.setAttribute("value", "Demo2");
   label.style.cssText = "color: red !important; font-size: 24px !important;";
   
   tooltip.showPopup(self, -1, -1, "popup", "topleft", "topright");
   self.onmouseleave =()=> { tooltip.hidePopup(self.onmouseleave = null); self.removeChild(tooltip) };                                                   
};

Отсутствует

 

№1250213-03-2018 11:16:08

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3022
UA: Firefox 58.0

Re: Custom Buttons

На 59 кнопки можно заставить работать или это всё? :(
Если вдруг они работать должны — дайте пожалуйста ссылочку на аддончик.
Firefox без CB уныл и грустен.
Спасибо.

Отсутствует

 

№1250315-03-2018 19:03:11

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 842
UA: Firefox 55.0

Re: Custom Buttons

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

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

Выделить код

Код:

// Выделение вкладки добавленой в закладки ..........

({
    style: `
        @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
        .tabbrowser-tab[inbookmarks] .tab-text.tab-label {
            font-weight: bold !important;
        }
    `.trim(),
    addProcessingInstruction: function(add) {
        if (add) {
            this.pi = document.createProcessingInstruction("xml-stylesheet",
                `type="text/css" href="data:text/css,${encodeURIComponent(this.style)}"`
            );
            document.insertBefore(this.pi, document.firstChild);
        } else
            this.pi.remove();
    },
    init: function() {
        this.addProcessingInstruction(true);
        this.setAttributeForAllTabs(true);
        gBrowser.addTabsProgressListener(this);
        PlacesUtils.addLazyBookmarkObserver(this);

        addDestructor(this.destroy, this);
    },
    destroy: function() {
        this.addProcessingInstruction(false);
        this.setAttributeForAllTabs(false);
        gBrowser.removeTabsProgressListener(this);
        PlacesUtils.removeLazyBookmarkObserver(this);
    },
    isBookmarked: uri => Boolean(PlacesUtils.getBookmarksForURI(uri).length),
    onItemAdded: function(id, parent, ind, type, uri) this.onItem(type, uri),
    onItemRemoved: function(id, parent, ind, type, uri) this.onItem(type, uri),
    onItemChanged: function(id, property, isAnno, value, lm, type)
        property == "uri" && this.onItem(type),

    onItem: function(type, uri) {
        type == Ci.nsINavBookmarksService.TYPE_BOOKMARK
        && this.setAttributeForAllTabs(true, uri);
    },
    onLocationChange: function(browser, wp, req, uri) {
        var tab = gBrowser.getTabForBrowser(browser);
        this.setAttributeForTab(tab, this.isBookmarked(uri));
    },
    setAttributeForAllTabs: function(set, uri) {
        for(var tab of gBrowser.tabs) {
            var curr = tab.linkedBrowser.currentURI;
            if (uri && !uri.equals(curr)) continue;
            var state = set && this.isBookmarked(curr);
            this.setAttributeForTab(tab, state);
        }
    },
    setAttributeForTab: function(tab, set) {
        set ? tab.setAttribute("inbookmarks", true) : tab.removeAttribute("inbookmarks");
    }
}).init();


Отсутствует

 

№1250416-03-2018 12:22:54

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 842
UA: Firefox 55.0

Re: Custom Buttons

Я изменяю строку

Выделить код

Код:

.tabbrowser-tab[inbookmarks] .tab-text.tab-label {

на

Выделить код

Код:

.urlbar-input-box[inbookmarks] {

Но ничего не меняется, подскажите что не так я делаю?

Отсутствует

 

№1250516-03-2018 16:24:37

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 842
UA: Firefox 55.0

Re: Custom Buttons

В общем к кнопке что выше нужно еще добавить этот стиль:

Выделить код

Код:

#TabsToolbar .tabbrowser-tab[inbookmarks] {
    border-top:solid 3px orchid !important;
}

И над вкладками которые добавлены в закладки будет полоска указаного цвета.
https://s9.postimg.org/son9ksblb/screenshot_22.jpg

Отсутствует

 

№1250616-03-2018 20:47:25

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

Re: Custom Buttons

Я тут на три недели угодил в больницу (теперь хожу на костылях :D).
Таким образом слегка выпал из актуальности, прошу извинить, если обсуждалось.

Вобщем, поставил Nightly 61.0a1 (2018-03-16) и Custom Buttons не работает.
Консоль пишет, что this.__defineGetter__ is not a function
CB 0.0.5.8.9.6pre2, настройка jsloader.shareGlobal в дефолтном значении true

Изменил в CustomButtonsService.js примерно как здесь, и заработало.

Выделить код

Код:

//this. __defineGetter__ ( // Not available at startup
(this. __defineGetter__ || __defineGetter__). call ( // Not available at startup
    this,

Ну, и, собственно вопрос:
подтверждается ли это, и если да, то правильно ли сделал,
и выкладывалась ли где-то обновлённая версия?

Coroner пишет:

На 59 кнопки можно заставить работать или это всё? :(
Если вдруг они работать должны — дайте пожалуйста ссылочку на аддончик.
Firefox без CB уныл и грустен.
Спасибо.

Странный вопрос. Смотря какие кнопки. Установил FQ 59.0.1
Поставил CB 0.0.5.8.9.6pre2 (custom_buttons-0.0.5.8.9-fixed7.1.xpi) отсюда.
Код инициализации кнопок исполняется, код для нажатия тоже.
Так что да, «работать должны», если сам код кнопки годен для 59-й версии.

Отсутствует

 

№1250716-03-2018 23:49:51

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 141
UA: Firefox 57.0

Re: Custom Buttons

Dumby простые кнопки работают, но надолго ли? Возьмите другие иностранные форумы, все застыли на F57. Да же на на нашем  форуме, посмотрите у главных разработчиков - какие версии Firefox. У меня стоит примерно около 30 - 40 кодов. На новых версиях  Firefox, начиная с 56 у меня отваливаются процентов 20. Я просто не успеваю за всеми "новыми приколами" разработчиков, да и времени на это нету. А смысл бороться дальше, если все что связано с CB, выпилят в ближайших версиях. Все браузеры скоро будут однояйцовыми.
Извините за офтоп, это крик души.

Отсутствует

 

№1250817-03-2018 00:16:52

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3022
UA: Firefox 59.0

Re: Custom Buttons

Dumby пишет:

Странный вопрос. Смотря какие кнопки.

Виноват. По кнопками имел в виду "Custom Buttons", что в переводе означает кастомные кнопки.
Спасибо за ссылочки. Абсолютное большинство заработало.

Дело в том, что при применении профиля от 58 кнопок не было, был список в about:addons, сами кнопки отсутствовали на панели и ни один код не работал.
Устанавливаться с custombutton:// не желали. Вводя код, устанавливались в "никуда", хотя видны были в about:addons, но значки на панели были размером в пару пикселей.

Удалил CB, установил заново custom_buttons-0.0.5.8.9-fixed7.1 (у меня он же и стоял до этого, но почему то другого размера, отличался на несколько десятков байт).
Кнопки начались устанавливаться. Перетащил со старого профиля buttonsoverlay.xul — всё стало в порядке, за исключением отдельных кнопок.

Отредактировано Coroner (17-03-2018 00:17:34)

Отсутствует

 

№1250917-03-2018 03:28:51

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 519
UA: Firefox 52.0
Веб-сайт

Re: Custom Buttons

Stkvsky пишет:

Я изменяю строку

Выделить код

Код:

.tabbrowser-tab[inbookmarks] .tab-text.tab-label {

на

Выделить код

Код:

.urlbar-input-box[inbookmarks] {

Но ничего не меняется, подскажите что не так я делаю?

Этого недостаточно.
В коде атрибут inbookmarks присваивается именно табам, а не urlbar'у
Имхо, для табов это даже лучше - для урлбара можно так индицировать только активную вкладку (или же, что среди вкладок есть закладки), что имхо хуже


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№1251017-03-2018 04:34:53

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

Re: Custom Buttons

Andrey_Krropotkin пишет:

А смысл бороться дальше, если все что связано с CB, выпилят в ближайших версиях.

Лично для меня, надежда на то, что, возможно, есть вероятность,
что CB будет работать на ESR 60, вполне себе не лишена смысла.

А дальше... Ну это как если бы нечто небезразличное, но заведомо смертное.
Если ничего не делать, уйдёт в свои 57, а если делать, то может доживёт, например, до 63.
Вот такой вот, примерно, смысл.

Infocatcher
Разреши попросить прокомментировать нижеследующее

скрытый текст
Оказалось, что xpi-файл Custom Buttons, при установке, больше не распаковывается.

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

Можно, конечно, распаковать вручную, и после нескольких перезапусков
с очисткой папки startupCache, всё становится как было.

Однако, как-то перепугавшись чего-то такого, пытался сочинить
свой страшненький CB-форк, типа фейковый bootstrap,
поэтому эта ситуация показалась мне знакомой.

Предположительно, неприятность возникает
из-за какого-то кэширования в нераспакованных расширениях.

Вобщем, изменил код в cbbutton.js, и, вроде,
стало нормально даже в нераспакованном виде.

Выделить код

Код:

    buttonCbExecuteCode: function (event, oButton, code) {
        this. checkBind ();
        var execurl = "chrome://custombuttons-context/content/button.js?windowId=";
        execurl += this. cbService. getWindowId (document. documentURI) + "&id=";
        execurl += oButton. id + "@";
        execurl += oButton. _initPhase? "init": "code";
        var executionContext = {};
        executionContext ["oButton"] = oButton;
        executionContext ["code"] = code;
        executionContext ["argNames"] = "event";
        executionContext ["args"] = [event];
        this. buildExecutionContext (oButton, execurl, executionContext);
        /*
        Components. classes ["@mozilla.org/moz/jssubscript-loader;1"].
            getService (Components. interfaces. mozIJSSubScriptLoader).
            loadSubScript (execurl, executionContext);
        */
        this. loadSubScript (execurl, executionContext);
    },

    get loadSubScript() {
        delete this. loadSubScript;
        if ("Services" in window && parseInt (Services. appinfo. version) > 59) {
            return this. loadSubScript = function (execurl, executionContext) {
                Services. scriptloader. loadSubScriptWithOptions (execurl, {
                    target: executionContext,
                    ignoreCache: true
                });
            }
        } else {
            var scriptloader = Components. classes ["@mozilla.org/moz/jssubscript-loader;1"].
                getService (Components. interfaces. mozIJSSubScriptLoader);
            return this. loadSubScript = function (execurl, executionContext) {
                scriptloader. loadSubScript (execurl, executionContext);
            }
        }
    },

Отсутствует

 

№1251117-03-2018 21:26:24

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 842
UA: Firefox 55.0

Re: Custom Buttons

Есть кнопка которая автоматически открывает скачаный файл указанного разрешения в новой вкладке.
А можно ли добовить чтобы именно эти файлы открывались в текущей вкладке, а не в новой?
Несмотря на browser.link.open_newwindow.override.external 1

скрытый текст
browser.link.open_newwindow.override.external (Целое) - определяет, как открывать ссылки из внешних приложений. Значения:
   -1 – Использовать то же значение, что и у параметра browser.link.open_newwindow
   0 – Открывать в текущей вкладке
   1 – В новом окне
   2 – В новой вкладке последнего окна

Выделить код

Код:

// Автмоатическое открытие скачаного файла .............
((id, bsp, view = bsp[id]) => {
    if (!view) {
        var exts = [".torrent", ".jpg", ".png", ".maff", ".html", ".htm"]; view = bsp[id] = {};
        view.onDownloadChanged = download => download.succeeded
            && exts.some(ext => download.target.path.endsWith(ext)) && download.launch();
        Downloads.getList(Downloads.ALL).then(l => (view.list = l).addView(view), Cu.reportError);
    }
    addDestructor(reason => reason[5] == "e" && delete bsp[id] && view.list && view.list.removeView(view));
})("DownloadsObserver1", Cu.import("resource://gre/modules/Downloads.jsm", {}));

Отредактировано Stkvsky (17-03-2018 21:27:56)

Отсутствует

 

№1251219-03-2018 14:14:48

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4239
UA: Firefox 56.0

Re: Custom Buttons

(отсюда)

Dumby пишет:

Только установка spec так же используется и в overlay.js в трёх местах.

Угу. Наконец-то собрался... подправил и там.

Dumby пишет:

А из nsILoadInfo удалили SEC_NORMAL

Как мне кажется, и так сойдет:

Выделить код

Код:

                Components. interfaces. nsILoadInfo. SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL // Firefox 42+
                    // SEC_NORMAL removed in Firefox 60+: https://bugzilla.mozilla.org/show_bug.cgi?id=1283427
                    || Components. interfaces. nsILoadInfo. SEC_NORMAL,

(отсюда)

Dumby пишет:

Вобщем, изменил код в cbbutton.js, и, вроде,
стало нормально даже в нераспакованном виде.

Меня только беспокоит проверка версии. Но что-то сходу не придумалось простого (и синхронного) кода для обнаружения нераспакованности. Ну то есть и можно, конечно, но это как-то некрасиво. И заменил на platformVersion, SeaMonkey же тоже, наверное, сломают обновят аналогично.

Неподписанная: custom_buttons-0.0.5.8.9-fixed8.xpi
Подписанная: custom_buttons-0.0.5.8.9-fixed8-signed.xpi (не вижу особого смысла, но пусть будет)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1251319-03-2018 19:28:41

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

Re: Custom Buttons

Infocatcher пишет:

fixed8

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

Infocatcher пишет:

можно, конечно, но это как-то некрасиво

А так будет работать? Если да, то красиво ли это?

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

Выделить код

Код:

alert(
    Components. classes ["@mozilla.org/network/protocol;1?name=resource"].
        getService (Components. interfaces. nsIResProtocolHandler).
        getSubstitution ("custombuttons-modules"). schemeIs ("jar")
);

Отсутствует

 

№1251419-03-2018 19:51:12

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4239
UA: Firefox 56.0

Re: Custom Buttons

Dumby пишет:

А так будет работать? Если да, то красиво ли это?

О, занятно, мне нравится.
Я пока склоняюсь к

Выделить код

Код:

    get ignoreScriptLoaderCache() { // To correctly detect button with error
        var ph = Components. classes ["@mozilla.org/network/protocol;1?name=resource"].
            getService (Components. interfaces. nsIResProtocolHandler);
        delete this. ignoreScriptLoaderCache;
        return this. ignoreScriptLoaderCache = ph. hasSubstitution ("custombuttons-modules")
            && ph. getSubstitution ("custombuttons-modules"). schemeIs ("jar")
            && "loadSubScriptWithOptions" in this. scriptLoader;
    },

(в совсем старых версиях не зарегистрирован custombuttons-modules)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1251523-03-2018 12:19:56

Small_Z
Участник
 
Группа: Members
Зарегистрирован: 18-02-2011
Сообщений: 11
UA: Chrome 50.0

Re: Custom Buttons

Как переинициализировать кнопку из себя?
А то бывает, в коде значение расползается по всяким menu.setAttribute('какой-то атрибут', значение) - так что легче просто переинициализировать кнопку, наверное, чем отлавливать везде для замены, что она там повписывала.

Отредактировано Small_Z (23-03-2018 12:23:44)

Отсутствует

 

№1251623-03-2018 13:29:18

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4698
UA: Palemoon 27.0

Re: Custom Buttons

Small_Z пишет:

Как переинициализировать кнопку из себя?

:/ переинициализировать код инициализации:

Выделить код

Код:

var link = custombuttons.makeButtonLink("edit", _id);
var param = custombuttons.cbService.getButtonParameters(link);
var param = param.wrappedJSObject || param;
var param.initCode = param.initCode;
custombuttons.cbService.installButton(param);

Отсутствует

 

№1251724-03-2018 22:08:59

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 842
UA: Firefox 55.0

Re: Custom Buttons

Ребята, помогите пожалуйста, если можно добавить, чтобы эта кнопка сохраняла вместе с сайтом и его фавиконку.
Save snapshot to html
https://forum.mozilla-russia.org/viewto … 88#p588588

UPD
Нашел замену кнопке.
https://addons.mozilla.org/ru/firefox/a … scrapbook/

Отредактировано Stkvsky (25-03-2018 02:20:28)

Отсутствует

 

№1251827-03-2018 12:54:51

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

Re: Custom Buttons

Выделить код

Код:

({
        PREF_ROOT: "autocopy",
        init: function() {
                cbu.isPref(this.PREF_ROOT, true);
                gPrefService.addObserver(this.PREF_ROOT, this, false);
                addDestructor(()=> gPrefService.removeObserver(this.PREF_ROOT, this));
                if (!gPrefService.getBoolPref(this.PREF_ROOT)) return;
                this.setAutocopy(true);
        },
        observe: function(subj, topic, data) {
                if (data == this.PREF_ROOT)
                this.setAutocopy(gPrefService.getBoolPref(data));
        },
        setAutocopy: function(set) {
                var method = set ? addEventListener : removeEventListener;
                for(var type of ["mousedown", "mouseup"]) method(type, this, false, gBrowser);
        },
        handleEvent: function(e) {
                if (e.button || e.target instanceof Ci.nsIDOMNSEditableElement) return;
                var win = e.target.ownerDocument.defaultView;
                if (win.top != content) return;
                var sel = win.getSelection().toString();
                if (e.type == "mousedown") {this.sel = sel; return;}
                if (!sel || sel == this.sel) return;
                goDoCommand("cmd_copy");
        }
}).init();

59.0.2, а может и с 59 перестала работать Autocopy

Отсутствует

 

№1251927-03-2018 15:44:08

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 291
UA: Palemoon 27.0

Re: Custom Buttons

Dumby огромная тебе благодарность! Я не видел, пропустил... и до сих пор мучился с расширением. Вчера наткнулся на твой ответ №1964 на мою просьбу - шшикарненько http://www.kolobok.us/smiles/big_standart/good2.gif Сработало все отлично , с первого раза твоя магия. я мало что понял в этом способе записи, но буду пробовать его перевести на более человечий диалект, дабы понять :)

Совместил эту штуку с кнопкой bunda1 ( http://www.kolobok.us/smiles/big_standart/ok.gif ) "защитить в кладку"(чтоб небыло перехода если клик на иконке "защиты") и "при закрытии переходить на ..." - получился шикардос, который мнооооголо лет никто не мог\не желал сделать.
Вот все три в одном месте:

Переходить на пред. активную вкладку
[CB]"Не закрывать вкладку" в контекстном меню вкладки

Выделить код

Код:

// --------------------- Клик по активной - переход на пред. активную -------------------------------
// код Dumby
 ((trg, sortFunc, flag) => {
    addEventListener("mousedown", e => flag = e.target != gBrowser.selectedTab, true, trg);
    addEventListener("click", e => {
      let protTab = e.originalTarget.className.startsWith("tab-close-button");
        if (
            flag || e.button || protTab
            || e.ctrlKey || e.shiftKey || e.altKey
            || e.detail != 1 
        )
            return;

        var tabs = [...(gBrowser.visibleTabs || gBrowser.tabs)];
        var recentlyUsedTabs = tabs.sort(sortFunc);
        var tab = tabs[recentlyUsedTabs.indexOf(e.target) + 1];
        if (tab) gBrowser.selectedTab = tab;

    }, false, trg);
 })(gBrowser.tabContainer, (tab1, tab2) => tab2.lastAccessed - tab1.lastAccessed);


Выделить код

Код:


// ------------------ Закрытие вкладки = переход на пред.посещенную ----------------------------------------
// код bunda1 + интронэты 
function tabCloseHandler(e) {
   var tab = e.target;
  if ( tab == gBrowser.mCurrentTab ) { 
      if ( !gBrowser.visibleTabs.length ) gBrowser.addTab("about:blank");
          else {
             var tabs = gBrowser.visibleTabs || gBrowser.tabs,
             recentlyUsedTabs = Array.sort(tabs, function(tab1, tab2) { return tab2.lastAccessed - tab1.lastAccessed }),
             tabl = tabs[recentlyUsedTabs.indexOf(gBrowser.selectedTab) + 1] || null;
             gBrowser.selectedTab = tabl; 
             }
      }
  }
 addEventListener("TabClose", tabCloseHandler, true, gBrowser.tabContainer );


Всего-ничего, три года до  этого, искомого и желанного результата на CB  :lol: 
зы. не работает в квантумах. работает в PM27 и FF45

Отсутствует

 

№1252027-03-2018 19:37:35

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

Re: Custom Buttons

Infocatcher
Ну вот, практически конец. Видимо return Ok();
Сделал так

скрытый текст
Удалил Custom Buttons, рестарт.
Распаковал сохранённый xpi-файл.

Добавил в install.rdf <em:bootstrap>true</em:bootstrap>
Переименовал chrome.manifest в overlay.manifest
Добавил файл bootstrap.js

Выделить код

Код:

function startup(data, reason) {
    if (reason != APP_STARTUP) return;

    var manifestFile = data.installPath.clone();
    manifestFile.append("overlay.manifest");
    Components.manager
        .QueryInterface(Components.interfaces.nsIComponentRegistrar)
        .autoRegister(manifestFile);
}
function shutdown() {}
function install() {}
function uninstall() {}

Запаковал, установил, закрыл Nightly.
В профиле, в папке extensions, распаковал xpi-файл, а сам xpi-файл удалил.
Запустил Nightly.
Shift+F2 > restart --nocache

Custom Buttons снова работает.
Даже интересно, сколько дней продержится.

Отсутствует

 

№1252127-03-2018 20:40:38

mssign
Участник
 
Группа: Members
Зарегистрирован: 04-11-2009
Сообщений: 21
UA: Firefox 58.0

Re: Custom Buttons

Ребята! а реально починить?  https://forum.mozilla-russia.org/viewtopic.php?pid=732517#p732517 - это крайнее что откопал на форуме. На 58 не работает. Открыть страницу в другом браузере из контекстного меню - ветка кнопки.  Совсем не хочется ставить Python для Open With
з.ы. Отрицательные ответы тоже принимаются. :) На чистом профиле тоже не пашет и не сеет.

Отредактировано mssign (27-03-2018 21:20:51)

Отсутствует

 

№1252203-04-2018 22:36:12

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

Re: Custom Buttons

Dumby пишет:

Даже интересно, сколько дней продержится.

Неделю.

Ignoring unrecognized chrome manifest directive 'interfaces'.

скрытый текст
Добавил в cbKeyMapService. prototype getter wrappedJSObject
(аналогично как у cbCustomButtonsService. prototype)

и заменил всё типа
getService (Components. interfaces. cbI{CustomButtonsService, KeyMapService})
на
getService (Components. interfaces. nsISupports). wrappedJSObject

Таких мест немало: примерно 25 штук в 14 файлах.
И Custom Buttons опять работает, снова ожидая очередной подлянки.

Отсутствует

 

№1252304-04-2018 04:57:29

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 566
UA: Firefox 58.0

Re: Custom Buttons

mssign пишет:

это крайнее что откопал на форуме. На 58 не работает

У меня эта на 58 работает

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

Выделить код

Код:

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%3EOpen%20With%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+/vAerq6gIAAAAAakJFdmxcXE1PZHxkUVdoXgAAAADt7e0CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PAB5uXlAwAAAACBSUmA6GIw/4FES6490v7gM6Dk+mhqdFYAAAAA6urqAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/v7wHm5eUDAAAAAIZMTIX+cED//pph/4tQWLNS6f7fovv+/zuX2/Rtb3paAAAAAOrq6gMAAAAAAAAAAAAAAAAAAAAA5+fnAeDf3wMAAAAAjEtHhf5hO//+l2n5/45g/5ZXWrNO6P/hjf7//5v3/v88mdv1a214WQAAAADu7u4CAAAAAAAAAAAJAAEBzcrKAwAAAACQQzyF/ls6//92UPv/iGD8/4lf/55ZWbNN6v3hZ/f//4n5//yc9/7/N5jc9WFkb1kAAAAA6enpAunp6QEPAAIDAAAAAJIvJ4X+TC///00t+/9iQP7/eFP9/3tV/51ZVrRn7P/hXfL//1ny//6B+P/9lff+/yyV2PVNT1xZAAAAANXW1gIAAAAAjxYKgf6Edv//ZFH6/1E3/f9YOf7/aUf8/4Fh/6dUULJ26//glfL//23y//1l8//+fvj//JT3/v8dk/D1LTE/VgAAAAC1EwCT/p2d//6Hi/7/lpL//6qi//+vo///tKX9/8e0/79KQ7Z/8P/itPP//7P3//62/P//uP/+/8z/+f7l/vn/M6D+9gAFHGH+Rxq8/opp5v91VN//fF7h/31k4f9/aOH/gWrf/oBu6o9RTGZI1/6nmdz/7IPe/+CE4f/igeH/4njd/+J33v7gZcj+5wAfUGMACF1tAAZttgABYbMAAFK0BwVItBUPS7QeFk6zIBlQuUREUUM3azNnHYIewRtyH7UVaRu3D18XtwVSELcASBG3AEQTswEUAE0bS/3UJFT+/wAt5/4AMfH/ADLv/wg9//8zYf/9N2L+/wccU7cw1gXgSf8V/1f/Jv5n/zv/dv9N/4f/Yf+g/oH+R/4N/wcpAHMACCsYFUL+zhBA/v8ALeP5AjT//Q0+//00Xf/7NFr//wAbTbYw2ADgOP8K/0H/E/xZ/zD9b/9M/In+bflW/i7/DUMAfAAAAAAAAAAAAAgqGCVR/tUUQ/7/AC3f+wAx9v8PQP/9CTj//wAdTbc14QDiL/QA/zP/AP5B/xH+V/8t+0P+FP8NRQCBAAAAAAELAAIAAg4DAAAAAAAIKxg2Xv7UOmH+/wAu5PsAM/39AC3z/wAiTbdZ/xziPf8P/y/rAP04/wb7Pf4N/w9QAIEAAAAAAg0AAwkAAQEAAAAAAAINAwAAAAAACCoYTHD+1IWd/v9Jbf/5aYP//w1EfLdv/zjigv9n/3L/T/p6/ln/FGkAgQAAAAACDgAECQABAQAAAAAAAAAAAAAAAAACDQMAAAAAAAgqGExw/tS6yP7/oa/+/0p4qbaT/2jgq/6a/6X+jv8ahQCFAAAAAAIOAAMJAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg0DAAAAAAAHKRh2kv7P2Nz+/3ukxrW8/p/gyP69/xuLAIEAAAAAAg8AAwkAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOAwAAAAAACC0bTmz92wApbG9f/iG7IL0AkwAAAAACEAADCQABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%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//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%u0434%u0440%u0443%u0433%u043E%u043C%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0435%20%u0438%u0437%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%2C%20%u043E%u0442%2027.12.2015.%20..................%0A%28%28contextMenu%2C%20savepage%29%3D%3E%20%7B%0A%0A%20%20%20var%20menu%20%3D%20contextMenu.insertBefore%28document.createElement%28%22menu%22%29%2C%20savepage%29%3B%0A%20%20%20menu.setAttribute%28%22label%22%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0435...%22%29%3B%0A%20%20%20menu.setAttribute%28%22class%22%2C%20%22menu-iconic%22%29%3B%0A%20%20%20menu.setAttribute%28%22image%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+/vAerq6gIAAAAAakJFdmxcXE1PZHxkUVdoXgAAAADt7e0CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PAB5uXlAwAAAACBSUmA6GIw/4FES6490v7gM6Dk+mhqdFYAAAAA6urqAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/v7wHm5eUDAAAAAIZMTIX+cED//pph/4tQWLNS6f7fovv+/zuX2/Rtb3paAAAAAOrq6gMAAAAAAAAAAAAAAAAAAAAA5+fnAeDf3wMAAAAAjEtHhf5hO//+l2n5/45g/5ZXWrNO6P/hjf7//5v3/v88mdv1a214WQAAAADu7u4CAAAAAAAAAAAJAAEBzcrKAwAAAACQQzyF/ls6//92UPv/iGD8/4lf/55ZWbNN6v3hZ/f//4n5//yc9/7/N5jc9WFkb1kAAAAA6enpAunp6QEPAAIDAAAAAJIvJ4X+TC///00t+/9iQP7/eFP9/3tV/51ZVrRn7P/hXfL//1ny//6B+P/9lff+/yyV2PVNT1xZAAAAANXW1gIAAAAAjxYKgf6Edv//ZFH6/1E3/f9YOf7/aUf8/4Fh/6dUULJ26//glfL//23y//1l8//+fvj//JT3/v8dk/D1LTE/VgAAAAC1EwCT/p2d//6Hi/7/lpL//6qi//+vo///tKX9/8e0/79KQ7Z/8P/itPP//7P3//62/P//uP/+/8z/+f7l/vn/M6D+9gAFHGH+Rxq8/opp5v91VN//fF7h/31k4f9/aOH/gWrf/oBu6o9RTGZI1/6nmdz/7IPe/+CE4f/igeH/4njd/+J33v7gZcj+5wAfUGMACF1tAAZttgABYbMAAFK0BwVItBUPS7QeFk6zIBlQuUREUUM3azNnHYIewRtyH7UVaRu3D18XtwVSELcASBG3AEQTswEUAE0bS/3UJFT+/wAt5/4AMfH/ADLv/wg9//8zYf/9N2L+/wccU7cw1gXgSf8V/1f/Jv5n/zv/dv9N/4f/Yf+g/oH+R/4N/wcpAHMACCsYFUL+zhBA/v8ALeP5AjT//Q0+//00Xf/7NFr//wAbTbYw2ADgOP8K/0H/E/xZ/zD9b/9M/In+bflW/i7/DUMAfAAAAAAAAAAAAAgqGCVR/tUUQ/7/AC3f+wAx9v8PQP/9CTj//wAdTbc14QDiL/QA/zP/AP5B/xH+V/8t+0P+FP8NRQCBAAAAAAELAAIAAg4DAAAAAAAIKxg2Xv7UOmH+/wAu5PsAM/39AC3z/wAiTbdZ/xziPf8P/y/rAP04/wb7Pf4N/w9QAIEAAAAAAg0AAwkAAQEAAAAAAAINAwAAAAAACCoYTHD+1IWd/v9Jbf/5aYP//w1EfLdv/zjigv9n/3L/T/p6/ln/FGkAgQAAAAACDgAECQABAQAAAAAAAAAAAAAAAAACDQMAAAAAAAgqGExw/tS6yP7/oa/+/0p4qbaT/2jgq/6a/6X+jv8ahQCFAAAAAAIOAAMJAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg0DAAAAAAAHKRh2kv7P2Nz+/3ukxrW8/p/gyP69/xuLAIEAAAAAAg8AAwkAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOAwAAAAAACC0bTmz92wApbG9f/iG7IL0AkwAAAAACEAADCQABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%29%3B%0A%20%20%20menu.onclick%20%3De%3D%3E%20e.target%20%3D%3D%20menu%20%26%26%20openWith%28array%5B0%5D%5B1%5D%29%3B%0A%20%20%20addEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20menu.hidden%20%3D%20%21gContextMenu%2C%20false%2C%20contextMenu%29%3B%0A%20%20%20addDestructor%28%28%29%3D%3E%20menu.remove%28%29%20%29%3B%0A%0A%20%20%20var%20arr%20%3D%20%5B%0A%20%20%20%20%20%20%5B%20%22360%20Browser%22%2C%20%22D%3A%5C%5CEXE-Files%5C%5C%u0411%u0440%u0430%u0443%u0437%u0435%u0440%u044B%5C%5C360Chrome%5C%5C360Loader.exe%22%5D%2C%20%0A%20%20%20%20%20%20%5B%20%22Tor%20Browser%22%2C%20%20%22D%3A%5C%5CEXE-Files%5C%5C%u0411%u0440%u0430%u0443%u0437%u0435%u0440%u044B%5C%5CTor%20Browser%5C%5CTor%20Browser.lnk%22%5D%2C%0A%20%20%20%20%20%20%5B%20%22Internet%20Explorer%22%2C%20%22C%3A%5C%5CProgram%20Files%5C%5CInternet%20Explorer%5C%5Ciexplore.exe%22%5D%2C%20%0A%20%20%20%20%20%20%5B%20%22Download%20Master%22%2C%20%22C%3A%5C%5CProgram%20Files%20%28x86%29%5C%5CDownload%20Master%5C%5Cdmaster.exe%22%5D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20var%20menuPopup%20%3D%20menu.appendChild%28%20document.createElement%28%22menupopup%22%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20arr.forEach%28%28m%29%3D%3E%7B%0A%20%20%20%20%20%20var%20label%20%3D%20m%5B0%5D%2C%20path%20%3D%20m%5B1%5D%3B%0A%20%20%20%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22label%22%2C%20label%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20path%29%3B%20%0A%20%20%20%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20openWith%28path%29%3B%0A%20%20%20%20%20%20menuPopup.appendChild%28%20mItem%20%29%3B%0A%20%20%20%7D%29%3B%0A%0A%20%20%20function%20openWith%28path%29%20%7B%20%20%0A%20%20%20%20%20%20var%20loc%20%3D%20content.document.location%3B%0A%20%20%20%20%20%20var%20url%20%3D%20%28loc.host.slice%28-3%29%20%3D%3D%20%27.%u0440%u0444%27%29%20%3F%20Services.io.newURI%28loc.href%2C%20null%2C%20null%29.asciiSpec%20%3A%20loc%3B%20%20%0A%20%20%20%20%20%0A%20%20%20%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%20%20%20%20%0A%20%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20%20%20%20process.init%28file%29%3B%0A%0A%20%20%20%20%20%20%21gContextMenu.onLink%0A%20%20%20%20%20%20%3F%20process.run%28false%2C%20%5Bcontent.location.href%5D%2C%201%29%0A%20%20%20%20%20%20%3A%20process.run%28false%2C%20%5BgContextMenu.linkURL%5D%2C%201%29%3B%0A%20%20%20%7D%3B%0A%0A%7D%29%28document.getElementById%28%22contentAreaContextMenu%22%29%2C%20document.getElementById%28%22context-savepage%22%29%29%3B%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%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№1252406-04-2018 07:05:14

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

Re: Custom Buttons

Всё. Custom Buttons мёртв.
В смысле мёртв как оверлейное расширение.

Отсутствует

 

№1252506-04-2018 07:32:39

okkamas_knife
We are the Borg.       Resistance is futile.
 
Группа: Members
Зарегистрирован: 21-10-2009
Сообщений: 9307
UA: Seamonkey 2.14

Re: Custom Buttons

Это в вашей обновленческой  реальности.
а у меня СВ жил,СВ жив, СВ будет жить!


я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.

Отсутствует

 

Board footer

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