LoginSignup
3
0

More than 3 years have passed since last update.

メインスレッドのnavigator、ワーカースレッドのnavigator

Last updated at Posted at 2020-12-11

はじめに

こんにちは!☃️🎄
LIFULLその2 Advent Calendar 2020の11日目は@mimatyがお送りします。
普段はLIFULL HOME'S不動産売却査定の開発をしています。

所属している開発グループでは強い個人になるために、
週に2時間自分の好きなことを勉強して良い時間が設けらました。

この記事ではその時間にWEBブラウザ全般について調べていた中、
navigatorの仕様についてわかったことを書きます。

本題

Serveice Workerでもしgeolocationを扱えるのであれば、
WEBサイトを閉じた後のユーザを追跡できてしまうのではないかと思ったのですが、
そんなことはできませんでした。

メインスレッドでもワーカースレッドでも同じようにnavigatorを呼び出すことができるのですが、
ワーカースレッドのnavigatorはgeolocation属性を持っていません。

main.js
console.log(navigator.geolocaiton)
// Geolocation {}

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('sw.js');
}
sw.js
console.log(navigator.geolocation)
// undefined

 
同じnavigatorから呼び出されるものであっても、

メインスレッド内で呼び出されるものは、
window.navigatorで呼び出されるNavigator

ワーカースレッド内で呼び出されるものは、
WorkerGlobalScope.navigatorで呼び出されるWorkerNavigator

とのことでした。

つまり、WorkerNavigatorにはgeolocationが実装されておらず、
Service Workerからユーザの位置情報を取得することはできません。

参考文献

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0