Bug 1249438 P1 Move guts of RegisterServiceWorker() into a protected method that can be tested in gtest. r=baku

This commit is contained in:
Ben Kelly 2016-03-29 07:20:48 -07:00
parent 1ca6cd33b5
commit a28d138da6
2 changed files with 20 additions and 13 deletions

View File

@ -180,19 +180,7 @@ ServiceWorkerRegistrar::RegisterServiceWorker(
{
MonitorAutoLock lock(mMonitor);
MOZ_ASSERT(mDataLoaded);
bool found = false;
for (uint32_t i = 0, len = mData.Length(); i < len; ++i) {
if (Equivalent(aData, mData[i])) {
mData[i] = aData;
found = true;
break;
}
}
if (!found) {
mData.AppendElement(aData);
}
RegisterServiceWorkerInternal(aData);
}
ScheduleSaveData();
@ -516,6 +504,23 @@ ServiceWorkerRegistrar::DeleteData()
}
}
void
ServiceWorkerRegistrar::RegisterServiceWorkerInternal(const ServiceWorkerRegistrationData& aData)
{
bool found = false;
for (uint32_t i = 0, len = mData.Length(); i < len; ++i) {
if (Equivalent(aData, mData[i])) {
mData[i] = aData;
found = true;
break;
}
}
if (!found) {
mData.AppendElement(aData);
}
}
class ServiceWorkerRegistrarSaveDataRunnable final : public nsRunnable
{
public:

View File

@ -66,6 +66,8 @@ protected:
nsresult WriteData();
void DeleteData();
void RegisterServiceWorkerInternal(const ServiceWorkerRegistrationData& aData);
ServiceWorkerRegistrar();
virtual ~ServiceWorkerRegistrar();