mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-06-10 18:29:43 +00:00
M1352874 and #516: make timeouts less aggressive
This commit is contained in:
parent
43534dea3a
commit
4c83f3281f
|
@ -70,7 +70,7 @@
|
||||||
#define MAX_IDLE_FUZZ_TIME_MS 90000
|
#define MAX_IDLE_FUZZ_TIME_MS 90000
|
||||||
|
|
||||||
// Min idle notification time in seconds.
|
// Min idle notification time in seconds.
|
||||||
#define MIN_IDLE_NOTIFICATION_TIME_S 10
|
#define MIN_IDLE_NOTIFICATION_TIME_S 5
|
||||||
|
|
||||||
class nsIArray;
|
class nsIArray;
|
||||||
class nsIBaseWindow;
|
class nsIBaseWindow;
|
||||||
|
|
|
@ -24,6 +24,7 @@ nsHtml5AtomEntry::~nsHtml5AtomEntry()
|
||||||
}
|
}
|
||||||
|
|
||||||
nsHtml5AtomTable::nsHtml5AtomTable()
|
nsHtml5AtomTable::nsHtml5AtomTable()
|
||||||
|
: mRecentlyUsedParserAtoms{}
|
||||||
{
|
{
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
NS_GetMainThread(getter_AddRefs(mPermittedLookupThread));
|
NS_GetMainThread(getter_AddRefs(mPermittedLookupThread));
|
||||||
|
@ -44,13 +45,23 @@ nsHtml5AtomTable::GetAtom(const nsAString& aKey)
|
||||||
NS_ASSERTION(mPermittedLookupThread == currentThread, "Wrong thread!");
|
NS_ASSERTION(mPermittedLookupThread == currentThread, "Wrong thread!");
|
||||||
}
|
}
|
||||||
#endif
|
#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);
|
nsIAtom* atom = NS_GetStaticAtom(aKey);
|
||||||
if (atom) {
|
if (atom) {
|
||||||
|
mRecentlyUsedParserAtoms[index] = atom;
|
||||||
return atom;
|
return atom;
|
||||||
}
|
}
|
||||||
nsHtml5AtomEntry* entry = mTable.PutEntry(aKey);
|
nsHtml5AtomEntry* entry = mTable.PutEntry(aKey);
|
||||||
if (!entry) {
|
if (!entry) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mRecentlyUsedParserAtoms[index] = entry->GetAtom();
|
||||||
return entry->GetAtom();
|
return entry->GetAtom();
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
#include "nsIAtom.h"
|
#include "nsIAtom.h"
|
||||||
#include "nsIThread.h"
|
#include "nsIThread.h"
|
||||||
|
|
||||||
|
#define RECENTLY_USED_PARSER_ATOMS_SIZE 31
|
||||||
|
|
||||||
class nsHtml5Atom;
|
class nsHtml5Atom;
|
||||||
|
|
||||||
class nsHtml5AtomEntry : public nsStringHashKey
|
class nsHtml5AtomEntry : public nsStringHashKey
|
||||||
|
@ -87,6 +89,9 @@ class nsHtml5AtomTable
|
||||||
*/
|
*/
|
||||||
void Clear()
|
void Clear()
|
||||||
{
|
{
|
||||||
|
for (uint32_t i = 0; i < RECENTLY_USED_PARSER_ATOMS_SIZE; ++i) {
|
||||||
|
mRecentlyUsedParserAtoms[i] = nullptr;
|
||||||
|
}
|
||||||
mTable.Clear();
|
mTable.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,6 +104,7 @@ class nsHtml5AtomTable
|
||||||
|
|
||||||
private:
|
private:
|
||||||
nsTHashtable<nsHtml5AtomEntry> mTable;
|
nsTHashtable<nsHtml5AtomEntry> mTable;
|
||||||
|
nsIAtom* mRecentlyUsedParserAtoms[RECENTLY_USED_PARSER_ATOMS_SIZE];
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
nsCOMPtr<nsIThread> mPermittedLookupThread;
|
nsCOMPtr<nsIThread> mPermittedLookupThread;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user