| Index: Source/core/dom/Document.cpp
|
| diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
|
| index 8f69070bcd168e8d745d51fc690cd23f6f08c846..509682eb9af9c40cfca479ad942a8cea17b1535f 100644
|
| --- a/Source/core/dom/Document.cpp
|
| +++ b/Source/core/dom/Document.cpp
|
| @@ -184,10 +184,6 @@ static const double cDefaultIncrementalRenderingSuppressionTimeoutInSeconds = 5;
|
|
|
| static const unsigned cMaxWriteRecursionDepth = 21;
|
|
|
| -// This amount of time must have elapsed before we will even consider scheduling a layout without a delay.
|
| -// FIXME: For faster machines this value can really be lowered to 200. 250 is adequate, but a little high
|
| -// for dual G5s. :)
|
| -static const int cLayoutScheduleThreshold = 250;
|
|
|
| // DOM Level 2 says (letters added):
|
| //
|
| @@ -407,10 +403,8 @@ Document::Document(const DocumentInit& initializer, DocumentClassFlags documentC
|
| , m_cssTarget(0)
|
| , m_processingLoadEvent(false)
|
| , m_loadEventFinished(false)
|
| - , m_startTime(currentTime())
|
| - , m_overMinimumLayoutThreshold(false)
|
| , m_scriptRunner(ScriptRunner::create(this))
|
| - , m_xmlVersion("1.0")
|
| + , m_xmlVersion(ASCIILiteral("1.0"))
|
| , m_xmlStandalone(StandaloneUnspecified)
|
| , m_hasXMLDeclaration(0)
|
| , m_designMode(inherit)
|
| @@ -1174,6 +1168,8 @@ void Document::setContent(const String& content)
|
| // pump the tokenizer syncrhonously and finish the parse.
|
| m_parser->pinToMainThread();
|
| m_parser->append(content.impl());
|
| + // FIXME: Append may yield for script execution. Unclear if close()
|
| + // will wait for the parse to complete before returning or not.
|
| close();
|
| }
|
|
|
| @@ -2242,25 +2238,12 @@ void Document::implicitClose()
|
| return;
|
| }
|
|
|
| - // Make sure both the initial layout and reflow happen after the onload
|
| - // fires. This will improve onload scores, and other browsers do it.
|
| - // If they wanna cheat, we can too. -dwh
|
| -
|
| - if (frame()->navigationScheduler()->locationChangePending() && elapsedTime() < cLayoutScheduleThreshold) {
|
| - // Just bail out. Before or during the onload we were shifted to another page.
|
| - // The old i-Bench suite does this. When this happens don't bother painting or laying out.
|
| - m_processingLoadEvent = false;
|
| - view()->unscheduleRelayout();
|
| - return;
|
| - }
|
| -
|
| frame()->loader()->checkCallImplicitClose();
|
| RenderObject* renderObject = renderer();
|
|
|
| // We used to force a synchronous display and flush here. This really isn't
|
| // necessary and can in fact be actively harmful if pages are loading at a rate of > 60fps
|
| // (if your platform is syncing flushes and limiting them to 60fps).
|
| - m_overMinimumLayoutThreshold = true;
|
| if (!ownerElement() || (ownerElement()->renderer() && !ownerElement()->renderer()->needsLayout())) {
|
| updateStyleIfNeeded();
|
|
|
| @@ -2315,26 +2298,9 @@ bool Document::shouldScheduleLayout()
|
| || (documentElement() && !isHTMLHtmlElement(documentElement()));
|
| }
|
|
|
| -bool Document::isLayoutTimerActive()
|
| -{
|
| - return view() && view()->layoutPending() && !minimumLayoutDelay();
|
| -}
|
| -
|
| -int Document::minimumLayoutDelay()
|
| -{
|
| - if (m_overMinimumLayoutThreshold)
|
| - return 0;
|
| -
|
| - int elapsed = elapsedTime();
|
| - m_overMinimumLayoutThreshold = elapsed > cLayoutScheduleThreshold;
|
| -
|
| - // We'll want to schedule the timer to fire at the minimum layout threshold.
|
| - return max(0, cLayoutScheduleThreshold - elapsed);
|
| -}
|
| -
|
| -int Document::elapsedTime() const
|
| +bool Document::parserShouldYieldAgressivelyBeforeFirstLayout()
|
| {
|
| - return static_cast<int>((currentTime() - m_startTime) * 1000);
|
| + return view() && view()->layoutPending();
|
| }
|
|
|
| void Document::write(const SegmentedString& text, Document* ownerDocument)
|
|
|