git://git.webkit.org
/
WebKit-https.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
WebCore:
[WebKit-https.git]
/
WebCore
/
page
/
FrameTree.cpp
diff --git
a/WebCore/page/FrameTree.cpp
b/WebCore/page/FrameTree.cpp
index 1fbea6372a71d1e305a710adb7d246dcda746408..76abdf1a1de79fed33b7da7a0b2e9b970c8b4ac6 100644
(file)
--- a/
WebCore/page/FrameTree.cpp
+++ b/
WebCore/page/FrameTree.cpp
@@
-49,6
+49,13
@@
void FrameTree::setName(const AtomicString& name)
m_name = parent()->tree()->uniqueChildName(name);
}
m_name = parent()->tree()->uniqueChildName(name);
}
+Frame* FrameTree::parent(bool checkForDisconnectedFrame) const
+{
+ if (checkForDisconnectedFrame && m_thisFrame->isDisconnected())
+ return 0;
+ return m_parent;
+}
+
void FrameTree::appendChild(PassRefPtr<Frame> child)
{
ASSERT(child->page() == m_thisFrame->page());
void FrameTree::appendChild(PassRefPtr<Frame> child)
{
ASSERT(child->page() == m_thisFrame->page());
@@
-289,14
+296,14
@@
Frame* FrameTree::deepLastChild() const
return result;
}
return result;
}
-Frame* FrameTree::top() const
+Frame* FrameTree::top(
bool checkForDisconnectedFrame
) const
{
{
- if (Page* page = m_thisFrame->page())
- return page->mainFrame();
-
Frame* frame = m_thisFrame;
Frame* frame = m_thisFrame;
- while (Frame* parent = frame->tree()->parent())
+ for (Frame* parent = m_thisFrame; parent; parent = parent->tree()->parent()) {
frame = parent;
frame = parent;
+ if (checkForDisconnectedFrame && frame->isDisconnected())
+ return frame;
+ }
return frame;
}
return frame;
}