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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№104-07-2020 19:35:27

sofn
Участник
 
Группа: Members
Зарегистрирован: 06-05-2019
Сообщений: 18
UA: Firefox 78.0

FF 78.0.1 Адресная строка. Опять.

Обновился до 78.0.1. Опять слетели настройки адресной строки. По клику в поле адреса появляется 8 адресов (раньше у меня было 12). На иконке сайта размещена богомерзкая пиктограмма прикрепления. Пытался вернуть всё к первоначальным настройкам кодом, найденным на форуме (см.ниже) - не прокатило. Прошу совета знатоков - как победить?

скрытый текст
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

#urlbar[breakout][breakout-extend] {
top: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2) !important;
left: 0 !important;
width: 100% !important;
}
#urlbar[breakout][breakout-extend] > #urlbar-input-container {
height: var(--urlbar-height) !important;
padding-block: 0px !important;
padding-inline: 0px !important;
}
#urlbar[breakout][breakout-extend][breakout-extend-animate] > #urlbar-background {
animation-name: none !important;
}
#urlbar[breakout][breakout-extend] > #urlbar-background {
box-shadow: none !important;
}

Отсутствует

 

№204-07-2020 21:37:33

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 78.0

Re: FF 78.0.1 Адресная строка. Опять.

sofn пишет

Пытался вернуть всё к первоначальным настройкам кодом, найденным на форуме (см.ниже) - не прокатило.

Ну так код не для этой цели.
Решение есть уже как месяц с небольшим, нужно только приложить голову.

custom_script_win.js для 78+
browser.urlbar.suggest.topsites - false

Выделить код

Код:

// Этот скрипт работает в главном окне браузера если включено в настройках

