diff options
author | Teng-Hui Zhu <ztenghui@google.com> | 2010-11-10 15:31:59 -0800 |
---|---|---|
committer | Teng-Hui Zhu <ztenghui@google.com> | 2010-11-17 13:35:59 -0800 |
commit | 28040489d744e0c5d475a88663056c9040ed5320 (patch) | |
tree | c463676791e4a63e452a95f0a12b2a8519730693 /WebCore/page/FrameTree.cpp | |
parent | eff9be92c41913c92fb1d3b7983c071f3e718678 (diff) | |
download | external_webkit-28040489d744e0c5d475a88663056c9040ed5320.zip external_webkit-28040489d744e0c5d475a88663056c9040ed5320.tar.gz external_webkit-28040489d744e0c5d475a88663056c9040ed5320.tar.bz2 |
Merge WebKit at r71558: Initial merge by git.
Change-Id: Ib345578fa29df7e4bc72b4f00e4a6fddcb754c4c
Diffstat (limited to 'WebCore/page/FrameTree.cpp')
-rw-r--r-- | WebCore/page/FrameTree.cpp | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/WebCore/page/FrameTree.cpp b/WebCore/page/FrameTree.cpp index 1f0604c..0e15379 100644 --- a/WebCore/page/FrameTree.cpp +++ b/WebCore/page/FrameTree.cpp @@ -1,4 +1,5 @@ /* + * Copyright (C) Research In Motion Limited 2010. All rights reserved. * Copyright (C) 2006 Apple Computer, Inc. * * This library is free software; you can redistribute it and/or @@ -40,17 +41,19 @@ FrameTree::~FrameTree() void FrameTree::setName(const AtomicString& name) { + m_name = name; if (!parent()) { - m_name = name; + m_uniqueName = name; return; } - m_name = AtomicString(); // Remove our old frame name so it's not considered in uniqueChildName. - m_name = parent()->tree()->uniqueChildName(name); + m_uniqueName = AtomicString(); // Remove our old frame name so it's not considered in uniqueChildName. + m_uniqueName = parent()->tree()->uniqueChildName(name); } void FrameTree::clearName() { m_name = AtomicString(); + m_uniqueName = AtomicString(); } Frame* FrameTree::parent(bool checkForDisconnectedFrame) const @@ -119,19 +122,19 @@ AtomicString FrameTree::uniqueChildName(const AtomicString& requestedName) const Vector<Frame*, 16> chain; Frame* frame; for (frame = m_thisFrame; frame; frame = frame->tree()->parent()) { - if (frame->tree()->name().startsWith(framePathPrefix)) + if (frame->tree()->uniqueName().startsWith(framePathPrefix)) break; chain.append(frame); } String name; name += framePathPrefix; if (frame) - name += frame->tree()->name().string().substring(framePathPrefixLength, - frame->tree()->name().length() - framePathPrefixLength - framePathSuffixLength); + name += frame->tree()->uniqueName().string().substring(framePathPrefixLength, + frame->tree()->uniqueName().length() - framePathPrefixLength - framePathSuffixLength); for (int i = chain.size() - 1; i >= 0; --i) { frame = chain[i]; name += "/"; - name += frame->tree()->name(); + name += frame->tree()->uniqueName(); } // Suffix buffer has more than enough space for: @@ -159,7 +162,7 @@ Frame* FrameTree::child(unsigned index) const Frame* FrameTree::child(const AtomicString& name) const { for (Frame* child = firstChild(); child; child = child->tree()->nextSibling()) - if (child->tree()->name() == name) + if (child->tree()->uniqueName() == name) return child; return 0; } @@ -181,7 +184,7 @@ Frame* FrameTree::find(const AtomicString& name) const // Search subtree starting with this frame first. for (Frame* frame = m_thisFrame; frame; frame = frame->tree()->traverseNext(m_thisFrame)) - if (frame->tree()->name() == name) + if (frame->tree()->uniqueName() == name) return frame; // Search the entire tree for this page next. @@ -192,7 +195,7 @@ Frame* FrameTree::find(const AtomicString& name) const return 0; for (Frame* frame = page->mainFrame(); frame; frame = frame->tree()->traverseNext()) - if (frame->tree()->name() == name) + if (frame->tree()->uniqueName() == name) return frame; // Search the entire tree of each of the other pages in this namespace. @@ -203,7 +206,7 @@ Frame* FrameTree::find(const AtomicString& name) const Page* otherPage = *it; if (otherPage != page) { for (Frame* frame = otherPage->mainFrame(); frame; frame = frame->tree()->traverseNext()) { - if (frame->tree()->name() == name) + if (frame->tree()->uniqueName() == name) return frame; } } |