WebFrame::loadHTMLString(string, baseURL)
>loadHTMLString(string, baseURL, unreachableURL);
>loadData(data, mimeType, textEncodingName, baseURL, failingURL)
>FrameLoader::load(request, substituteData, lockHistory)
>m_client->createDocumentLoader(request, substituteData);
>load(newDocumentLoader)
>addExtraFieldsToMainResourceRequest(request)
>loadWithDocumentLoader(loader, type, prpFormState)
>stopPolicyCheck()
>setPolicyDocumentLoader(loader)
>DocumentLoader::setFrame(frame)
>WebDocumentLoader::attachToFrame()
>DocumentLoader::setTriggeringAction(action)
>checkNavigationPolicy
>callContinueLoadAfterNavigationPolicy
>continueLoadAfterNavigationPolicy
>stopAllLoaders
>stopPolicyCheck
>stopLoadingSubframes
>DocumentLoader::stopLoading
>setProvisionalDocumentLoader(0)
>DocumentLoader::clearArchiveResources
>setProvisionalDocumentLoader(m_policyDocumentLoader.get())
>setState(FrameStateProvisional)
>provisionalLoadStarted()
>cancelRedirection(true)
>FrameLoaderClient::provisionalLoadStarted()----
>FrameLoaderClientAndroid::provisionalLoadStarted
>BrowserFrame.loadStarted(..)//调用到应用层
>setPolicyDocumentLoader(0)
>continueLoadAfterWillSubmitForm();
>DocumentLoader::prepareForLoadStart
>setPrimaryLoadComplete(false);
>clearErrors();
>setLoading(true);
>FrameLoader::prepareForLoadStart
>ProgressTracker::progressStarted
>ProgressTracker::createUniqueIdentifier
>DocumentLoader::startLoadingMainResource(identifier)
>MainResourceLoader::create(frame)
>ResourceLoader::setIdentifier(identifier)
>MainResourceLoader::load(r, substituteData)
>loadNow(r)
>willSendRequest(newRequest, redirectResponse)
>ResourceLoader::willSendRequest(newRequest, redirectResponse)
>FrameLoader::willSendRequest
>applyUserAgent
>dispatchWillSendRequest
>DocumentLoader::didTellClientAboutLoad
>WebFrameLoaderClient::dispatchWillSendRequest
>InspectorController::willSendRequest
>DocumentLoader::setRequest
>handleDataLoadSoon
>startDataLoadTimer
>ResourceHandle::create(r, this, m_frame.get(), false, true, true)
>ResourceHandle::start
>ResourceLoaderAndroid::start
>clientAndroid->webFrame()->startLoadingResource
>env->CallObjectMethod(mStartLoadingResource
>调用应用层的browserframe的startLoadingResource方法
>DocumentLoader::setLastCheckedRequest
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>MainResourceLoader::didReceiveData
>ResourceLoader::didReceiveData
>MainResourceLoader::addData
>ResourceLoader::addData
>m_resourceData = SharedBuffer::create
>FrameLoader::receivedData
>DocumentLoader::receivedData
>m_gotFirstByte = true;
>doesProgressiveLoad
>commitLoad
>commitIfReady*
>FrameLoader::committedLoad*
>FrameLoader::didReceiveData
>ProgressTracker::incrementProgress
>dispatchDidReceiveContentLength
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>FrameLoader::addData
>write
>m_decoder = TextResourceDecoder::create
>m_decoder->setEncoding
>Document::setDecoder
>TextResourceDecoder::decode
>checkForBOM
>m_receivedData = true;
>Document::recalcStyle
> m_inStyleRecalc = true;
>ContainerNode::suspendPostAttachCallbacks
>FrameView::pauseScheduledEvents
>m_hasNodesWithPlaceholderStyle = false;
>RenderStyle::create
>documentStyle->setDisplay(BLOCK);
>documentStyle->setVisuallyOrdered(visuallyOrdered);
>documentStyle->setZoom(frame()->pageZoomFactor());
>m_styleSelector->setStyle(documentStyle);
>setNeedsStyleRecalc(NoStyleChange);
>setChildNeedsStyleRecalc(false);
>unscheduleStyleRecalc
>FrameView::resumeScheduledEvents
>ContainerNode::resumePostAttachCallbacks
>m_inStyleRecalc = false;
>HTMLTokenizer::write
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>FrameLoader::committedLoad
>m_client->committedLoad(loader, data, length);
>receivedData
>FrameLoader::setEncoding
>receivedFirstData
>begin(m_workingURL, false);
>dispatchDidCommitLoad()
>m_client->dispatchDidCommitLoad();
>WinLauncherWebHost::didCommitLoadForFrame
>WinLauncherWebHost::updateAddressBar
>dispatchWindowObjectAvailable
>m_workingURL = KURL();
>m_encoding = name;
>m_encodingWasChosenByUser = userChosen;
>FrameLoader::addData*
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>WebFrameLoaderClient::transitionToCommittedForNewPage
>Frame::createView
>ScrollView::setParentVisible
>Widget::setParentVisible
>setView(0);
>Document::detach()*
>m_view->unscheduleRelayout();
>EventHandler::clear()
>FrameLoader::resetMultipleFormSubmissionProtection()
>m_submittedFormURL = KURL();
>FrameView::create
>Widget::setFrameRect
>ScrollView::show()
>frameView->setFixedLayoutSize
>frameView->setScrollbarModes
>frameView->updateDefaultScrollbarState
>setView(frameView);
>frameView->updateBackgroundRecursively
>frameView->setParentVisible(true)
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>FrameLoader::closeURL
>saveDocumentState
>stopLoading
>DOMWindow::dispatchPageTransitionEvent
>dispatchEventWithDocumentAsTarget
>handleEvent
>Document::updateStyleIfNeeded
>Document::removeAllEventListeners
>DOMWindow::removeAllEventListeners
>removeAllDisconnectedNodeEventListeners
>Loader::cancelRequests
>DocLoader::clearPendingPreloads
>Loader::Host::hasRequests
>scheduleServePendingRequests
>TimerBase::startOneShot
>cancelRedirection
>Editor::clearUndoRedoOperations
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>DocumentLoader::commitIfReady
>m_committed = true;
>FrameLoader::commitProvisionalLoad(0)
>cachePageForHistoryItem
>closeOldDataSources
>WebFrameLoaderClient::dispatchWillClose
>WebFrameLoaderClient::setMainFrameDocumentReady(false)
>WebFrame::makeRepresentation
>transitionToCommitted
>WebFrame::setCopiesOnScroll
>updateHistoryForCommit
>closeURL*
>DocumentLoader::stopLoadingSubresources
>DocumentLoader::stopLoadingPlugIns
>setDocumentLoader
>setProvisionalDocumentLoader(0)
>setState(FrameStateCommittedPage);
>updateHistoryForStandardLoad
>ScrollView::setScrollbarsSuppressed
>WebFrameLoaderClient::transitionToCommittedForNewPage*
>m_responseMIMEType = dl->responseMIMEType();
>m_committedFirstRealDocumentLoad = true;
>didOpenURL
>cancelRedirection
>stopRedirectionTimer();
>Editor::clearLastEditCommand()
>closeURL()
>m_URL = url;
>m_workingURL = m_URL;
>started()
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>Document::detach()
>clearAXObjectCache
>ScriptExecutionContext::stopActiveDOMObjects
>render = renderer();
>documentWillBecomeInactive
>FrameView::detachCustomScrollbars
>Node::setRenderer(0);
>ContainerNode::detach
>setChildNeedsStyleRecalc(false);
>Node::detach()
>unscheduleStyleRecalc()
>RenderBlock::destroy()
>m_frame = 0;
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈)
MainResourceLoader::handleDataLoadNow
>didReceiveResponse
>m_documentLoader->setResponse(r)
>ref
>FrameLoader::checkContentPolicy
>MainResourceLoader::callContinueAfterContentPolicy
>continueAfterContentPolicy(policy)
>continueAfterContentPolicy(contentPolicy, response)
>ResourceLoader::reachedTerminalState
>ResourceLoader::didReceiveResponse
>FrameLoader::didReceiveResponse
>DocumentLoader::addResponse
>ProgressTracker::incrementProgress
>dispatchDidReceiveResponse
>WebFrameLoaderClient::dispatchDidReceiveResponse
>InspectorController::didReceiveResponse
>didReceiveData
>ResourceLoader::didReceiveData
>MainResourceLoader::addData
>ResourceLoader::addData
>m_resourceData = SharedBuffer::create
>FrameLoader::receivedData
>DocumentLoader::receivedData
>m_gotFirstByte = true;
>doesProgressiveLoad
>commitLoad
>commitIfReady
>m_committed = true;
>FrameLoader::commitProvisionalLoad(0)
>cachePageForHistoryItem
>closeOldDataSources
>WebFrameLoaderClient::dispatchWillClose
>WebFrameLoaderClient::setMainFrameDocumentReady(false)
>WebFrame::makeRepresentation
>transitionToCommitted
>WebFrame::setCopiesOnScroll
>updateHistoryForCommit
>closeURL
>saveDocumentState
>stopLoading
>DOMWindow::dispatchPageTransitionEvent
>dispatchEventWithDocumentAsTarget
>handleEvent
>Document::updateStyleIfNeeded
>Document::removeAllEventListeners
>DOMWindow::removeAllEventListeners
>removeAllDisconnectedNodeEventListeners
>Loader::cancelRequests
>DocLoader::clearPendingPreloads
>Loader::Host::hasRequests
>scheduleServePendingRequests
>TimerBase::startOneShot
>cancelRedirection
>Editor::clearUndoRedoOperations
>DocumentLoader::stopLoadingSubresources
>DocumentLoader::stopLoadingPlugIns
>setDocumentLoader
>setProvisionalDocumentLoader(0)
>setState(FrameStateCommittedPage);
>updateHistoryForStandardLoad
>ScrollView::setScrollbarsSuppressed
>WebFrameLoaderClient::transitionToCommittedForNewPage
>Frame::createView
>ScrollView::setParentVisible
>Widget::setParentVisible
>setView(0);
>Document::detach()
>clearAXObjectCache
>ScriptExecutionContext::stopActiveDOMObjects
>render = renderer();
>documentWillBecomeInactive
>FrameView::detachCustomScrollbars
>Node::setRenderer(0);
>ContainerNode::detach
>setChildNeedsStyleRecalc(false);
>Node::detach()
>unscheduleStyleRecalc()
>RenderBlock::destroy()
>m_frame = 0;
>m_view->unscheduleRelayout();
>EventHandler::clear()
>FrameLoader::resetMultipleFormSubmissionProtection()
>m_submittedFormURL = KURL();
>FrameView::create
>Widget::setFrameRect
>ScrollView::show()
>frameView->setFixedLayoutSize
>frameView->setScrollbarModes
>frameView->updateDefaultScrollbarState
>setView(frameView);
>frameView->updateBackgroundRecursively
>frameView->setParentVisible(true)
>m_responseMIMEType = dl->responseMIMEType();
>m_committedFirstRealDocumentLoad = true;
>didOpenURL
>cancelRedirection
>stopRedirectionTimer();
>Editor::clearLastEditCommand()
>closeURL()
>m_URL = url;
>m_workingURL = m_URL;
>started()
>FrameLoader::committedLoad
>m_client->committedLoad(loader, data, length);
>receivedData
>FrameLoader::setEncoding
>receivedFirstData
>begin(m_workingURL, false);
>dispatchDidCommitLoad()
>m_client->dispatchDidCommitLoad();
>WinLauncherWebHost::didCommitLoadForFrame
>WinLauncherWebHost::updateAddressBar
>dispatchWindowObjectAvailable
>m_workingURL = KURL();
>m_encoding = name;
>m_encodingWasChosenByUser = userChosen;
>FrameLoader::addData
>write
>m_decoder = TextResourceDecoder::create
>m_decoder->setEncoding
>Document::setDecoder
>TextResourceDecoder::decode
>checkForBOM
>m_receivedData = true;
>Document::recalcStyle
> m_inStyleRecalc = true;
>ContainerNode::suspendPostAttachCallbacks
>FrameView::pauseScheduledEvents
>m_hasNodesWithPlaceholderStyle = false;
>RenderStyle::create
>documentStyle->setDisplay(BLOCK);
>documentStyle->setVisuallyOrdered(visuallyOrdered);
>documentStyle->setZoom(frame()->pageZoomFactor());
>m_styleSelector->setStyle(documentStyle);
>setNeedsStyleRecalc(NoStyleChange);
>setChildNeedsStyleRecalc(false);
>unscheduleStyleRecalc
>FrameView::resumeScheduledEvents
>ContainerNode::resumePostAttachCallbacks
>m_inStyleRecalc = false;
>HTMLTokenizer::write
>FrameLoader::didReceiveData
>ProgressTracker::incrementProgress
>dispatchDidReceiveContentLength
>didFinishLoading
>FrameLoader::finishedLoading()
>DocumentLoader::finishedLoading()
>m_gotFirstByte = true;
>commitIfReady();
>FrameLoader::finishedLoadingDocument
>WebFrameLoaderClient::finishedLoading
>committedLoad
>receivedData
>FrameLoader::end
>m_isLoadingMainResource = false;
>endIfNotLoadingMainResource
>write(0, 0, true);
>Document::finishParsing()
>HTMLTokenizer::finish()
>end()
>HTMLParser::finished()
>Document::finishedParsing()
>setParsing(false);
>m_bParsing = b;
>FrameView::scheduleRelayout()
>needsLayout()
>layoutPending()
>m_layoutTimer.isActive();
>Document::shouldScheduleLayout()
>dispatchEvent
>Node::dispatchGenericEvent
>FrameLoader::finishedParsing()
>WebFrameLoaderClient::dispatchDidFinishDocumentLoad()
>checkCompleted()
>checkCallImplicitClose
>m_didCallImplicitClose = true;
>m_wasUnloadEventEmitted = false;
>Document::implicitClose
>m_processingLoadEvent = true;
>m_wellFormed = m_tokenizer && m_tokenizer->wellFormed();
>delete m_tokenizer;
>m_tokenizer = 0;
>m_docLoader->clearPreloads();
>FrameLoader::startIconLoader()
>AnimationController::resumeAnimations
>ImageLoader::dispatchPendingLoadEvents();
>dispatchLoadEvent
>DOMWindow::dispatchLoadEvent
>dispatchPageTransitionEvent
>FrameLoader::handledOnloadEvents
>WebFrameLoaderClient::dispatchDidHandleOnloadEvents
>m_processingLoadEvent = false;
>FrameLoader::checkCallImplicitClose
>m_overMinimumLayoutThreshold = true;
>updateStyleIfNeeded
>FrameView::layout
>m_layoutTimer.stop();
>m_delayedLayout = false;
>m_setNeedsLayoutWasDeferred = false;
>isPainting()
>m_layoutSchedulingEnabled = false;
>CSSStyleSelector::affectedByViewportChange()
>Frame::needsReapplyStyles()
>m_nestedLayoutCount++;
>applyOverflowToViewport
>pauseScheduledEvents()
>beginDeferredRepaints()
>root->layout();[RenderView::layout()]
>RenderBlock::layout()
>RenderBox::addLayoutOverflow
>setNeedsLayout(false);
>endDeferredRepaints();
>doDeferredRepaints
>completed()
>FrameView::maintainScrollPositionAtAnchor(0)
>checkLoadComplete()
>recursiveCheckLoadComplete
>checkLoadCompleteForThisFrame
>FrameView::restoreScrollbar()
>setScrollbarsSuppressed(false);
>gotoAnchor()
>DocumentLoader::setPrimaryLoadComplete(true)
>updateLoading
>setLoading
>WebFrameLoaderClient::dispatchDidLoadMainResource
>checkLoadComplete
>ResourceLoader::didFinishLoading()
>didFinishLoadingOnePart
>m_calledDidFinishLoad = true;
>FrameLoader::didFinishLoad
>ProgressTracker::completeProgress
>dispatchDidFinishLoading
>WebFrameLoaderClient::dispatchDidFinishLoading
>releaseResources
>m_frame = 0;
>m_documentLoader = 0;
>m_reachedTerminalState = true;
>m_identifier = 0;
>m_resourceData = 0;
>m_deferredRequest = ResourceRequest();
>ApplicationCacheHost::finishedLoadingMainResource()
>deref();
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>FrameView::layout
>m_layoutTimer.stop();
>m_delayedLayout = false;
>m_setNeedsLayoutWasDeferred = false;
>isPainting()
>m_layoutSchedulingEnabled = false;
>CSSStyleSelector::affectedByViewportChange()
>Frame::needsReapplyStyles()
>m_nestedLayoutCount++;
>applyOverflowToViewport
>pauseScheduledEvents()
>beginDeferredRepaints()
>root->layout();[RenderView::layout()]
>RenderBlock::layout()
>RenderBox::addLayoutOverflow
>setNeedsLayout(false);
>endDeferredRepaints();
>doDeferredRepaints
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>Document::implicitClose
>m_processingLoadEvent = true;
>m_wellFormed = m_tokenizer && m_tokenizer->wellFormed();
>delete m_tokenizer;
>m_tokenizer = 0;
>m_docLoader->clearPreloads();
>FrameLoader::startIconLoader()
>AnimationController::resumeAnimations
>ImageLoader::dispatchPendingLoadEvents();
>dispatchLoadEvent
>DOMWindow::dispatchLoadEvent
>dispatchPageTransitionEvent
>FrameLoader::handledOnloadEvents
>WebFrameLoaderClient::dispatchDidHandleOnloadEvents
>m_processingLoadEvent = false;
>FrameLoader::checkCallImplicitClose
>m_overMinimumLayoutThreshold = true;
>updateStyleIfNeeded
>FrameView::layout*
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>HTMLTokenizer::finish()
>end()
>HTMLParser::finished()
>Document::finishedParsing()
>setParsing(false);
>m_bParsing = b;
>FrameView::scheduleRelayout()
>needsLayout()
>layoutPending()
>m_layoutTimer.isActive();
>Document::shouldScheduleLayout()
>dispatchEvent
>Node::dispatchGenericEvent
>FrameLoader::finishedParsing()
>WebFrameLoaderClient::dispatchDidFinishDocumentLoad()
>checkCompleted()
>checkCallImplicitClose
>m_didCallImplicitClose = true;
>m_wasUnloadEventEmitted = false;
>Document::implicitClose*
>completed()
>FrameView::maintainScrollPositionAtAnchor(0)
>checkLoadComplete()
>recursiveCheckLoadComplete
>checkLoadCompleteForThisFrame
>FrameView::restoreScrollbar()
>setScrollbarsSuppressed(false);
>gotoAnchor()
(WebFrame::loadHTMLString之后MainResourceLoader::handleDataLoadNow的调用栈片段)
>FrameLoader::finishedLoading()
>DocumentLoader::finishedLoading()
>m_gotFirstByte = true;
>commitIfReady();
>FrameLoader::finishedLoadingDocument
>WebFrameLoaderClient::finishedLoading
>committedLoad
>receivedData
>FrameLoader::end
>m_isLoadingMainResource = false;
>endIfNotLoadingMainResource
>write(0, 0, true);
>Document::finishParsing()
>HTMLTokenizer::finish()*
>DocumentLoader::setPrimaryLoadComplete(true)
>updateLoading
>setLoading
>WebFrameLoaderClient::dispatchDidLoadMainResource
>checkLoadComplete