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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№1315118-03-2019 17:52:16

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 67.0

Re: Custom Buttons

Dumby
Нема речи....Круто....очень круто. Первый раз сдаюсь, bootstrap-loader.js - подходит идеально для 67...Туда же и префы от Mozilla.cfg вставил ... Респект,однозначно!
Это ж ночнуха и телеметрию зарубить можно только через преф Mozilla.cfg , а тут код вписался идеально...

Отредактировано drage2 (18-03-2019 18:12:43)

Отсутствует

 

№1315218-03-2019 17:56:27

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 593
UA: Firefox 65.0

Re: Custom Buttons

Dumby, спасибо.

Отредактировано vitalii201 (19-03-2019 09:08:09)

Отсутствует

 

№1315319-03-2019 00:37:17

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

Re: Custom Buttons

leex пишет

Можно ли сделать одну загрузку без Сtrl+F5 если  "Ошибка искажения содержимого" не обнаружена?

Если «Ошибка искажения содержимого» это лисья страница,
то можно попробовать как-то так, а если нет, то вопрос, увы, не ко мне.


vitalii201 пишет

скачивается custom_buttons-0.0.7.0.0 с расширением .3-FX-PAXMOD_XPI  в 14КБ )

Ну не знаю, посетил страницу по ссылке,
на странице нажал ссылку-кнопку [ DOWNLOAD (188.6 KB) ],

появилось окошко "Открытие «custom_buttons-0.0.7.0.0.3-fx-paxmod.xpi»",
(<radiogroup> в положении "Сохранить файл")

в окошке нажал OK, выбрал папку для сохранения и...
скачался custom_buttons-0.0.7.0.0.3-fx-paxmod.xpi размером 184КБ (на диске 188КБ).
Это тупик.

Выделить код

Код:

(frameScript => {
    this._handleClick = () => addTab("http://mail.google.com/mail/#i");
    this.oncontextmenu = e => e.ctrlKey || e.shiftKey || addTab("https://mail.google.com/mail/u/0/#sent") || false;
    var addTab = url => {
        var tab = gBrowser.selectedTab = gBrowser.addTab(url, {
            triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
        });
        var browser = tab.linkedBrowser;
        setTimeout(function wait() {
            if(browser.currentURI.spec == "about:blank" || browser.webProgress.isLoadingDocument)
                setTimeout(wait, 25);
            else
                browser.messageManager.loadFrameScript(frameScript, false);
        }, 0);
    }
})(
    "data:,content.document.documentURI.startsWith('about:neterror')&&(wn=>wn.reload(wn.LOAD_FLAGS_BYPASS_PROXY"
    + "|wn.LOAD_FLAGS_BYPASS_CACHE))(docShell.QueryInterface(Components.interfaces.nsIWebNavigation))"
);

Отсутствует

 

№1315419-03-2019 00:50:09

leex
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 261
UA: Firefox 50.0

Re: Custom Buttons

Dumby
Отлично! Все работает хорошо
Спасибо вам за это решение :)

PS

В профиле лисы лежит файл serviceworker.txt Если его удалить или очистить, то страница гмаил загружается без проблем.
Но он все равно появляется и перезаписывается.  ФФ56

Отредактировано leex (19-03-2019 01:41:12)

Отсутствует

 

№1315519-03-2019 14:22:26

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 210
UA: Firefox 65.0

Re: Custom Buttons

leex
Создай временно как пустой файл, и поставь только чтение... потом найдешь решение.

скрытый текст
Вот что нашел:

Выделить код

Код:

// Отключает Service Worker API, позволяющее сайтам запускать скрипты, которые могут заниматься
// различной сомнительной самодеятельностью (примеры по ссылкам ниже) в фоновом режиме, даже
// если у пользователя не открыто ни одной вкладки этого сайта.
// Посмотреть и удалить установленные сайтами Service Workers можно через about:serviceworkers
// https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API#Other_use_case_ideas
// https://github.com/slightlyoff/ServiceWorker
// https://serviceworke.rs/
pref("dom.serviceWorkers.enabled", false);
pref("dom.serviceWorkers.interception.enabled", false);
pref("dom.serviceWorkers.interception.opaque.enabled", false);
pref("dom.serviceWorkers.openWindow.enabled", false);
// https://hg.mozilla.org/releases/mozilla-release/file/7eabe4d30cde/modules/libpref/init/all.js#l163
// https://hg.mozilla.org/releases/mozilla-release/file/7eabe4d30cde/dom/workers/ServiceWorkerManager.cpp#l2593
pref("dom.serviceWorkers.testUpdateOverOneDay", false);
pref("dom.webnotifications.serviceworker.enabled", false);

