From 309a0c3bc90e0348a13727c30c15f39d06896d84 Mon Sep 17 00:00:00 2001 From: "michaeln@chromium.org" Date: Wed, 28 Jul 2010 01:18:33 +0000 Subject: A better error message for the mime type of a manifest file being off. BUG=none TEST=manual Review URL: http://codereview.chromium.org/3076005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53890 0039d316-1c4b-4281-b951-d872f2087c98 --- webkit/appcache/appcache_update_job.cc | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'webkit') diff --git a/webkit/appcache/appcache_update_job.cc b/webkit/appcache/appcache_update_job.cc index a112310..3cf5964 100644 --- a/webkit/appcache/appcache_update_job.cc +++ b/webkit/appcache/appcache_update_job.cc @@ -507,12 +507,16 @@ void AppCacheUpdateJob::HandleManifestFetchCompleted(URLRequest* request) { int response_code = -1; std::string mime_type; + bool is_valid_response_code = false; + bool is_valid_mime_type = false; if (request->status().is_success()) { response_code = request->GetResponseCode(); + is_valid_response_code = (response_code / 100 == 2); request->GetMimeType(&mime_type); + is_valid_mime_type = (mime_type == kManifestMimeType); } - if ((response_code / 100 == 2) && mime_type == kManifestMimeType) { + if (is_valid_response_code && is_valid_mime_type) { manifest_response_info_.reset( new net::HttpResponseInfo(request->response_info())); if (update_type_ == UPGRADE_ATTEMPT) @@ -524,9 +528,17 @@ void AppCacheUpdateJob::HandleManifestFetchCompleted(URLRequest* request) { } else if (response_code == 404 || response_code == 410) { service_->storage()->MakeGroupObsolete(group_, this); // async } else { - const char* kFormatString = "Manifest fetch failed (%d) %s"; - const std::string message = StringPrintf(kFormatString, response_code, - manifest_url_.spec().c_str()); + std::string message; + if (!is_valid_response_code) { + const char* kFormatString = "Manifest fetch failed (%d) %s"; + message = StringPrintf(kFormatString, response_code, + manifest_url_.spec().c_str()); + } else { + DCHECK(!is_valid_mime_type); + const char* kFormatString = "Invalid manifest mime type (%s) %s"; + message = StringPrintf(kFormatString, mime_type.c_str(), + manifest_url_.spec().c_str()); + } HandleCacheFailure(message); } } -- cgit v1.1