- CanIUse PageTransitionEvent: https://caniuse.com/#feat=page-transition-events
- CanIUse PageTransitionEvent persisted: https://caniuse.com/#feat=mdn-api_pagetransitionevent_persisted
- Описание pageshow event на MDN: https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event
- Описание pagehide event на MDN: https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event
- Спецификация W3C: https://w3c.github.io/navigation-timing/#sec-performance-navigation-types
- MDN: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming/type
- Известные API, влияющие на попадание страницы в bfcache: https://gist.github.com/victor-homyakov/93c0a42e5471cee055cc8646a534e744
- Описание bfcache: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching
- Низкоуровневые детали работы bfcache: https://developer.mozilla.org/en-US/docs/Archive/Misc_top_level/Working_with_BFCache
- Настройка логирования: https://developer.mozilla.org/en-US/docs/Mozilla/Debugging/HTTP_logging
- Детали об уровнях логирования здесь: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Gecko_Logging
- Баг с IndexedDB в bfcache: https://bugzilla.mozilla.org/show_bug.cgi?id=1458342
- Исходный код Gecko: https://dxr.mozilla.org/mozilla-central/source/
- Упоминания логов bfcache в исходном коде Gecko: https://dxr.mozilla.org/mozilla-central/search?q=MOZ_LOG(gPageCacheLog&redirect=false
- Описание bfcache, часть 1: https://webkit.org/blog/427/webkit-page-cache-i-the-basics/
- Описание bfcache, часть 2: https://webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/
- Исходный код WebKit: https://github.com/WebKit/webkit
canCacheFrame()
: https://github.com/WebKit/webkit/blob/89c28d471fae35f1788a0f857067896a10af8974/Source/WebCore/history/PageCache.cpp#L75 Проверка в исходнике PageCache, можно ли кэшировать данный фрейм.canSuspendForDocumentSuspension()
: https://github.com/WebKit/webkit/search?q=canSuspendForDocumentSuspension&unscoped_q=canSuspendForDocumentSuspension Проверка, можно ли поставить данный объект «на паузу» для кэширования. Если хоть один из объектов на странице вернётfalse
— bfcache не сработает.- Тесты на bfcache: https://github.com/WebKit/webkit/tree/master/LayoutTests/fast/history/page-cache*.html
- Описание bfcache и текущее состояние реализации: https://www.chromestatus.com/feature/5815270035685376
- Краткое описание: https://developers.google.com/web/updates/2019/02/back-forward-cache
- Дизайн bfcache: https://docs.google.com/document/d/1YrBKX_eFMA9KoYof-eVThT35jcTqWcH_rRxYbR5RapU
IsBackForwardCacheEnabled()
: https://cs.chromium.org/search/?q=IsBackForwardCacheEnabled&sq=package:chromium&type=csBackForwardCacheImpl::CanStoreDocument()
: https://cs.chromium.org/chromium/src/content/browser/frame_host/back_forward_cache_impl.cc?q=IsBackForwardCacheEnabled&sq=package:chromium&l=280&dr=CGetDisallowedFeatures()
: https://cs.chromium.org/chromium/src/content/browser/frame_host/back_forward_cache_impl.cc?sq=package:chromium&dr=C&g=0&l=103
- Про getUserMedia: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
- Про Encrypted Media Extensions: https://en.wikipedia.org/wiki/Encrypted_Media_Extensions
- Про Media Source Extensions: https://en.wikipedia.org/wiki/Media_Source_Extensions
- Про Mixed Content: https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- Про MessageChannel: https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel
- Page Lifecycle draft: https://wicg.github.io/page-lifecycle/
- Настройка локального сервера HTTPS: https://codeburst.io/running-local-development-server-on-https-c3f80197ac4f