Remove the layout.reflow.async.duringDocLoad pref -- setting it to false just

makes us buggy.  Bug 334543, r+sr=dbaron
This commit is contained in:
bzbarsky%mit.edu 2006-04-19 15:08:44 +00:00
Родитель d1669496f9
Коммит 5a68224488
1 изменённых файлов: 30 добавлений и 47 удалений

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

@ -406,10 +406,6 @@ protected:
#define NS_MAX_REFLOW_TIME 1000000
static PRInt32 gMaxRCProcessingTime = -1;
// Set to true to enable async reflow during document load.
// This flag is initialized from the layout.reflow.async.duringDocLoad pref.
static PRBool gAsyncReflowDuringDocLoad = PR_FALSE;
// Largest chunk size we recycle
static const size_t gMaxRecycledSize = 400;
@ -1780,10 +1776,6 @@ PresShell::Init(nsIDocument* aDocument,
gMaxRCProcessingTime =
nsContentUtils::GetIntPref("layout.reflow.timeslice",
NS_MAX_REFLOW_TIME);
gAsyncReflowDuringDocLoad =
nsContentUtils::GetBoolPref("layout.reflow.async.duringDocLoad",
PR_TRUE);
}
{
@ -3668,13 +3660,12 @@ PresShell::AppendReflowCommand(nsIFrame* aTargetFrame,
delete command;
}
// For async reflow during doc load, post a reflow event if we are not batching reflow commands.
// For sync reflow during doc load, post a reflow event if we are not batching reflow commands
// and the document is not loading.
if ((gAsyncReflowDuringDocLoad && !mBatchReflows) ||
(!gAsyncReflowDuringDocLoad && !mBatchReflows && !mDocumentLoading)) {
// Post a reflow event if we are not batching reflow commands.
if (!mBatchReflows) {
// If we're in the middle of a drag, process it right away (needed for mac,
// might as well do it on all platforms just to keep the code paths the same).
// XXXbz but how does this actually "process it right away"?
// Isn't this more like "never process it"?
if ( !IsDragInProgress() )
PostReflowEvent();
}
@ -6460,11 +6451,7 @@ PresShell::DidCauseReflow()
if (--mChangeNestCount == 0) {
// We may have had more reflow commands appended to the queue during
// our reflow. Make sure these get processed at some point.
if (!gAsyncReflowDuringDocLoad && mDocumentLoading) {
FlushPendingNotifications(Flush_Layout);
} else {
PostReflowEvent();
}
PostReflowEvent();
}
return NS_OK;
@ -6649,34 +6636,32 @@ nsresult
PresShell::ReflowCommandAdded(nsHTMLReflowCommand* aRC)
{
if (gAsyncReflowDuringDocLoad) {
NS_PRECONDITION(mRCCreatedDuringLoad >= 0, "PresShell's reflow command queue is in a bad state.");
if (mDocumentLoading) {
aRC->AddFlagBits(NS_RC_CREATED_DURING_DOCUMENT_LOAD);
mRCCreatedDuringLoad++;
NS_PRECONDITION(mRCCreatedDuringLoad >= 0, "PresShell's reflow command queue is in a bad state.");
if (mDocumentLoading) {
aRC->AddFlagBits(NS_RC_CREATED_DURING_DOCUMENT_LOAD);
mRCCreatedDuringLoad++;
#ifdef PR_LOGGING
if (PR_LOG_TEST(gLog, PR_LOG_DEBUG)) {
nsIFrame* target;
aRC->GetTarget(target);
if (PR_LOG_TEST(gLog, PR_LOG_DEBUG)) {
nsIFrame* target;
aRC->GetTarget(target);
nsIAtom* type = target->GetType();
NS_ASSERTION(type, "frame didn't override GetType()");
nsIAtom* type = target->GetType();
NS_ASSERTION(type, "frame didn't override GetType()");
nsAutoString typeStr(NS_LITERAL_STRING("unknown"));
if (type)
type->ToString(typeStr);
nsAutoString typeStr(NS_LITERAL_STRING("unknown"));
if (type)
type->ToString(typeStr);
PR_LOG(gLog, PR_LOG_DEBUG,
("presshell=%p, ReflowCommandAdded(%p) target=%p[%s] mRCCreatedDuringLoad=%d\n",
this, aRC, target, NS_ConvertUTF16toUTF8(typeStr).get(), mRCCreatedDuringLoad));
}
PR_LOG(gLog, PR_LOG_DEBUG,
("presshell=%p, ReflowCommandAdded(%p) target=%p[%s] mRCCreatedDuringLoad=%d\n",
this, aRC, target, NS_ConvertUTF16toUTF8(typeStr).get(), mRCCreatedDuringLoad));
}
#endif
if (!mDocumentOnloadBlocked) {
mDocument->BlockOnload();
mDocumentOnloadBlocked = PR_TRUE;
}
if (!mDocumentOnloadBlocked) {
mDocument->BlockOnload();
mDocumentOnloadBlocked = PR_TRUE;
}
}
return NS_OK;
@ -6689,15 +6674,13 @@ PresShell::ReflowCommandRemoved(nsHTMLReflowCommand* aRC)
PL_DHashTableOperate(&mReflowCommandTable, aRC, PL_DHASH_REMOVE);
if (gAsyncReflowDuringDocLoad) {
NS_PRECONDITION(mRCCreatedDuringLoad >= 0, "PresShell's reflow command queue is in a bad state.");
if (aRC->GetFlagBits() & NS_RC_CREATED_DURING_DOCUMENT_LOAD) {
mRCCreatedDuringLoad--;
NS_PRECONDITION(mRCCreatedDuringLoad >= 0, "PresShell's reflow command queue is in a bad state.");
if (aRC->GetFlagBits() & NS_RC_CREATED_DURING_DOCUMENT_LOAD) {
mRCCreatedDuringLoad--;
PR_LOG(gLog, PR_LOG_DEBUG,
("presshell=%p, ReflowCommandRemoved(%p) mRCCreatedDuringLoad=%d\n",
this, aRC, mRCCreatedDuringLoad));
}
PR_LOG(gLog, PR_LOG_DEBUG,
("presshell=%p, ReflowCommandRemoved(%p) mRCCreatedDuringLoad=%d\n",
this, aRC, mRCCreatedDuringLoad));
}
return NS_OK;
}