Вы можете сделать это с помощью Firefox tabs API . Любая вкладка имеет свойство «закреплено», которое можно прочитать с фоновой страницы.
Например, вы можете сделать это следующим образом:
Создать мост запроса isTabPinned в фоновом скрипте, который получит свойство tab и отправит его в скрипт контента.
bg. js
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
if (msg.request == "isTabPinned") {
sendResponse(sender.tab.pinned);
}
});
При отправке скрипта контента запрос к фоновому скриптовому мосту для получения статуса вывода табуляции и изменения DOM, если закладка закреплена.
cs. js
chrome.runtime.sendMessage({ request: "isTabPinned" }, tabPinned => {
if(tabPinned){
//.. modify your DOM here
}
});
Загрузить скрипт контента для страниц, которые нужно проверить (или для любых страниц, как в примере) и фоновый скрипт. Дайте разрешения «tabs» и «activeTab» для вашего скрипта.
manifest. json
{
"manifest_version": 2,
"name": "Pin Detector",
"version": "0.1",
"background": {
"scripts": ["bg.js"]
},
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["cs.js"]
}
],
"permissions": ["tabs","activeTab"]
}