Я написал действие страницы расширения Chrome, со следующей реализацией:
В manifest.json:
"permissions" : [
"declarativeContent"
],
В background.js:
chrome.runtime.onInstalled.addListener(function() {
// Replace all rules ...
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
// With a new rule ...
chrome.declarativeContent.onPageChanged.addRules([
{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { urlMatches: 'www\.somewebsite\.com/(translate|revise)/' },
})
],
// And shows the extension page action.
actions: [ new chrome.declarativeContent.ShowPageAction() ]
}
]);
});
});
Я заметил, что в большинстве браузеров Chrome значок действия страницы отображается правильно внутри адреса и появляется только при выполнении соответствующей страницы:
Однако в некоторых браузерах в последнее время действия с страницами стали появляться как активированные/отключенные действия браузера, т.е. вне адресной строки, что намного неуклюже, потому что вся идея вокруг значков действий страницы заключается в том, что они появляются тогда и только тогда, когда страница относящихся к ним. Нет смысла показывать действие с отключенной страницей в течение большей части времени. На самом деле, это случилось с браузерами, где он работал много дней назад, например, если у Chrome было несколько побочных эффектов.
Я предполагаю, что это связано с некоторыми настройками Chrome, которые теперь показывают все расширения там, но есть ли способ заставить приложение страницы последовательно появляться в адресной строке и появляться только тогда, когда это может быть действительно полезно?