Пустая приватная страница просмотра в Firefox

Я хотел бы написать WebExtension, чтобы иметь пустую частную страницу для просмотра, вдохновленную старым расширением: https://github.com/iPotable/BlankPrivateBrowsingPage

Я думал, что мог бы использовать chrome_url_overrides для любой страницы Chrome. Итак, я попробовал:

{
  "manifest_version": 2,
  "name": "Blank private browsing page",
    "chrome_url_overrides" : {
       "chrome://browser/content/aboutPrivateBrowsing.xhtml": "index.html"
  },
  "version": "0.1"
}

Но, похоже, его можно использовать только для определенных хромированных страниц, верно?

Смотрите: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/chrome_url_overrides

Второй вариант, который я попробовал, был UserScript:

// ==UserScript==
// @name Blank aboutPrivateBrowsing page
// @include chrome://browser/content/aboutPrivateBrowsing.xhtml
// ==/UserScript==

window.location.href="about:blank";

Но кажется, что Greasemonkey не может обрабатывать URL-адреса Chrome.

Кто-нибудь может придумать другое решение?

1 ответ

Решение

В настоящее время вы не можете переопределить:newtab в приватном режиме. Однако, что вы должны иметь возможность делать внутри WebExtension:

  • Прослушайте открытие вкладок о: приватном просмотре с помощью API вкладок https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/onCreated
  • Создайте новую вкладку с помощью browser.tabs.create({}) (без URL она создаст пустую вкладку) и закройте предыдущую вкладку (используя tabid).

Тогда у вас будет более или менее то же самое.

Код:

function handleUpdated(tabId, changeInfo, tabInfo) {
    if(changeInfo.favIconUrl){
        //console.log("favIconUrl updated is " + changeInfo.favIconUrl);

        if (tabInfo.incognito && changeInfo.favIconUrl.indexOf("privatebrowsing") > -1){
            //console.log("opening about:blank..");
            browser.tabs.update({url: "about:blank"});
        }
    }
}

browser.tabs.onUpdated.addListener(handleUpdated);

Приведенный выше код, к сожалению, дает заметный графический сбой. Вместо favIconUrl вы, вероятно, можете также использовать tab.title == "Новая вкладка" (но это будет работать только для английских версий Firefox).

Другие вопросы по тегам