Отредактировано func4ptch4 (19-03-2019 14:26:17)

Отсутствует

 

№1315619-03-2019 17:49:53

leex
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 261
UA: Firefox 50.0

Re: Custom Buttons

Большое спасибо! func4ptch4
В about:config все параметры с ServiceWorker выставил на false.
Просто и с ютубом  эти же проблемы с ошибкой содержимого
Даже кнопку сделал по аналогии с гмаил
Откуда вообще взялся у меня этот ServiceWorker..

Отредактировано leex (19-03-2019 17:52:41)

Отсутствует

 

№1315719-03-2019 22:09:06

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

Re: Custom Buttons

Dumby пишет

Если «Ошибка искажения содержимого» это лисья страница,
то можно попробовать как-то так

А если вот так?


скрытый текст
Итого

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

Выделить код

Код:

    if(browser.currentURI.spec == "about:blank" || browser.webProgress.isLoadingDocument)
        setTimeout(wait, 25);
-   else {
+   else if(!browser.currentURI.spec.startsWith("about:neterror")) {

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

Отсутствует

 

№1315819-03-2019 23:30:41

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

Re: Custom Buttons

Infocatcher пишет

ошибку такую я встречал

А я никогда не встречал, поэтому, сделав допущение,
что все страницы об ошибках примерно одинаковы,
экспериментировал со всегда доступной «Автономный режим».

Сейчас набрал bla.me, дождался этого «Firefox находится в автономном режиме»,
запускаю alert(gBrowser.selectedBrowser.currentURI.spec);
алертится http://bla.me/
Так что, возможно, не подходит.

Вобще, на ночнушке, правильно алертится и работает browser.documentURI.spec
Но, глядя на UA спрашивающего, пришлось проверить на соответствующей версии.
FF50 нет, но есть 48 и 52, так вот там, если спокойно сделать проверку,
тоже алертится правильно about:neterror?e=netOffline&u=http%3A//bla.me/&…

Но непосредственно в коде, browser.documentURI.spec там не работает,
пока не поднимешь таймаут до каких-то неприемлимых величин.
А frame script работает быстро и чётко.

Это всё я сейчас о многопроцессном режиме говорил.

Отсутствует

 

№1315920-03-2019 04:24:20

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

Re: Custom Buttons

Может ли кто нибудь помочь переназначить кнопку автоматической прокрутки страницы со средней кнопки мышки на правую?

Отсутствует

 

№1316020-03-2019 18:09:30

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

Re: Custom Buttons

Подскажите пожалуйста в 66 перестал работать из кода 
1. var refNode = gFindBar.getElement("highlight"); в консоли пишит gFindBar is undefined
2. В этом коде в консоли пишит openInTabs is undefined ссылается на строчку
eval("PlacesUIUtils.openContainerNodeInTabs = " + openInTabs.toString().replace(' {', '{\n openTabWithoutLoading(aNode);\n if (aNode.itemId !== -1) return;\n')); 
Infocatcher установил с вашей страницы Source Editor version 0.1.0a9 - 2019-03-01. В поле редактора в контекстном меню видать пункт только перейти к строке, а остальные пункты не видать - все белые.

Выделить код

Код:

((bar, button = true, insertAtTop = false, ctrlFcloseFinbar = false) => ({
    init(parent) {
        var has = bar = parent.querySelector("#appcontent > findbar");
        has || this.initFinbar(parent);
        var lo = bar.linkedObject;
        lo.listenCtrlF = ctrlFcloseFinbar
            ? listen => listen
                ? addEventListener("keydown", lo, true)
                : removeEventListener("keydown", lo, true)
            : () => {};
        has && !bar.hidden && lo.listenCtrlF(true);
        if (button) self._handleClick = () => bar.hidden
            ? bar.startFind(bar.FIND_NORMAL)
            : bar.collapsed || bar.close();
        addDestructor(lo.destroy, lo);
    },
    destroy(reason) {
        if (reason[5] != "e") return;
        bar.close();
        bar._browser = {};
        bar.remove();
        this.setProgressListener(false);
        for(var key of ["gFindBar", "gFindBarInitialized"])
            Object.defineProperty(window, key, this[key]);
        gBrowser[this.gBrKey] = this[this.gBrKey];
        Services.ppmm.removeDelayedProcessScript(this.url);
        Services.ppmm.loadProcessScript("data:," + encodeURIComponent(`
            Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_DEFAULT
            && Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_CONTENT
            || (nsvo => {
                var proto = nsvo.Finder.prototype;
                if ("_requestMatchesCount" in proto) {
                    proto.requestMatchesCount = proto._requestMatchesCount;
                    delete proto._requestMatchesCount;
                }
            })(Cu.import("resource://gre/modules/Finder.jsm", {}));`
        ) , false);
    },
    initFinbar(parent) {
        for(var tab of gBrowser.tabs) {
            if (!tab._findBar) continue;
            tab._findBar.browser = null;
            tab._findBar._browser = {};
            tab._findBar.remove();
            delete tab._findBar;
        }
        bar = document.createElement("findbar");
        var p = new Proxy({}, {get: () => () => {}});
        bar._browser = {finder: p, messageManager: p};
        parent.insertBefore(bar, insertAtTop ? parent.firstChild : null);
        bar.linkedObject = this;

        ["gFindBar", "gFindBarInitialized"].forEach((key, ind) => {
            this[key] = Object.getOwnPropertyDescriptor(window, key);
            delete window[key];
            window[key] = ind ? true : bar;
        });
                                
                                var ClearFindbarBtn = document.createElement("toolbarbutton");
                ClearFindbarBtn.setAttribute("id", "clearFindbar-button");
                ClearFindbarBtn.setAttribute("type", "button");
                ClearFindbarBtn.setAttribute("class", "toolbarbutton-1");
                //ClearFindbarBtn.setAttribute("oncommand", "if(gFindBar.getElement('findbar-textbox').value==''){gFindBar.close()}else{gFindBar.getElement('findbar-textbox').value='';gFindBar.onFindAgainCommand(false);}");
                
                ClearFindbarBtn.addEventListener("click", function(e) {
                                   if ( e.button == 0 ) {
                                       // поиск из буфера обмена
                                       e.preventDefault();
                                       var str = (gClipboard.read()).replace(/^\s+|\s+$/g,""); // убираем пробелы с концов текста
                                       gFindBar._findField.value = str;
                                       Highlight("hits", "greenLight");
                                      };
                                   if ( e.button == 2 )        
                                      if(gFindBar.getElement('findbar-textbox').value==''){gFindBar.close()}else{gFindBar.getElement('findbar-textbox').value='';gFindBar.onFindAgainCommand(false);} // очистить поле текстового ввода  
                                }, false);
                 
                /* ClearFindbarBtn.setAttribute("label", " Очистить "); */
                /* var doc = inspWin.document;*/
                
                                 
                var refNode = gFindBar.getElement("highlight");
                ClearFindbarBtn.setAttribute("tooltiptext", "ЛКМ - вставить из буфера. \nПКМ - очистить поиск");
                ClearFindbarBtn.setAttribute("style", "margin-right: 6px !important; margin-left: 6px !important;");
                ClearFindbarBtn.setAttribute("image", "data:image/x-icon;base64,AAABAAEADhAAAAEAIADoAwAAFgAAACgAAAAOAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5eXn/eXl5/3l5ef95eXn/eXl5/3l5ef95eXn/eXl5/ylTda0pU3X/KVN1/ylTdf8pU3X/HTpS/4WFhf/w8PL/8fHz//Hx8//x8fP/8fHz//Hx8/+FhYX/KVN1/yRJaP8jSGf/I0dl/yNHZP8YMEX/j4+P//Hx8//x8vP/8fLz//Hy8//x8vP/8fLz/4+Pj/8pU3X/JUxr/yVLav8kSmn/JElo/xkyR/+cnJz/8vLz//Ly9P/y8vT/8vL0//Ly9P/y8vT/nJyc/ylTdf8nTm3/Jk1t/yVMa/8lSmn/GjNJ/6urq//y8vT/8/P1//Pz9f/z8/X/8/P1//Pz9f+rq6v/KVN1/ydPb/8nTm7/Jk1t/yZMa/8aNEr/srKy//X19v/19vf/9fb3//X29//19vf/9fb3/7Kysv8pU3X/J1Bx/ydQb/8nTm//Jk1t/xs2S/+8vLz/+fr6//r7+//6+/v/ubm5/7e3t/+3t7f/ubm5/ylTdf8oUXP/KFBx/ydQcf8nT2//GzZN/76+vv/6+/v/+/v8//v7/P/ExMT/9vb2/7e3t/na2tpfKVN1/ylTdP8pUXP/KFBy/yhPcP8bN03/v7+///v7/P/7/Pz/+/z8/8rKyv+3t7f/4OLgaQAAAAApU3X/KVN1/yhSdP8oUnT/KFJy/xw4UP+/v7//v7+//7+/v/+/v7//uru7/2OBmf8AAAAAAAAAAClTdf8pU3X/KVN1/ylSdP8pUnT/JEpn/yRIZv8kSGX/I0dk/yNGY/8jRWL/KVN1/wAAAAAAAAAAKVN1/ylTdf8lS2n/IztO/yM7Tv8jO07/IztO/yM7Tv8jO07/JUtp/ydOb/8lS2n/AAAAAAAAAAApU3X/K2GQ/yhahv91dXX/XV1d/11dXf9dXV3/XV1d/4B/f/8oWob/Kmad/ylTdf8AAAAAAAAAAClTda0pU3X/KVN1/7O0tP/h4eD/3t7f/97f3//g4OD/s7S0/ylTdf8pU3X/KVN1rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yds1dXFv1XVxb9Wxxdc8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJUwFASZMCwAlTAsAI00LIys1CxcXFsEYFxbCJS01DAAlTQsAJk0LASZNCwAlTQUAAAAAAAAAAPwArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAASsQQAMrEEADKxBAAysQQAMrEEADKxB8PysQQAMrEE=");
                refNode.parentNode.insertBefore(ClearFindbarBtn,refNode);
                                
                var ClearFindbarBtn1 = document.createElement("toolbarbutton");
                ClearFindbarBtn1.setAttribute("id", "closeFindbar-button");
                ClearFindbarBtn1.setAttribute("class", "findbar-closebutton close-icon");
                ClearFindbarBtn1.setAttribute("tooltiptext", "Закрыть панель поиска");
                ClearFindbarBtn1.setAttribute("oncommand", "close();");
                var refNode1 = gFindBar.getElement("findbar-textbox");
                refNode1.parentNode.insertBefore(ClearFindbarBtn1,refNode1);
                var refNode2 = gFindBar.getElement("find-closebutton");
                refNode2.setAttribute("style", "display: none !important;"); 

// FindBar, поиск колесиком мыши ................................
        addEventListener('DOMMouseScroll', function(e) { gFindBar.onFindAgainCommand( e.detail < 0 ); updateHits("flash"); }, false, gFindBar );

        var key = "getCachedFindBar" in gBrowser ? "getCachedFindBar" : "getFindBar";
        this[this.gBrKey = key] = gBrowser[key];
        gBrowser[key] = () => bar;
        [
            "close", "startFind", "onMatchesCountResult",
            "_updateMatchesCount", "_onBrowserKeypress", "receiveMessage"

        ].forEach((key, ind) => {
            var func = bar[key].bind(bar);
            bar[key] = ind
                ? (...args) => this[key](...args) || func(...args)
                : (...args) => func(...args) || this[key](...args);
        });
        this.url = "data:," + encodeURIComponent(`
            Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_DEFAULT
            && Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_CONTENT
            || (nsvo => {
                var proto = nsvo.Finder.prototype;
                if ("_requestMatchesCount" in proto) return;
                proto._requestMatchesCount = proto.requestMatchesCount;
                proto.requestMatchesCount = ${
                    this.newRequestMatchesCount
                }
            })(Cu.import("resource://gre/modules/Finder.jsm", {}));`
        );
        delete this.newRequestMatchesCount;
        Services.ppmm.loadProcessScript(this.url, true);
    },
    newRequestMatchesCount: async function requestMatchesCount(aWord, aLinksOnly) {
        if (typeof aLinksOnly != "boolean") {

            var {linksOnly, data} = aLinksOnly;
            aLinksOnly = linksOnly;

            this.entireWord = data.entireWord;
            this.caseSensitive = data.caseSensitive;
            this.onModalHighlightChange(data.useModalHighlight);
            this.onHighlightAllChange(data.highlightAll);
            data.highlightAll && await this.highlighter.highlight(true, aWord, linksOnly);
            this._iterator && this._iterator.reset();
            var obj;
            Object.defineProperty(this, "_currentMatchesCountResult", {
                configurable: true, enumerable: true,
                get: (val = obj) => {
                    if (val) {
                        if (!val.total) val.total = new Number(0);
                        val.currentFound = val._currentFound;
                    }
                    return obj = val;
                },
                set: val => {
                    if (val) return obj = val;
                    delete this._currentMatchesCountResult;
                    return obj = this._currentMatchesCountResult = val;
                }
            });
            var lfr = this._lastFindResult;
            lfr !== null && lfr != Ci.nsITypeAheadFind.FIND_NOTFOUND
            || Object.defineProperty(this, "_lastFindResult", {
                configurable: true, enumerable: true, get: () => null,
                set: val => {
                    if (val == Ci.nsITypeAheadFind.FIND_WRAPPED)
                        val = Ci.nsITypeAheadFind.FIND_FOUND;
                    delete this._lastFindResult;
                    return this._lastFindResult = val;
                }
            });
        }
        this._requestMatchesCount(aWord, aLinksOnly);
    },
    close() {
        bar.collaped = false;
        this.setProgressListener(false);
        this.setBrowser(null, null);
    },
    startFind() {
        if (this.maybeCollapse(gBrowser.selectedBrowser))
            return true;
        if (bar.hidden)
            this.setBrowser(300),
            this.setProgressListener(true);
        else if (!ctrlFcloseFinbar)
            setTimeout(() => this.updateMatchesCount(), 100);
    },
    onMatchesCountResult(res) {
        if (!("currentFound" in res) || res.total == -1 || res.currentFound)
            return;

        bar._foundMatches.value = `${+res.total || "Нет"} совпадени${
            bar.pluralForm.get(res.total, "е;я;й")
        }.`;
        bar._foundMatches.hidden = false;
        return true;
    },
    _updateMatchesCount() {
        return true;
    },
    _onBrowserKeypress(e) {
        if (!bar.hidden) return;
        if (!e.charCode) return true;
        this.setBrowser(300);
        this.setProgressListener(true);
    },
    receiveMessage(msg) {
        msg.target = bar._browser;
    },

    progressListenerAdded: false,
    setProgressListener(add) {
        if (add) {
            if (this.progressListenerAdded) return;
            this.progressListenerAdded = true;
            gBrowser.addProgressListener(this);
            this.listenCtrlF(true);
        } else {
            if (!this.progressListenerAdded) return;
            this.progressListenerAdded = false;
            gBrowser.removeProgressListener(this);
            this.listenCtrlF(false);
        }
    },
    handleEvent(e) {
        if (
            e.ctrlKey && e.code == "KeyF"
            && !e.shiftKey && !e.altKey && !bar.collapsed
        )
            e.preventDefault(),
            e.stopPropagation(),
            bar.close();
        },
    updateMatchesCount() {
        var str = bar._findField.value;
        if (!str) return;
        var data = {
            entireWord: bar._entireWord,
            caseSensitive: bar._typeAheadCaseSensitive,
            highlightAll: bar._highlightAll,
            useModalHighlight: bar._useModalHighlight
        };
        bar.browser.finder.requestMatchesCount(
            bar._findField.value, 
            {linksOnly: bar._findMode == bar.FIND_LINKS, data}
                );
    },
    maybeCollapse(br) {
        return br.isSyntheticDocument ||
            br.documentContentType == "application/vnd.mozilla.xul+xml";
    },
    setBrowser(updateDelay, br = gBrowser.selectedBrowser) {
        if (bar._browser != br) {
            var b = bar._browser;
            if (b) {
                b.messageManager.removeMessageListener("Findbar:Mouseup", bar);
                b.finder.removeResultListener(bar);
                bar._highlightAll && b.finder.highlight(false);
            }
            if (br) {
                br.messageManager.addMessageListener("Findbar:Mouseup", bar);
                bar._updateBrowserWithState();
            }
            bar._browser = br;
        }
        if (!br) return;
        bar._updateStatusUI();
        bar._foundMatches.value = "";
        br.finder.addResultListener(bar);
        if (
            !(bar.collapsed = this.maybeCollapse(br))
            && br.currentURI.spec != "about:blank"
            && updateDelay !== null
        )
            updateDelay
                ? setTimeout(this.updateMatchesCount, updateDelay)
                : this.updateMatchesCount();
    },
    onStateChange(wpr, req, state) {
        state & Ci.nsIWebProgressListener.STATE_STOP && this.setBrowser();
        },
    onLocationChange(wpr, req) {
        req || Components.stack.formattedStack.includes("SessionStore.jsm")
        || this.setBrowser();
    }
   
   
}).init(document.getElementById("appcontent")))();

Отредактировано Andrey_Krropotkin (23-03-2019 22:06:15)

Отсутствует

 

№1316120-03-2019 20:11:58

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

Re: Custom Buttons

Andrey_Krropotkin пишет

Infocatcher установил с вашей страницы Source Editor version 0.1.0a9 - 2019-03-01. В поле редактора в контекстном меню видать пункт только перейти к строке, а остальные пункты не видать - все белые.

Это на Firefox 66?
chrome://global/content/editMenuOverlay.xul с локализацией и стандартными командами утопили... А API для встраивания редактора, надо думать, так и не завезли.
Зато завезли какие-то хипстерские выкрутасы:
Только у меня от
и прочих присоседенных инкапсуляций смузи потёк.
Пока что вкрутил только часть надписей: https://github.com/Infocatcher/Custom_B … aac0520b41
Но команды, видимо, придется добавлять вручную...

Выделить код

Код:

win.MozXULElement.insertFTLIfNeeded("toolkit/main-window/editmenu.ftl");

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

Отсутствует

 

№1316220-03-2019 21:23:56

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

Re: Custom Buttons

Infocatcher На 66 появилось контекстное меню, кроме 2-х предпоследних пунктов. Но оно неактивно. Т.е. отменить, вырезать , копировать, вставить, удалить, выделить все  не работает.
Да еще вопрос можно ли добавить, где нибудь в опциях выбор размера шрифта, а то в редакторе для меня строчки слишком маленькие.
Да было бы вообще классно, если ваши наработки  Source Editor, Toggle on Top button for Custom Buttons и Edit Custom Button in Tab внедрить совместно с Dumby в сам адон Custom Buttons.
Хотя мечтать не вредно.

Отредактировано Andrey_Krropotkin (20-03-2019 21:46:02)

Отсутствует

 

№1316320-03-2019 23:49:32

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

Re: Custom Buttons

Andrey_Krropotkin пишет

На 66 появилось контекстное меню, кроме 2-х предпоследних пунктов. Но оно неактивно. Т.е. отменить, вырезать , копировать, вставить, удалить, выделить все  не работает.

Я пишет

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

Код для обработки нажатий на пункты меню, похоже, надо теперь реализовывать вручную. Надо подумать еще. Так что пока только надписи, теперь для всех пунктов:
https://github.com/Infocatcher/Custom_B … rce_Editor

Andrey_Krropotkin пишет

Да еще вопрос можно ли добавить, где нибудь в опциях выбор размера шрифта, а то в редакторе для меня строчки слишком маленькие.

Я ожидал, что применятся настройки Scratchpad'а (а для шрифта, как оказалось, есть: devtools.scratchpad.editorFontSize), но, видимо, удобные в применении модули утонули вместе с нормальными расширениями.
Настройку добавил, но не знаю, в каких версиях будет работать. В свежей Nightly заработало.


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

Отсутствует

 

№1316421-03-2019 12:22:03

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 66.0

Re: Custom Buttons

Не первый человек жалуется на контекст...А, у меня работает и в 66 и в 67(W-7 - без аэро)
tkbfuuk2.png

Отсутствует

 

№1316522-03-2019 21:10:13

vurdalak
Участник
 
Группа: Members
Зарегистрирован: 03-06-2005
Сообщений: 173
UA: Firefox 66.0

Re: Custom Buttons

Так на каких браузерах вообще сейчас custom button работают и где скачать последнюю версию?

Объясните по человечески как ставить CB на новый браузер (обычный FF). Хоть бы шапку в ветке сделали что ли за 10 лет то, или сидеть по полдня пол форума листать , чтобы догнать что к чему (времени просто вагон наврное у всех) ... на гитхабе в инфокетчера ни фига нет, нигде ничего нет, ни манула ни ............. !
Это что какая то нелегальная полуофициальная ветка форума, что все так скрыто или что?

Отредактировано vurdalak (22-03-2019 21:41:58)

Отсутствует

 

№1316622-03-2019 21:35:53

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

Re: Custom Buttons

vurdalak посмотри предыдущею страницу. Пост Dumby. Рассчитана как для для 66 так и выше.

Отсутствует

 

№1316722-03-2019 21:43:25

vurdalak
Участник
 
Группа: Members
Зарегистрирован: 03-06-2005
Сообщений: 173
UA: Firefox 66.0

Re: Custom Buttons

Andrey_Krropotkin пишет

vurdalak посмотри предыдущею страницу. Пост Dumby. Рассчитана как для для 66 так и выше.

Да читал я , и что ?
Где этот config.js находится. Для какого браузера предназначен?
Какое расширение их этих двух ставить?
Как ставить, как дебаг или просто?
Подписывать или нет?
Миллион вопросов

Отсутствует

 

№1316822-03-2019 22:44:39

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

Re: Custom Buttons

vurdalak пишет: Объясните по человечески как ставить CB на новый браузер (обычный FF). Хоть бы шапку в ветке сделали что ли за 10 лет то, или сидеть по полдня пол форума листать , чтобы догнать что к чему (времени просто вагон наврное у всех) ... на гитхабе в инфокетчера ни фига нет, нигде ничего нет, ни манула ни ............. !
Это что какая то нелегальная полуофициальная ветка форума, что все так скрыто или что?

Официально СВ давно помер благодаря стараниям мозилловцев, то что сейчас есть это клоны-зомби изображающие активность с помощью кучи костылей и местных некромантов-обновленцев у которых куча времени на то чтоб ковыряться в коде с каждым выходом очередной версии фф и пристраивать костыли вместо того чтоб просто пользоваться старой версией.
так что выбирай использовать последнюю официальную версию СВ на соответствующей версии фф
Version 0.0.5.8.9 Released March 20, 2016 120.5 KiB Works with Firefox 1.5 - 56.*
либо копаться с кодом и мучать некромантов вопросами.


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

Отсутствует

 

№1316922-03-2019 22:57:36

vurdalak
Участник
 
Группа: Members
Зарегистрирован: 03-06-2005
Сообщений: 173
UA: Firefox 66.0

Re: Custom Buttons

okkamas_knife пишет

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

Золотые слова! :beer:

p.s. Сам то на SeaMonkey сидишь...

Отредактировано vurdalak (22-03-2019 22:58:35)

Отсутствует

 

№1317022-03-2019 23:32:47

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 66.0

Re: Custom Buttons

СВ с костылем только в 67, в 66 можно и без, так малость рихтануть omni.ja///
Правда, 67 бэты  это нечто, блуждающий профайл один чего стоит...Мазиловцам делать нечего, только и успевают "поганки заворачивать"...

Отсутствует

 

№1317123-03-2019 14:46:03

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

Re: Custom Buttons

А) Подскажите, пожалуйста, актуальный код для js-конфига, который включает поддержку старых расширений и отключает проверку подписей для версий: ESR 60, RELEASE 66.
По теме пробежался, код из некоторых постов вроде работает, даже скрипты в закрепленном посте по-моему включают легаси. Но код везде немного отличается - не понятно, что выбирать.

Б) Понимаю, что тема про CB, но только тут запускают старые расширения. Есть ли возможность таким же образом оживить другие крупные дополнения: Session Manager, Fire Gestures, Tab Utilities и т.д.?

