26/06/17 11:55:53.68 LFGLLykG0.net
>>659
prefers-color-schemeみてchrome.browserAction.setIconで指定するだけだぞ
661:名無しさん@お腹いっぱい。
26/06/17 13:43:53.05 9MTGkDyr0.net
OS自体のライトモードとダークモードの切り替えならそのノリで対応できると思う
Chromeのテーマの切り替えだとループ回して何秒に一回監視とかいうアホなことやらないと追従しない
もちろんツールバー背景だけカスタムで暗い色とかだと全く無理
結局、どっちでも見えるアイコン用意しろ、になっちゃう
Firefoxだとmanifestに書いてるだけで切り替え出来るらしいけどね
662:名無しさん@お腹いっぱい。
26/06/17 13:46:42.40 9MTGkDyr0.net
断定口調で書いたけど素人なので、突破できる方法もあるかも
663:名無しさん@お腹いっぱい。
26/06/17 18:16:59.99 RgtXFnJA0.net
>>662
「あまり強い言葉を使うなよ」ですな~w
断定よりかもしれない構文を使おうw
664:名無しさん@お腹いっぱい。
26/06/17 23:27:32.94 WYTo9SUW0.net
頭が悪いのかもしれない
665:567
26/06/20 14:04:19.78 PAJWywKD0.net
>>659
これ ??
できるけどChromeがmanifestだけで自動的にライト/ダーク用アイコンを
切り替えてくれる仕組みは弱い/基本ない、と見た方がいい。
実装としては、JSでテーマを判定して chrome.action.setIcon() でツールバーアイコンを差し替える 形になる。
Chrome公式では、拡張機能のツールバーアイコンは action.default_icon で指定でき、
さらに chrome.action.setIcon() でプログラムから変更できると説明されている。
また、prefers-color-scheme はユーザーがライト/ダーク配色を要求しているかを検出するための仕組みで、
OS設定やユーザーエージェント設定を反映する。
666:567
26/06/20 14:05:07.89 PAJWywKD0.net
その2
例えばこういう感じ。
-----------------------
// popup.js や options.js など、window がある拡張ページ側で動かす
const mq = window.matchMedia("(prefers-color-scheme: dark)");
function applyIcon() {
const dark = mq.matches;
chrome.action.setIcon({
path: {
"16": dark ? "icons/icon-dark-16.png" : "icons/icon-light-16.png",
"32": dark ? "icons/icon-dark-32.png" : "icons/icon-light-32.png",
"48": dark ? "icons/icon-dark-48.png" : "icons/icon-light-48.png",
"128": dark ? "icons/icon-dark-128.png" : "icons/icon-light-128.png"
}
});
}
applyIcon();
mq.addEventListener("change", applyIcon);
-----------------------
667:567
26/06/20 14:05:47.47 PAJWywKD0.net
その3
manifest.json 側は、初期アイコンを普通に置いておく。
-----------------------
{
"manifest_version": 3,
"name": "Example",
"version": "1.0.0",
"action": {
"default_icon": {
"16": "icons/icon-light-16.png",
"32": "icons/icon-light-32.png",
"48": "icons/icon-light-48.png",
"128": "icons/icon-light-128.png"
}
}
}
-----------------------
668:567
26/06/20 14:06:48.11 PAJWywKD0.net
その4
注意点は、MV3のbackground service workerでは window.matchMedia() が使えないこと。
matchMedia() はWindowのAPIなので、popup/options/通常の拡張ページなど
windowがある場所で判定するのが素直。
なので結論としては、
可能。ただし「manifestで完全自動」ではなく、prefers-color-scheme を見てchrome.action.setIcon()で差し替える。
なお、これはOS/Chromeのライト・ダーク設定に寄せる方法で、ユーザーが独自のChromeテーマを入れて
ツールバー背景色だけ変えている場合まで完全には判定できない。
Chrome自体はライト/ダーク/デバイス設定に追従する表示モードを持っている。
669:名無しさん@お腹いっぱい。
26/06/22 04:52:58.26 6lsjxqFNH.net
AIに聞いたのかな?
この中にもだめな理由がちらっと書かれてるけど、実際にやってみたら何がだめなのかわかるよ
拡張機能を起動させるためのボタンのアイコンだから、拡張機能を起動させてない状態でスクリプトが働かないといけないんだよね
670:567
26/06/23 02:29:37.29 D0aLv24K0.net
>>669
>>拡張機能を起動させてない状態
あーー
>>manifestだけで
の部分ですか、なるほど…失礼しました。
671:567
26/06/30 20:12:00.34 JztaN55l0.net
LLD若干修正しました。お使いの方はアップデートしてください。
URLリンク(x.com)
672:名無しさん@お腹いっぱい。
26/07/01 15:21:36.84 /fAkpF5Q0.net
URLリンク(github.com)
今日からViolentmonkeyをMV3へ移行する作業を始めたんだけど、だいたい動くようになったよ。たぶん明日には終わるかな。
673:名無しさん@お腹いっぱい。
26/07/01 17:36:06.29 mQNdId9T0.net
>>672
おー
使えなくなったから仕方無くTamperにしたけどやっぱ使いにくくて困ってた
ありがてえ
674:名無しさん@お腹いっぱい。
26/07/02 06:51:03.84 cTqnJUY50.net
使ったことないのでよくわからんのだけど、直にスクリプトを書くよりもこういうのを通した方が便利だったり出来ることが多かったりするの?
675:名無しさん@お腹いっぱい。
26/07/02 14:48:29.14 tolETUyc0.net
youtubeを倍速で再生すると数分でグルグルになって止まるようになった
でも少しだけでもシークすると再生開始する
止まらないようにする拡張機能ないかな?
676:名無しさん@お腹いっぱい。
26/07/02 19:58:44.89 Gs2pIzct0.net
まずは回線とかグラボとかの設定見直せ
677:名無しさん@お腹いっぱい。
26/07/02 22:33:40.74 tolETUyc0.net
adguradオフにしたら止まらなくなった
でも本末転倒
こまったな
678:名無しさん@お腹いっぱい。
26/07/03 01:13:29.13 p8drP1zr0.net
広告ブロック対策の嫌がらせの一環じゃないかな?
それなら暫くすればAdGuard側が更に対策すると思うよ(=いたちごっこ)
679:名無しさん@お腹いっぱい。
26/07/03 13:10:18.01 FdVSxP6t0.net
再生が止まるのが一番困るんだよな
最悪広告はいいとしてもそのまま自動で再生してくれないと
680:名無しさん@お腹いっぱい。
26/07/03 23:58:48.41 dNk8jiy60.net
>>678
実際インターネット系の収益モデルは広告に頼ってる所多いのに
広告ブロッカー(uBOやAdGuard系)みたいな強力なのが使用不可にならないときつい部分もあるのかもね
実際あまり普及しない様に妨害してそうw