Chromium Code Reviews| Index: content/browser/service_worker/service_worker_database.cc |
| diff --git a/content/browser/service_worker/service_worker_database.cc b/content/browser/service_worker/service_worker_database.cc |
| index 5cd3473ebfd88d3f2d7c0b77df7b60cfc80fbf12..b7f4848b0ddaa5b04b9afab4ae8b31ef26cd92c9 100644 |
| --- a/content/browser/service_worker/service_worker_database.cc |
| +++ b/content/browser/service_worker/service_worker_database.cc |
| @@ -530,6 +530,10 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ReadRegistration( |
| if (status != STATUS_OK) |
| return status; |
| + // ResourceRecord must contain the ServiceWorker's main script. |
| + if (resources->empty()) |
| + return ServiceWorkerDatabase::STATUS_ERROR_CORRUPTED; |
| + |
| *registration = value; |
| return STATUS_OK; |
| } |
| @@ -575,6 +579,7 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::WriteRegistration( |
| std::vector<int64>* newly_purgeable_resources) { |
| DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
| DCHECK(old_registration); |
| + DCHECK(!resources.empty()); |
|
michaeln
2015/05/08 20:41:08
Should an attempt to write a reg with an empty res
horo
2015/05/11 03:10:20
When WriteRegistration() is called, the registrati
|
| Status status = LazyOpen(true); |
| old_registration->version_id = kInvalidServiceWorkerVersionId; |
| if (status != STATUS_OK) |