2.2 Service Worker

Background Service Worker

Service Workerとは

バックグラウンドで動作するスクリプト。イベント駆動型で、必要なときだけ起動する。

DOMアクセス不可window、documentは存在しない。

ライフサイクル

chrome.runtime.onInstalled.addListener((details) => {
  if (details.reason === 'install') {
    console.log('インストールされました');
  }
});

// 30秒のアイドルで停止
// 状態はchrome.storageで永続化

イベント処理

chrome.action.onClicked.addListener((tab) => {
  console.log('アイコンクリック');
});

chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
  console.log('メッセージ:', msg);
  sendResponse({ ok: true });
  return true;
});

定期実行

chrome.alarms.create('myAlarm', { periodInMinutes: 30 });

chrome.alarms.onAlarm.addListener((alarm) => {
  if (alarm.name === 'myAlarm') {
    doSomething();
  }
});
参考文献
[1] Chrome Extensions - Service workers