M1352874 and #516: make timeouts less aggressive

This commit is contained in:
Cameron Kaiser 2018-08-24 08:21:21 -07:00
parent 43534dea3a
commit 4c83f3281f
3 changed files with 18 additions and 1 deletions

View File

@ -70,7 +70,7 @@
#define MAX_IDLE_FUZZ_TIME_MS 90000
// Min idle notification time in seconds.
#define MIN_IDLE_NOTIFICATION_TIME_S 10
#define MIN_IDLE_NOTIFICATION_TIME_S 5
class nsIArray;
class nsIBaseWindow;

View File

@ -24,6 +24,7 @@ nsHtml5AtomEntry::~nsHtml5AtomEntry()
}
nsHtml5AtomTable::nsHtml5AtomTable()
: mRecentlyUsedParserAtoms{}
{
#ifdef DEBUG
NS_GetMainThread(getter_AddRefs(mPermittedLookupThread));
@ -44,13 +45,23 @@ nsHtml5AtomTable::GetAtom(const nsAString& aKey)
NS_ASSERTION(mPermittedLookupThread == currentThread, "Wrong thread!");
}
#endif
uint32_t index = mozilla::HashString(aKey) % RECENTLY_USED_PARSER_ATOMS_SIZE;
nsIAtom* cachedAtom = mRecentlyUsedParserAtoms[index];
if (cachedAtom && cachedAtom->Equals(aKey)) {
return cachedAtom;
}
nsIAtom* atom = NS_GetStaticAtom(aKey);
if (atom) {
mRecentlyUsedParserAtoms[index] = atom;
return atom;
}
nsHtml5AtomEntry* entry = mTable.PutEntry(aKey);
if (!entry) {
return nullptr;
}
mRecentlyUsedParserAtoms[index] = entry->GetAtom();
return entry->GetAtom();
}

View File

@ -11,6 +11,8 @@
#include "nsIAtom.h"
#include "nsIThread.h"
#define RECENTLY_USED_PARSER_ATOMS_SIZE 31
class nsHtml5Atom;
class nsHtml5AtomEntry : public nsStringHashKey
@ -87,6 +89,9 @@ class nsHtml5AtomTable
*/
void Clear()
{
for (uint32_t i = 0; i < RECENTLY_USED_PARSER_ATOMS_SIZE; ++i) {
mRecentlyUsedParserAtoms[i] = nullptr;
}
mTable.Clear();
}
@ -99,6 +104,7 @@ class nsHtml5AtomTable
private:
nsTHashtable<nsHtml5AtomEntry> mTable;
nsIAtom* mRecentlyUsedParserAtoms[RECENTLY_USED_PARSER_ATOMS_SIZE];
#ifdef DEBUG
nsCOMPtr<nsIThread> mPermittedLookupThread;
#endif