1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "content/browser/service_worker/service_worker_registration_status.h" 6 7 #include "base/logging.h" 8 #include "base/strings/utf_string_conversions.h" 9 10 namespace content { 11 12 using blink::WebServiceWorkerError; 13 GetServiceWorkerRegistrationStatusResponse(ServiceWorkerStatusCode status,blink::WebServiceWorkerError::ErrorType * error_type,base::string16 * message)14void GetServiceWorkerRegistrationStatusResponse( 15 ServiceWorkerStatusCode status, 16 blink::WebServiceWorkerError::ErrorType* error_type, 17 base::string16* message) { 18 *error_type = WebServiceWorkerError::ErrorTypeUnknown; 19 *message = base::ASCIIToUTF16(ServiceWorkerStatusToString(status)); 20 switch (status) { 21 case SERVICE_WORKER_OK: 22 NOTREACHED() << "Calling this when status == OK is not allowed"; 23 return; 24 25 case SERVICE_WORKER_ERROR_START_WORKER_FAILED: 26 case SERVICE_WORKER_ERROR_INSTALL_WORKER_FAILED: 27 *error_type = WebServiceWorkerError::ErrorTypeInstall; 28 return; 29 30 case SERVICE_WORKER_ERROR_ACTIVATE_WORKER_FAILED: 31 *error_type = WebServiceWorkerError::ErrorTypeActivate; 32 return; 33 34 case SERVICE_WORKER_ERROR_NOT_FOUND: 35 *error_type = WebServiceWorkerError::ErrorTypeNotFound; 36 return; 37 38 case SERVICE_WORKER_ERROR_NETWORK: 39 *error_type = WebServiceWorkerError::ErrorTypeNetwork; 40 return; 41 42 case SERVICE_WORKER_ERROR_SECURITY: 43 *error_type = WebServiceWorkerError::ErrorTypeSecurity; 44 return; 45 46 case SERVICE_WORKER_ERROR_ABORT: 47 case SERVICE_WORKER_ERROR_IPC_FAILED: 48 case SERVICE_WORKER_ERROR_FAILED: 49 case SERVICE_WORKER_ERROR_PROCESS_NOT_FOUND: 50 case SERVICE_WORKER_ERROR_EXISTS: 51 // Unexpected, or should have bailed out before calling this, or we don't 52 // have a corresponding blink error code yet. 53 break; // Fall through to NOTREACHED(). 54 } 55 NOTREACHED() << "Got unexpected error code: " 56 << status << " " << ServiceWorkerStatusToString(status); 57 } 58 59 } // namespace content 60