Пробовал их запускать, получаю различные ошибки:
У Session Manager:
Error loading bootstrap.js for {1280606b-2510-4fe0-97ef-9b5a22eafe30}: SyntaxError: missing { before function body (resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///extensions/%7B1280606b-2510-4fe0-97ef-9b5a22eafe30%7D.xpi!/bootstrap.js:35:18) JS Stack trace: loadBootstrapScope@XPIProvider.jsm:4299:9
callBootstrapMethod@XPIProvider.jsm:4363:9
startup@XPIProvider.jsm:2253:13
callProvider@AddonManager.jsm:253:12
_startProvider@AddonManager.jsm:728:5
startup@AddonManager.jsm:892:9
startup@AddonManager.jsm:2976:5
observe@addonManager.js:63:9

У Tab Utilities:
SyntaxError: missing { before function body  browser.js:537:41
SyntaxError: yield expression is only valid in generators  tabutils.js:785:60
и т.д.

Отсутствует

 

№1317223-03-2019 20:56:59

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

Re: Custom Buttons

vurdalak почитайте:
1. Как отключить проверку цифровых подписей в дополнениях Firefox, где расписано про config-prefs.js и config.js и куда их кидать.
config.js в папку установки Firefox: C:\Program Files\Mozilla Firefox
config-prefs.js в папку: C:\Program Files\Mozilla Firefox\defaults\pref ( остается прежним - не меняем).
2. После этого смотрим пост Dumby, где 1 пунктом идет содержимое config.js и сам аддон.
3. В посте  есть пункт 2 про bootstrap-loader.js для этого надо еще посмотреть его прежний пост и дальше разъяснения после этого поста
4. Если непонятно про 2 пункт вопросы задавать Dumby

Я пока пользуюсь 1 пунктом, но есть кто и вторым. Есть пока минусы у дополнения - оно сыровато для х64(многопроцессорного) Firefox, но благодаря Dumby, как говорит okkamas_knife - местных некромантов-обновленцев у которых куча времени на то чтоб ковыряться в коде, это дополнение до сих пор работает. И неизвестно есть у него время или нет, мы засчет него тут на форуме существуем.

Отредактировано Andrey_Krropotkin (23-03-2019 22:44:14)

Отсутствует

 

№1317323-03-2019 21:08:52

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

Re: Custom Buttons

Andrey_Krropotkin
Спасибо, что напомнил.

Огромная благодарность Dumby и Infocatcher за работающее CB

Отсутствует

 

№1317424-03-2019 11:47:15

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 66.0

Re: Custom Buttons

Вот это движуха пошла, прям борьба нанайских мальчиков. а креатив то где? Последний bootstrap-loader.js от Dumby + СВ (03 ) решает все проблемы . Пользоваться, конечно, надо уметь. В65-66 можно и без этого обойтись...Но в 67  уже никак, только с bootstrap-loader.js. Дальше каждый сам  мозгами вертеть должен. К, примеру, в папке defaults-pref- файл -не config.js , а, all-settings.js

В каталоге - просто bootstrap-loader.js , причем совмещен с префами mozilla.cfg

И этот код без ломки MOZ_REQUIRE_SIGNING и MOZ_ALLOW_LEGACY_EXTENSIONS, это можно в AppConstants.jsm рихтануть, хотя можно и код оставить в тот же bootstrap-loader.js ....Ну, там, угрожающие надписи еще убрать в about:addons, это мелочь и xpinstall.signatures.required=false,extensions.legacy.enabled=true, короче, меньше пены, больше креатива....

Выделить код

Код:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "bootstrap-loader.js");

Отредактировано drage2 (24-03-2019 11:59:50)

Отсутствует

 

№1317525-03-2019 16:50:04

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

Re: Custom Buttons

Andrey_Krropotkin
Ваша кнопка Перевод  перестала переводить из Перевод из буфера в FF  66. Может поправите её?

Отредактировано rubel (27-03-2019 06:33:36)

Отсутствует

 

Board footer

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