Backed out changeset 58fe37290a82 (bug 1364364)

This commit is contained in:
Sebastian Hengst 2017-09-07 16:49:45 +02:00
Родитель a8efe436cc
Коммит 7a9c465cf3
3 изменённых файлов: 5 добавлений и 58 удалений

Просмотреть файл

@ -120,20 +120,6 @@ interface nsISHistoryInternal: nsISupports
[noscript, notxpcom] void RemoveDynEntries(in long aIndex,
in nsISHContainer aContainer);
/**
* Similar to RemoveDynEntries, but instead of specifying an index, use the
* given BFCacheEntry to find the index and remove dynamic entries from the
* index.
*
* The method takes no effect if the bfcache entry is not or no longer hold
* by the SHistory instance.
*
* @param aEntry
* The bfcache entry to look up for index to remove dynamic entries
* from.
*/
[noscript, notxpcom] void RemoveDynEntriesForBFCacheEntry(in nsIBFCacheEntry aEntry);
/**
* Removes entries from the history if their docshellID is in
* aIDs array.

Просмотреть файл

@ -1290,13 +1290,8 @@ nsSHistory::GloballyEvictContentViewers()
}
nsresult
nsSHistory::FindTransactionForBFCache(nsIBFCacheEntry* aEntry,
nsISHTransaction** aResult,
int32_t* aResultIndex)
nsSHistory::EvictExpiredContentViewerForEntry(nsIBFCacheEntry* aEntry)
{
*aResult = nullptr;
*aResultIndex = -1;
int32_t startIndex = std::max(0, mIndex - nsISHistory::VIEWER_WINDOW);
int32_t endIndex = std::min(mLength - 1, mIndex + nsISHistory::VIEWER_WINDOW);
nsCOMPtr<nsISHTransaction> trans;
@ -1316,29 +1311,15 @@ nsSHistory::FindTransactionForBFCache(nsIBFCacheEntry* aEntry,
temp->GetNext(getter_AddRefs(trans));
}
if (i > endIndex) {
return NS_ERROR_FAILURE;
}
trans.forget(aResult);
*aResultIndex = i;
return NS_OK;
}
nsresult
nsSHistory::EvictExpiredContentViewerForEntry(nsIBFCacheEntry* aEntry)
{
int32_t index;
nsCOMPtr<nsISHTransaction> trans;
FindTransactionForBFCache(aEntry, getter_AddRefs(trans), &index);
if (index == mIndex) {
if (i == mIndex) {
NS_WARNING("How did the current SHEntry expire?");
return NS_OK;
}
if (trans) {
EvictContentViewerForTransaction(trans);
}
return NS_OK;
}
@ -1605,20 +1586,6 @@ nsSHistory::RemoveDynEntries(int32_t aIndex, nsISHContainer* aContainer)
}
}
void
nsSHistory::RemoveDynEntriesForBFCacheEntry(nsIBFCacheEntry* aEntry)
{
int32_t index;
nsCOMPtr<nsISHTransaction> trans;
FindTransactionForBFCache(aEntry, getter_AddRefs(trans), &index);
if (trans) {
nsCOMPtr<nsISHEntry> entry;
trans->GetSHEntry(getter_AddRefs(entry));
nsCOMPtr<nsISHContainer> container(do_QueryInterface(entry));
RemoveDynEntries(index, container);
}
}
NS_IMETHODIMP
nsSHistory::UpdateIndex()
{

Просмотреть файл

@ -96,12 +96,6 @@ private:
nsresult PrintHistory();
#endif
// Find the transaction for a given bfcache entry. It only looks up between
// the range where alive viewers may exist (i.e nsISHistory::VIEWER_WINDOW).
nsresult FindTransactionForBFCache(nsIBFCacheEntry* aEntry,
nsISHTransaction** aResult,
int32_t* aResultIndex);
// Evict content viewers in this window which don't lie in the "safe" range
// around aIndex.
void EvictOutOfRangeWindowContentViewers(int32_t aIndex);