| Index: Source/core/loader/FrameLoader.cpp
|
| diff --git a/Source/core/loader/FrameLoader.cpp b/Source/core/loader/FrameLoader.cpp
|
| index ae5d5109e55cd3c42762db3cbed42ddee4bd3d7c..88c3de4ab22373c5bb71ad44675bb685ffe46022 100644
|
| --- a/Source/core/loader/FrameLoader.cpp
|
| +++ b/Source/core/loader/FrameLoader.cpp
|
| @@ -390,7 +390,7 @@ void FrameLoader::loadDone()
|
|
|
| bool FrameLoader::allChildrenAreComplete() const
|
| {
|
| - for (Frame* child = m_frame->tree()->firstChild(); child; child = child->tree()->nextSibling()) {
|
| + for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree().nextSibling()) {
|
| if (!child->loader()->m_isComplete)
|
| return false;
|
| }
|
| @@ -399,7 +399,7 @@ bool FrameLoader::allChildrenAreComplete() const
|
|
|
| bool FrameLoader::allAncestorsAreComplete() const
|
| {
|
| - for (Frame* ancestor = m_frame; ancestor; ancestor = ancestor->tree()->parent()) {
|
| + for (Frame* ancestor = m_frame; ancestor; ancestor = ancestor->tree().parent()) {
|
| if (!ancestor->document()->loadEventFinished())
|
| return false;
|
| }
|
| @@ -483,7 +483,7 @@ String FrameLoader::outgoingReferrer() const
|
| // for why we walk the parent chain for srcdoc documents.
|
| Frame* frame = m_frame;
|
| while (frame->document()->isSrcdocDocument()) {
|
| - frame = frame->tree()->parent();
|
| + frame = frame->tree().parent();
|
| // Srcdoc documents cannot be top-level documents, by definition,
|
| // because they need to be contained in iframes with the srcdoc.
|
| ASSERT(frame);
|
| @@ -604,10 +604,10 @@ void FrameLoader::completed()
|
| {
|
| RefPtr<Frame> protect(m_frame);
|
|
|
| - for (Frame* descendant = m_frame->tree()->traverseNext(m_frame); descendant; descendant = descendant->tree()->traverseNext(m_frame))
|
| + for (Frame* descendant = m_frame->tree().traverseNext(m_frame); descendant; descendant = descendant->tree().traverseNext(m_frame))
|
| descendant->navigationScheduler()->startTimer();
|
|
|
| - if (Frame* parent = m_frame->tree()->parent())
|
| + if (Frame* parent = m_frame->tree().parent())
|
| parent->loader()->checkCompleted();
|
|
|
| if (m_frame->view())
|
| @@ -616,7 +616,7 @@ void FrameLoader::completed()
|
|
|
| void FrameLoader::started()
|
| {
|
| - for (Frame* frame = m_frame; frame; frame = frame->tree()->parent())
|
| + for (Frame* frame = m_frame; frame; frame = frame->tree().parent())
|
| frame->loader()->m_isComplete = false;
|
| }
|
|
|
| @@ -656,16 +656,16 @@ bool FrameLoader::isScriptTriggeredFormSubmissionInChildFrame(const FrameLoadReq
|
| // If this is a child frame and the form submission was triggered by a script, lock the back/forward list
|
| // to match IE and Opera.
|
| // See https://bugs.webkit.org/show_bug.cgi?id=32383 for the original motivation for this.
|
| - if (!m_frame->tree()->parent() || UserGestureIndicator::processingUserGesture())
|
| + if (!m_frame->tree().parent() || UserGestureIndicator::processingUserGesture())
|
| return false;
|
| return request.formState() && request.formState()->formSubmissionTrigger() == SubmittedByJavaScript;
|
| }
|
|
|
| FrameLoadType FrameLoader::determineFrameLoadType(const FrameLoadRequest& request)
|
| {
|
| - if (m_frame->tree()->parent() && !m_stateMachine.startedFirstRealLoad())
|
| + if (m_frame->tree().parent() && !m_stateMachine.startedFirstRealLoad())
|
| return FrameLoadTypeInitialInChildFrame;
|
| - if (!m_frame->tree()->parent() && !history()->currentItem())
|
| + if (!m_frame->tree().parent() && !history()->currentItem())
|
| return FrameLoadTypeStandard;
|
| if (request.resourceRequest().cachePolicy() == ReloadIgnoringCacheData)
|
| return FrameLoadTypeReload;
|
| @@ -818,7 +818,7 @@ void FrameLoader::stopAllLoaders()
|
|
|
| m_inStopAllLoaders = true;
|
|
|
| - for (RefPtr<Frame> child = m_frame->tree()->firstChild(); child; child = child->tree()->nextSibling())
|
| + for (RefPtr<Frame> child = m_frame->tree().firstChild(); child; child = child->tree().nextSibling())
|
| child->loader()->stopAllLoaders();
|
| if (m_provisionalDocumentLoader)
|
| m_provisionalDocumentLoader->stopLoading();
|
| @@ -929,7 +929,7 @@ void FrameLoader::closeOldDataSources()
|
| // FIXME: Is it important for this traversal to be postorder instead of preorder?
|
| // If so, add helpers for postorder traversal, and use them. If not, then lets not
|
| // use a recursive algorithm here.
|
| - for (Frame* child = m_frame->tree()->firstChild(); child; child = child->tree()->nextSibling())
|
| + for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree().nextSibling())
|
| child->loader()->closeOldDataSources();
|
|
|
| if (m_documentLoader)
|
| @@ -945,7 +945,7 @@ bool FrameLoader::isLoadingMainFrame() const
|
| bool FrameLoader::subframeIsLoading() const
|
| {
|
| // It's most likely that the last added frame is the last to load so we walk backwards.
|
| - for (Frame* child = m_frame->tree()->lastChild(); child; child = child->tree()->previousSibling()) {
|
| + for (Frame* child = m_frame->tree().lastChild(); child; child = child->tree().previousSibling()) {
|
| FrameLoader* childLoader = child->loader();
|
| DocumentLoader* documentLoader = childLoader->documentLoader();
|
| if (documentLoader && documentLoader->isLoadingInAPISense())
|
| @@ -973,7 +973,7 @@ CachePolicy FrameLoader::subresourceCachePolicy() const
|
| if (m_loadType == FrameLoadTypeReloadFromOrigin)
|
| return CachePolicyReload;
|
|
|
| - if (Frame* parentFrame = m_frame->tree()->parent()) {
|
| + if (Frame* parentFrame = m_frame->tree().parent()) {
|
| CachePolicy parentCachePolicy = parentFrame->loader()->subresourceCachePolicy();
|
| if (parentCachePolicy != CachePolicyVerify)
|
| return parentCachePolicy;
|
| @@ -1049,8 +1049,8 @@ void FrameLoader::detachChildren()
|
| {
|
| typedef Vector<RefPtr<Frame> > FrameVector;
|
| FrameVector childrenToDetach;
|
| - childrenToDetach.reserveCapacity(m_frame->tree()->childCount());
|
| - for (Frame* child = m_frame->tree()->lastChild(); child; child = child->tree()->previousSibling())
|
| + childrenToDetach.reserveCapacity(m_frame->tree().childCount());
|
| + for (Frame* child = m_frame->tree().lastChild(); child; child = child->tree().previousSibling())
|
| childrenToDetach.append(child);
|
| FrameVector::iterator end = childrenToDetach.end();
|
| for (FrameVector::iterator it = childrenToDetach.begin(); it != end; it++)
|
| @@ -1059,7 +1059,7 @@ void FrameLoader::detachChildren()
|
|
|
| void FrameLoader::closeAndRemoveChild(Frame* child)
|
| {
|
| - child->tree()->detachFromParent();
|
| + child->tree().detachFromParent();
|
|
|
| child->setView(0);
|
| if (child->ownerElement() && child->page())
|
| @@ -1067,7 +1067,7 @@ void FrameLoader::closeAndRemoveChild(Frame* child)
|
| child->willDetachPage();
|
| child->detachFromPage();
|
|
|
| - m_frame->tree()->removeChild(child);
|
| + m_frame->tree().removeChild(child);
|
| }
|
|
|
| // Called every time a resource is completely loaded or an error is received.
|
| @@ -1079,7 +1079,7 @@ void FrameLoader::checkLoadComplete()
|
| // is currently needed in order to null out the previous history item for all frames.
|
| if (Page* page = m_frame->page()) {
|
| Vector<RefPtr<Frame>, 10> frames;
|
| - for (RefPtr<Frame> frame = page->mainFrame(); frame; frame = frame->tree()->traverseNext())
|
| + for (RefPtr<Frame> frame = page->mainFrame(); frame; frame = frame->tree().traverseNext())
|
| frames.append(frame);
|
| // To process children before their parents, iterate the vector backwards.
|
| for (size_t i = frames.size(); i; --i)
|
| @@ -1100,7 +1100,7 @@ int FrameLoader::numPendingOrLoadingRequests(bool recurse) const
|
| return m_frame->document()->fetcher()->requestCount();
|
|
|
| int count = 0;
|
| - for (Frame* frame = m_frame; frame; frame = frame->tree()->traverseNext(m_frame))
|
| + for (Frame* frame = m_frame; frame; frame = frame->tree().traverseNext(m_frame))
|
| count += frame->document()->fetcher()->requestCount();
|
| return count;
|
| }
|
| @@ -1141,7 +1141,7 @@ void FrameLoader::detachFromParent()
|
|
|
| m_progressTracker.clear();
|
|
|
| - if (Frame* parent = m_frame->tree()->parent()) {
|
| + if (Frame* parent = m_frame->tree().parent()) {
|
| parent->loader()->closeAndRemoveChild(m_frame);
|
| parent->loader()->scheduleCheckCompleted();
|
| } else {
|
| @@ -1296,7 +1296,7 @@ bool FrameLoader::shouldClose()
|
| // Store all references to each subframe in advance since beforeunload's event handler may modify frame
|
| Vector<RefPtr<Frame> > targetFrames;
|
| targetFrames.append(m_frame);
|
| - for (Frame* child = m_frame->tree()->firstChild(); child; child = child->tree()->traverseNext(m_frame))
|
| + for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree().traverseNext(m_frame))
|
| targetFrames.append(child);
|
|
|
| bool shouldClose = false;
|
| @@ -1305,7 +1305,7 @@ bool FrameLoader::shouldClose()
|
| size_t i;
|
|
|
| for (i = 0; i < targetFrames.size(); i++) {
|
| - if (!targetFrames[i]->tree()->isDescendantOf(m_frame))
|
| + if (!targetFrames[i]->tree().isDescendantOf(m_frame))
|
| continue;
|
| if (!targetFrames[i]->document()->dispatchBeforeUnloadEvent(page->chrome(), m_frame->document()))
|
| break;
|
| @@ -1348,7 +1348,7 @@ void FrameLoader::loadWithNavigationAction(const ResourceRequest& request, const
|
| m_policyDocumentLoader->setReplacesCurrentHistoryItem(replacesCurrentHistoryItem);
|
| m_policyDocumentLoader->setIsClientRedirect(m_startingClientRedirect);
|
|
|
| - if (Frame* parent = m_frame->tree()->parent())
|
| + if (Frame* parent = m_frame->tree().parent())
|
| m_policyDocumentLoader->setOverrideEncoding(parent->loader()->documentLoader()->overrideEncoding());
|
| else if (!overrideEncoding.isEmpty())
|
| m_policyDocumentLoader->setOverrideEncoding(overrideEncoding);
|
| @@ -1425,7 +1425,7 @@ void FrameLoader::checkNewWindowPolicyAndContinue(PassRefPtr<FormState> formStat
|
| }
|
|
|
| if (frameName != "_blank")
|
| - mainFrame->tree()->setName(frameName);
|
| + mainFrame->tree().setName(frameName);
|
|
|
| mainFrame->page()->setOpenedByDOM();
|
| mainFrame->page()->chrome().show(navigationPolicy);
|
| @@ -1450,7 +1450,7 @@ bool FrameLoader::shouldInterruptLoadForXFrameOptions(const String& content, con
|
| {
|
| UseCounter::count(m_frame->domWindow(), UseCounter::XFrameOptions);
|
|
|
| - Frame* topFrame = m_frame->tree()->top();
|
| + Frame* topFrame = m_frame->tree().top();
|
| if (m_frame == topFrame)
|
| return false;
|
|
|
| @@ -1462,7 +1462,7 @@ bool FrameLoader::shouldInterruptLoadForXFrameOptions(const String& content, con
|
| RefPtr<SecurityOrigin> origin = SecurityOrigin::create(url);
|
| if (!origin->isSameSchemeHostPort(topFrame->document()->securityOrigin()))
|
| return true;
|
| - for (Frame* frame = m_frame->tree()->parent(); frame; frame = frame->tree()->parent()) {
|
| + for (Frame* frame = m_frame->tree().parent(); frame; frame = frame->tree().parent()) {
|
| if (!origin->isSameSchemeHostPort(frame->document()->securityOrigin())) {
|
| UseCounter::count(m_frame->domWindow(), UseCounter::XFrameOptionsSameOriginWithBadAncestorChain);
|
| return true;
|
| @@ -1508,7 +1508,7 @@ bool FrameLoader::shouldTreatURLAsSrcdocDocument(const KURL& url) const
|
| Frame* FrameLoader::findFrameForNavigation(const AtomicString& name, Document* activeDocument)
|
| {
|
| ASSERT(activeDocument);
|
| - Frame* frame = m_frame->tree()->find(name);
|
| + Frame* frame = m_frame->tree().find(name);
|
|
|
| // From http://www.whatwg.org/specs/web-apps/current-work/#seamlessLinks:
|
| //
|
| @@ -1520,7 +1520,7 @@ Frame* FrameLoader::findFrameForNavigation(const AtomicString& name, Document* a
|
| // browsing context flag set, and continue these steps as if that
|
| // browsing context was the one that was going to be navigated instead.
|
| if (frame == m_frame && name != "_self" && m_frame->document()->shouldDisplaySeamlesslyWithParent()) {
|
| - for (Frame* ancestor = m_frame; ancestor; ancestor = ancestor->tree()->parent()) {
|
| + for (Frame* ancestor = m_frame; ancestor; ancestor = ancestor->tree().parent()) {
|
| if (!ancestor->document()->shouldDisplaySeamlesslyWithParent()) {
|
| frame = ancestor;
|
| break;
|
| @@ -1599,7 +1599,7 @@ void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld* world)
|
| SandboxFlags FrameLoader::effectiveSandboxFlags() const
|
| {
|
| SandboxFlags flags = m_forcedSandboxFlags;
|
| - if (Frame* parentFrame = m_frame->tree()->parent())
|
| + if (Frame* parentFrame = m_frame->tree().parent())
|
| flags |= parentFrame->document()->sandboxFlags();
|
| if (HTMLFrameOwnerElement* ownerElement = m_frame->ownerElement())
|
| flags |= ownerElement->sandboxFlags();
|
|
|