Bug 1284204 - Parse SafeBrowsing V4 updates to TableUpdateV4. r=francois.
MozReview-Commit-ID: 88AEIbosxKl
This commit is contained in:
@@ -460,8 +460,8 @@ nsUrlClassifierDBServiceWorker::BeginStream(const nsACString &table)
|
||||
}
|
||||
}
|
||||
|
||||
mProtocolParser = (useProtobuf ? new ProtocolParserProtobuf()
|
||||
: new ProtocolParser());
|
||||
mProtocolParser = (useProtobuf ? static_cast<ProtocolParser*>(new ProtocolParserProtobuf())
|
||||
: static_cast<ProtocolParser*>(new ProtocolParserV2()));
|
||||
if (!mProtocolParser)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
@@ -719,7 +719,7 @@ nsUrlClassifierDBServiceWorker::CacheCompletions(CacheResultArray *results)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsAutoPtr<ProtocolParser> pParse(new ProtocolParser());
|
||||
nsAutoPtr<ProtocolParserV2> pParse(new ProtocolParserV2());
|
||||
nsTArray<TableUpdate*> updates;
|
||||
|
||||
// Only cache results for tables that we have, don't take
|
||||
@@ -738,21 +738,25 @@ nsUrlClassifierDBServiceWorker::CacheCompletions(CacheResultArray *results)
|
||||
}
|
||||
}
|
||||
if (activeTable) {
|
||||
TableUpdate * tu = pParse->GetTableUpdate(resultsPtr->ElementAt(i).table);
|
||||
TableUpdateV2* tuV2 = TableUpdate::Cast<TableUpdateV2>(
|
||||
pParse->GetTableUpdate(resultsPtr->ElementAt(i).table));
|
||||
|
||||
NS_ENSURE_TRUE(tuV2, NS_ERROR_FAILURE);
|
||||
|
||||
LOG(("CacheCompletion Addchunk %d hash %X", resultsPtr->ElementAt(i).entry.addChunk,
|
||||
resultsPtr->ElementAt(i).entry.ToUint32()));
|
||||
rv = tu->NewAddComplete(resultsPtr->ElementAt(i).entry.addChunk,
|
||||
resultsPtr->ElementAt(i).entry.complete);
|
||||
rv = tuV2->NewAddComplete(resultsPtr->ElementAt(i).entry.addChunk,
|
||||
resultsPtr->ElementAt(i).entry.complete);
|
||||
if (NS_FAILED(rv)) {
|
||||
// We can bail without leaking here because ForgetTableUpdates
|
||||
// hasn't been called yet.
|
||||
return rv;
|
||||
}
|
||||
rv = tu->NewAddChunk(resultsPtr->ElementAt(i).entry.addChunk);
|
||||
rv = tuV2->NewAddChunk(resultsPtr->ElementAt(i).entry.addChunk);
|
||||
if (NS_FAILED(rv)) {
|
||||
return rv;
|
||||
}
|
||||
updates.AppendElement(tu);
|
||||
updates.AppendElement(tuV2);
|
||||
pParse->ForgetTableUpdates();
|
||||
} else {
|
||||
LOG(("Completion received, but table is not active, so not caching."));
|
||||
|
||||
Reference in New Issue
Block a user