/*
+ * 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
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
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:
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;
}
// 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.
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.
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;
}
}