Windows 10 のデスクトップ右下にウイルス感染してるので McAfee 買えみたいな警告が出るということで、ウイルスに感染してるんじゃないかと相談を受けたのだが、どうも、悪意のあるサイトにデスクトップ通知の許可を与えてしまったらしくて、Microsoft Edge がアクションセンターにトースト表示して、そこから web ページへ誘導してるっぽい。
という事で、仕組みの調査を行った。
という事で、仕組みの調査を行った。
- MDN / Web API
- stackoverflow / 2018-11-06: Timer with notifications using service worker
- Qiita / tmtysk / 2015-04-07: Service Worker 開発するときのデバッグ方法
- modest / 2016-03-11: Firefox 開発ツールを使った Service Workers と Push のデバッグ
ブラウザのアドレス欄から以下のアドレスにアクセスすると得られるようだ。
- about:debugging
- chrome://serviceworker-internals
- edge://serviceworker-internals/
ブラウザによってだいぶ動作が違うようだ。
Firefox だと Clients.openWindow() のサンプルで notificationclick イベント引っ掛けて Service Worker から web ページ開けるんだけど、
Microsoft Edge だと上手く開かないとか、
Microsoft Edge だと actions 仕掛けるとボタンが出るけど、Firefox では出ないとか、
Firefox だとデスクトップ右下にポップアップするけど、Microsoft Edge だとポップアップせずにアクションセンターに貼り付くとか。
Service Worker は console.log() してもブラウザに返って来ないので、デバッグし難い。
追記: 2021-03-03
Chromium ベースなので Microsoft Edge の挙動は Chrome の挙動とほぼ同じなんだけど、
なんか、Chrome で Google Calendar の通知はアクションセンターじゃなくて、デスクトップ右下にポップアップする。
むぅ。どうやってんだ?
...
判明
option に {requireInteraction: true} 追加しておくと、コントロールセンターに行く前にデスクトップ右下にポップアップする。
通知から web ページを開く機能は、Google Calendar でも Chromium 系だとブラウザが focus しないので、多分 Chromium 系では動かないんじゃないかという気がする。
Firefox だと Clients.openWindow() のサンプルで notificationclick イベント引っ掛けて Service Worker から web ページ開けるんだけど、
Microsoft Edge だと上手く開かないとか、
Microsoft Edge だと actions 仕掛けるとボタンが出るけど、Firefox では出ないとか、
Firefox だとデスクトップ右下にポップアップするけど、Microsoft Edge だとポップアップせずにアクションセンターに貼り付くとか。
Service Worker は console.log() してもブラウザに返って来ないので、デバッグし難い。
追記: 2021-03-03
Chromium ベースなので Microsoft Edge の挙動は Chrome の挙動とほぼ同じなんだけど、
なんか、Chrome で Google Calendar の通知はアクションセンターじゃなくて、デスクトップ右下にポップアップする。
むぅ。どうやってんだ?
...
判明
option に {requireInteraction: true} 追加しておくと、コントロールセンターに行く前にデスクトップ右下にポップアップする。
通知から web ページを開く機能は、Google Calendar でも Chromium 系だとブラウザが focus しないので、多分 Chromium 系では動かないんじゃないかという気がする。
タグ
コメントをかく