Chrome Release Bot (LUCI) 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
..
proto 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
store 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
tasks 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
BUILD.gn 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
DEPS 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
README.md 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
fake_suggestions_provider.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
fake_suggestions_provider.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
generate_page_bundle_request.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
generate_page_bundle_request.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
generate_page_bundle_request_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
get_operation_request.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
get_operation_request.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
get_operation_request_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
mock_prefetch_item_generator.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
mock_prefetch_item_generator.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
offline_metrics_collector.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_background_task.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_background_task.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_background_task_handler.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_dispatcher.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_dispatcher_impl.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_dispatcher_impl.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_dispatcher_impl_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_download_flow_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_downloader.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_downloader_impl.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_downloader_impl.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_downloader_impl_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_gcm_app_handler.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_gcm_app_handler.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_gcm_app_handler_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_gcm_handler.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_importer.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_importer.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_importer_impl.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_importer_impl.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_importer_impl_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_item.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_item.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_item_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_network_request_factory.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_network_request_factory_impl.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_network_request_factory_impl.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_network_request_factory_impl_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_prefs.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_prefs.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_prefs_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_proto_utils.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_proto_utils.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_request_fetcher.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_request_fetcher.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_request_fetcher_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_request_operation_response_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_request_test_base.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_request_test_base.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_server_urls.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_server_urls.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_server_urls_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_service.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_service_impl.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_service_impl.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_service_impl_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_service_test_taco.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_service_test_taco.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_types.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
prefetch_types.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
server_forbidden_check_request.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
server_forbidden_check_request.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
server_forbidden_check_request_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
stub_prefetch_service.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
stub_prefetch_service.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
suggestions_provider.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
suggestions_provider.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_download_client.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_download_client.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_download_service.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_download_service.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_offline_metrics_collector.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_dispatcher.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_dispatcher.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_downloader.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_downloader.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_gcm_handler.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_gcm_handler.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_importer.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_importer.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_network_request_factory.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_prefetch_network_request_factory.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
test_util.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
visuals_fetch_by_url.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago
visuals_fetch_by_url.h 4762b62e7d Publish DEPS for 106.0.5249.13 1 year ago

README.md

Prefetching Offline Pages

Architecture overview

PrefetchService

Is the ownership holder for the main components of the prefetching system and controls their lifetime.

PrefetchDispatcher

Manages the prefetching pipeline tasks. It receives signals from external clients and creates the appropriate tasks to execute them. It might at some point execute advanced task management operations like canceling queued tasks or changing their order of execution.

*Task(s) (i.e. AddUniqueUrlsTask)

They are the main wrapper of pipeline steps and interact with different abstracted components (Downloads, persistent store, GCM, etc) to execute them. They implement TaskQueue’s Task API so that they can be exclusively executed.

Prefetch store

  • The PrefetchStore depends publicly on SQL and acts as a gateway to the SQLite database.
  • It defines specific method signatures used to create callbacks that are passed to the store for the proper execution of SQL commands.
  • SQL access resources are granted to those callbacks only when needed and in an appropriate environment (correct thread, etc).
  • Pipeline tasks define methods following those signatures that contain the SQL commands they require to do their work.
  • Tasks receive a pointer to the store to be able to execute their SQL commands.

More detailed instructions of how to use Prefetch store can be found here

Development guidelines

  • Implementations that are injected dependencies during service creation should have lightweight construction and postpone heavier initialization (i.e. DB connection) to a later moment. Lazy initialization upon first actual usage is recommended.