var ucf_custom_script_win = {
    initialized: false,
    unloadlisteners: [],
    load: function() {
        if (this.initialized)
            return;
        this.initialized = true;
        // this.specialwidgets.constructor(); // <-- Special Widgets
        // this.autohidesidebar.constructor(); // <-- Auto Hide Sidebar
        /* ************************************************ */
        try { this.urlbarhistorydropmarker.constructor(); } catch (e) {}
        // Здесь может быть ваш код который сработает по событию "load" не раньше

        /* ************************************************ */
        if (this.unloadlisteners.length < 1)
            return;
        window.addEventListener("unload", this, false);
    },
    handleEvent: function(event) {
        this[event.type](event);
    },
    unload: function() {
        window.removeEventListener("unload", this, false);
        this.unloadlisteners.forEach((str) => {
            try {
                this[str].destructor();
            } catch (e) {}
        });
    },
    urlbarhistorydropmarker: {
        dropmarker: null,
        provider: null,
        constructor: function() {
            Services.prefs.addObserver("browser.urlbar.suggest.topsites", this);
            ucf_custom_script_win.unloadlisteners.push("urlbarhistorydropmarker");
            var {UrlbarProviderTopSites: provider} = {UrlbarProviderTopSites: this.provider} = ChromeUtils.import("resource:///modules/UrlbarProviderTopSites.jsm");
            if (!provider.orig_isActive) {
                provider.orig_isActive = provider.isActive;
                provider.ucf_isActive = true;
            }
            if (!Services.prefs.getBoolPref("browser.urlbar.suggest.topsites", true))
               this.createDropmarker();
        },
        createDropmarker: function() {
            this.provider.isActive = {
                isActive(queryContext) {
                    var ucf_isActive = this.ucf_isActive;
                    this.ucf_isActive = true;
                    return !queryContext.searchString ? ucf_isActive : false;
                }
            }.isActive;
            var fragment = MozXULElement.parseXULToFragment(`<image class="urlbar-history-dropmarker urlbar-icon chromeclass-toolbar-additional" role="button" tooltiptext="Показать историю"/>`);
            var dropmarker = this.dropmarker = fragment.firstElementChild;
            document.querySelector("#urlbar #page-action-buttons").before(fragment);
            dropmarker.addEventListener("mousedown", this);
        },
        destructor: function() {
            if (this.dropmarker)
                this.dropmarker.removeEventListener("mousedown", this);
            Services.prefs.removeObserver("browser.urlbar.suggest.topsites", this);
        },
        observe: function() {
            if (!this.dropmarker)
                this.createDropmarker();
            else {
                this.dropmarker.removeEventListener("mousedown", this);
                this.dropmarker.remove();
                this.dropmarker = null;
                this.provider.isActive = this.provider.orig_isActive;
            }
        },
        handleEvent: function(event) {
            event.preventDefault();
            event.stopPropagation();
            if (gURLBar.view.isOpen)
                gURLBar.view.close();
            else {
                this.provider.ucf_isActive = false;
                gURLBar.focus();
                gURLBar.startQuery({
                    allowAutofill: false
                });
            }
        }
    },
    specialwidgets: {
        _timer: null,
        get Customizable() {
            delete this.Customizable;
            if ("createSpecialWidget" in CustomizableUI)
                return this.Customizable = CustomizableUI;
            var scope = null;
            try {
                scope = Cu.import("resource:///modules/CustomizableUI.jsm", {}).CustomizableUIInternal;
            } catch (e) { }
            return this.Customizable = scope;
        },
        constructor: function() {
            if (!("CustomizableUI" in window) || !("gCustomizeMode" in window))
                return;
            ucf_custom_script_win.unloadlisteners.push("specialwidgets");
            window.addEventListener("customizationready", this, false);
        },
        destructor: function() {
            window.removeEventListener("customizationready", this, false);
        },
        handleEvent: function(event) {
            this[event.type](event);
        },
        customizationchange: function() {
            clearTimeout(this._timer);
            this._timer = setTimeout(() => {
                this.createSpecialWidgets();
            }, 1000);
        },
        customizationready: function() {
            if (!this.Customizable)
                return;
            this.createSpecialWidgets();
            window.addEventListener("customizationchange", this, false);
            window.addEventListener("customizationending", this, false);
        },
        customizationending: function() {
            window.removeEventListener("customizationchange", this, false);
            window.removeEventListener("customizationending", this, false);
        },
        createSpecialWidgets: function() {
            try {
                var fragment = document.createDocumentFragment();
                if (this.findSpecialWidgets("spring")) {
                    var spring = this.Customizable.createSpecialWidget("spring", document);
                    spring.setAttribute("label", "Растягивающийся интервал");
                    fragment.append(gCustomizeMode.wrapToolbarItem(spring, "palette"));
                }
                if (this.findSpecialWidgets("spacer")) {
                    var spacer = this.Customizable.createSpecialWidget("spacer", document);
                    spacer.setAttribute("label", "Интервал");
                    fragment.append(gCustomizeMode.wrapToolbarItem(spacer, "palette"));
                }
                if (this.findSpecialWidgets("separator")) {
                    var separator = this.Customizable.createSpecialWidget("separator", document);
                    separator.setAttribute("label", "Разделитель");
                    fragment.append(gCustomizeMode.wrapToolbarItem(separator, "palette"));
                }
                gCustomizeMode.visiblePalette.append(fragment);
            } catch (e) {}
        },
        findSpecialWidgets: function(string) {
            try {
                if (!gCustomizeMode.visiblePalette.querySelector(`toolbar${string}[id^="customizableui-special-${string}"]`))
                    return true;
            } catch (e) {}
            return false;
        }
    },
    autohidesidebar: {
        sidebar: null,
        constructor: function() {
            var sidebar = this.sidebar = document.querySelector("#sidebar-box");
            if(!sidebar)
                return;
            ["dragenter", "drop", "dragexit"].forEach((type) => {
                sidebar.addEventListener(type, this, false);
            });
            ucf_custom_script_win.unloadlisteners.push("autohidesidebar");
        },
        destructor: function() {
            var sidebar = this.sidebar;
            ["dragenter", "drop", "dragexit"].forEach((type) => {
                sidebar.removeEventListener(type, this, false);
            });
        },
        handleEvent: function(event) {
            this[event.type](event);
        },
        dragenter: function() {
            if (!this.sidebar.hasAttribute("sidebardrag"))
            this.sidebar.setAttribute("sidebardrag", "true");
        },
        drop: function() {
            if (this.sidebar.hasAttribute("sidebardrag"))
            this.sidebar.removeAttribute("sidebardrag");
        },
        dragexit: function(event) {
            var sidebar = this.sidebar;
            var boxObj = sidebar.getBoundingClientRect(), boxScrn = !sidebar.boxObject ? sidebar : sidebar.boxObject;
            if ((!event.relatedTarget || event.screenY <= (boxScrn.screenY + 5) || event.screenY  >= (boxScrn.screenY + boxObj.height - 5)
                || event.screenX <= (boxScrn.screenX + 5) || event.screenX >= (boxScrn.screenX + boxObj.width - 5))
                && sidebar.hasAttribute("sidebardrag"))
                sidebar.removeAttribute("sidebardrag");
        }
    }
};

if (window.document.readyState != "complete") {
    window.addEventListener("load", function load() {
        window.removeEventListener("load", load, false);
        ucf_custom_script_win.load();
    }, false);
} else
    ucf_custom_script_win.load();

Отсутствует

 

Board footer

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