Событие извлечения сервисного работника не инициируется запросами API Google

Я обнаружил, что мои запросы к Google API не вызывают событие выборки сервис-воркера. Выборки для статических ресурсов и других API инициируют событие, как и ожидалось.

Демо: https://laurieboyes.github.io/test-gapi-sw/

Демонстрационный код: https://github.com/laurieboyes/test-gapi-sw/blob/master/index.html

Я не смог найти никакой документации, предполагающей, что это сделано по замыслу.

Кто-нибудь может объяснить, почему запросы API Google не вызывают событие выборки? Может ли это быть как-то связано с oAuth?


person Lrnk    schedule 12.11.2016    source источник


Ответы (1)


Вы можете проверить свой DOM и заметить, что библиотека Google OAuth внедряет несколько невидимых <iframe> на вашу страницу, например:

<iframe name="oauth2relay368346125" id="oauth2relay368346125" 
  src="https://accounts.google.com/o/oauth2/postmessageRelay?parent=https%3A%2F%2Flaurieboyes.github.io&amp;...&amp;forcesecure=1"
  tabindex="-1" aria-hidden="true" 
  style="width: 1px; height: 1px; position: absolute; top: -100px;">
</iframe>

Эти <iframe> используются для всей сетевой связи с Google API. Обратите внимание, что <iframe> получены из источника https://accounts.google.com, поэтому эти вызовы выполняются извне. области действия вашего сервис-воркера (работает только внутри https://laurieboyes.github.io).

Ваш Service Worker никак не может перехватить это сообщение из соображений безопасности.

person NOtherDev    schedule 13.11.2016