Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2609)

Unified Diff: chrome/browser/installable/installable_manager.cc

Issue 2751343002: Adds a basic offline check to InstallableManager. (Closed)
Patch Set: Updated tests Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/installable/installable_manager.cc
diff --git a/chrome/browser/installable/installable_manager.cc b/chrome/browser/installable/installable_manager.cc
index a4990888722e0e1366dcdd520e21f0d47b68ed2d..b52c8cc0e20429272cb81c26e93e3ec5096412b1 100644
--- a/chrome/browser/installable/installable_manager.cc
+++ b/chrome/browser/installable/installable_manager.cc
@@ -406,21 +406,29 @@ void InstallableManager::CheckServiceWorker() {
web_contents->GetSiteInstance());
DCHECK(storage_partition);
- storage_partition->GetServiceWorkerContext()->CheckHasServiceWorker(
+ storage_partition->GetServiceWorkerContext()->CheckServiceWorkerStatus(
web_contents->GetLastCommittedURL(), manifest().start_url,
- base::Bind(&InstallableManager::OnDidCheckHasServiceWorker,
+ base::Bind(&InstallableManager::OnDidCheckServiceWorkerStatus,
weak_factory_.GetWeakPtr()));
}
-void InstallableManager::OnDidCheckHasServiceWorker(bool has_service_worker) {
+void InstallableManager::OnDidCheckServiceWorkerStatus(
+ content::ServiceWorkerStatus status) {
if (!GetWebContents())
return;
- if (has_service_worker) {
- installable_->installable = true;
- } else {
- installable_->installable = false;
- installable_->error = NO_MATCHING_SERVICE_WORKER;
+ switch (status) {
+ case content::ServiceWorkerStatus::SERVICE_WORKER_WITH_FETCH_HANDLER:
+ installable_->installable = true;
+ break;
+ case content::ServiceWorkerStatus::SERVICE_WORKER_NO_FETCH_HANDLER:
+ installable_->installable = false;
+ installable_->error = NOT_OFFLINE_CAPABLE;
+ break;
+ case content::ServiceWorkerStatus::NO_SERVICE_WORKER:
+ installable_->installable = false;
+ installable_->error = NO_MATCHING_SERVICE_WORKER;
+ break;
}
installable_->fetched = true;

Powered by Google App Engine
This is Rietveld 408576698