let openURL() replace browser-specific New/empty Tab Page

This commit is contained in:
tophf 2018-03-30 03:23:21 +03:00
parent a2c80f7017
commit 009970965f

View File

@ -45,6 +45,18 @@ const URLS = {
OPERA ? 'https://addons.opera.com/' : OPERA ? 'https://addons.opera.com/' :
'https://chrome.google.com/webstore/', 'https://chrome.google.com/webstore/',
emptyTab: [
// Chrome and simple forks
'chrome://newtab/',
// Opera
'chrome://startpage/',
// Vivaldi
'chrome-extension://mpognobbkildjkofajifpdfhcoklimli/components/startpage/startpage.html',
// Firefox
'about:home',
'about:newtab',
],
// Chrome 61.0.3161+ doesn't run content scripts on NTP https://crrev.com/2978953002/ // Chrome 61.0.3161+ doesn't run content scripts on NTP https://crrev.com/2978953002/
// TODO: remove when "minimum_chrome_version": "61" or higher // TODO: remove when "minimum_chrome_version": "61" or higher
chromeProtectsNTP: CHROME >= 3161, chromeProtectsNTP: CHROME >= 3161,
@ -410,7 +422,7 @@ function openURL({
// except when 'url' is chrome:// or chrome-extension:// in incognito // except when 'url' is chrome:// or chrome-extension:// in incognito
function maybeReplace(tab) { function maybeReplace(tab) {
const chromeInIncognito = tab && tab.incognito && url.startsWith('chrome'); const chromeInIncognito = tab && tab.incognito && url.startsWith('chrome');
const emptyTab = tab && (tab.url === 'chrome://newtab/' || tab.url === 'about:newtab'); const emptyTab = tab && URLS.emptyTab.includes(tab.url);
if (emptyTab && !chromeInIncognito) { if (emptyTab && !chromeInIncognito) {
return new Promise(resolve => return new Promise(resolve =>
chrome.tabs.update({url}, resolve)); chrome.tabs.update({url}, resolve));