| Index: webkit/appcache/appcache_update_job.cc
|
| ===================================================================
|
| --- webkit/appcache/appcache_update_job.cc (revision 53742)
|
| +++ webkit/appcache/appcache_update_job.cc (working copy)
|
| @@ -507,12 +507,16 @@
|
|
|
| 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 @@
|
| } 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);
|
| }
|
| }
|
|
|