В ситуации, когда пользователь перезагружает свой компьютер без закрытия Chrome, вкладки автоматически возвращаются при повторном открытии Chrome.
То, что я хочу знать, это то, как отличить, что пользователь открыл новую вкладку.
У меня есть следующая функция:
const interceptRequests = () => {
chrome.webRequest.onBeforeRequest.addListener(
async details => {
if (requestIsUserInitiated(details)) {
const tabs = await getAllTabs();
console.log('get all the tabs', tabs);
console.log('details', details);
}
},
{urls: ["<all_urls>"]},
["blocking"]
);
};
Где:
const requestIsUserInitiated = details =>
details.type === 'main_frame'
&& !details.initiator // ignoring requests made by the website
&& details.method === 'GET';
Дело в том, что не существует простого способа определить, является либраузер инициировал запрос или пользователя, если нет свойства, которого я не вижу:
Конечно, есть следующий слушатель:
chrome.tabs.onCreated.addListener(function(tab) {
});
Однако, когда Chrome откроет все вкладки, он, вероятно, все равно будет запущен.
Итак, как можно провести различие? Я хочу, чтобы вызвать функцию, когда уверен, что пользователь инициировал новую вкладку, чтобы сделать запрос.