OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 2 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
3 * Copyright (C) 2006 Apple Computer, Inc. | 3 * Copyright (C) 2006 Apple Computer, Inc. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 name_ = name; | 68 name_ = name; |
69 } | 69 } |
70 | 70 |
71 DISABLE_CFI_PERF | 71 DISABLE_CFI_PERF |
72 Frame* FrameTree::Parent() const { | 72 Frame* FrameTree::Parent() const { |
73 if (!this_frame_->Client()) | 73 if (!this_frame_->Client()) |
74 return nullptr; | 74 return nullptr; |
75 return this_frame_->Client()->Parent(); | 75 return this_frame_->Client()->Parent(); |
76 } | 76 } |
77 | 77 |
78 Frame* FrameTree::Top() const { | 78 Frame& FrameTree::Top() const { |
79 // FIXME: top() should never return null, so here are some hacks to deal | 79 // FIXME: top() should never return null, so here are some hacks to deal |
80 // with EmptyLocalFrameClient and cases where the frame is detached | 80 // with EmptyLocalFrameClient and cases where the frame is detached |
81 // already... | 81 // already... |
82 if (!this_frame_->Client()) | 82 if (!this_frame_->Client()) |
83 return this_frame_; | 83 return *this_frame_; |
84 Frame* candidate = this_frame_->Client()->Top(); | 84 Frame* candidate = this_frame_->Client()->Top(); |
85 return candidate ? candidate : this_frame_.Get(); | 85 return candidate ? *candidate : *this_frame_; |
86 } | 86 } |
87 | 87 |
88 Frame* FrameTree::NextSibling() const { | 88 Frame* FrameTree::NextSibling() const { |
89 if (!this_frame_->Client()) | 89 if (!this_frame_->Client()) |
90 return nullptr; | 90 return nullptr; |
91 return this_frame_->Client()->NextSibling(); | 91 return this_frame_->Client()->NextSibling(); |
92 } | 92 } |
93 | 93 |
94 Frame* FrameTree::FirstChild() const { | 94 Frame* FrameTree::FirstChild() const { |
95 if (!this_frame_->Client()) | 95 if (!this_frame_->Client()) |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 ++count; | 147 ++count; |
148 return count; | 148 return count; |
149 } | 149 } |
150 | 150 |
151 Frame* FrameTree::Find(const AtomicString& name) const { | 151 Frame* FrameTree::Find(const AtomicString& name) const { |
152 if (EqualIgnoringASCIICase(name, "_self") || | 152 if (EqualIgnoringASCIICase(name, "_self") || |
153 EqualIgnoringASCIICase(name, "_current") || name.IsEmpty()) | 153 EqualIgnoringASCIICase(name, "_current") || name.IsEmpty()) |
154 return this_frame_; | 154 return this_frame_; |
155 | 155 |
156 if (EqualIgnoringASCIICase(name, "_top")) | 156 if (EqualIgnoringASCIICase(name, "_top")) |
157 return Top(); | 157 return &Top(); |
158 | 158 |
159 if (EqualIgnoringASCIICase(name, "_parent")) | 159 if (EqualIgnoringASCIICase(name, "_parent")) |
160 return Parent() ? Parent() : this_frame_.Get(); | 160 return Parent() ? Parent() : this_frame_.Get(); |
161 | 161 |
162 // Since "_blank" should never be any frame's name, the following just amounts | 162 // Since "_blank" should never be any frame's name, the following just amounts |
163 // to an optimization. | 163 // to an optimization. |
164 if (EqualIgnoringASCIICase(name, "_blank")) | 164 if (EqualIgnoringASCIICase(name, "_blank")) |
165 return nullptr; | 165 return nullptr; |
166 | 166 |
167 // Search subtree starting with this frame first. | 167 // Search subtree starting with this frame first. |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 void showFrameTree(const blink::Frame* frame) { | 296 void showFrameTree(const blink::Frame* frame) { |
297 if (!frame) { | 297 if (!frame) { |
298 printf("Null input frame\n"); | 298 printf("Null input frame\n"); |
299 return; | 299 return; |
300 } | 300 } |
301 | 301 |
302 printFrames(frame->Tree().Top(), frame, 0); | 302 printFrames(frame->Tree().Top(), frame, 0); |
303 } | 303 } |
304 | 304 |
305 #endif | 305 #endif |
OLD | NEW |