Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Side by Side Diff: content/browser/frame_host/frame_tree_node.cc

Issue 1500973002: This patch adds NextSibling() to FrameTreeNode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/frame_tree_node.h" 5 #include "content/browser/frame_host/frame_tree_node.h"
6 6
7 #include <queue> 7 #include <queue>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/profiler/scoped_tracker.h" 10 #include "base/profiler/scoped_tracker.h"
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 210
211 for (FrameTreeNode* node = parent(); node; node = node->parent()) { 211 for (FrameTreeNode* node = parent(); node; node = node->parent()) {
212 if (node == other) 212 if (node == other)
213 return true; 213 return true;
214 } 214 }
215 215
216 return false; 216 return false;
217 } 217 }
218 218
219 FrameTreeNode* FrameTreeNode::PreviousSibling() const { 219 FrameTreeNode* FrameTreeNode::PreviousSibling() const {
220 if (!parent_) 220 return GetSibling(-1);
221 return nullptr; 221 }
222 222
223 for (size_t i = 0; i < parent_->child_count(); ++i) { 223 FrameTreeNode* FrameTreeNode::NextSibling() const {
224 if (parent_->child_at(i) == this) 224 return GetSibling(1);
225 return (i == 0) ? nullptr : parent_->child_at(i - 1);
226 }
227
228 NOTREACHED() << "FrameTreeNode not found in its parent's children.";
229 return nullptr;
230 } 225 }
231 226
232 bool FrameTreeNode::IsLoading() const { 227 bool FrameTreeNode::IsLoading() const {
233 RenderFrameHostImpl* current_frame_host = 228 RenderFrameHostImpl* current_frame_host =
234 render_manager_.current_frame_host(); 229 render_manager_.current_frame_host();
235 RenderFrameHostImpl* pending_frame_host = 230 RenderFrameHostImpl* pending_frame_host =
236 render_manager_.pending_frame_host(); 231 render_manager_.pending_frame_host();
237 232
238 DCHECK(current_frame_host); 233 DCHECK(current_frame_host);
239 234
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 374
380 render_manager_.Stop(); 375 render_manager_.Stop();
381 return true; 376 return true;
382 } 377 }
383 378
384 void FrameTreeNode::DidFocus() { 379 void FrameTreeNode::DidFocus() {
385 last_focus_time_ = base::TimeTicks::Now(); 380 last_focus_time_ = base::TimeTicks::Now();
386 FOR_EACH_OBSERVER(Observer, observers_, OnFrameTreeNodeFocused(this)); 381 FOR_EACH_OBSERVER(Observer, observers_, OnFrameTreeNodeFocused(this));
387 } 382 }
388 383
384 FrameTreeNode* FrameTreeNode::GetSibling(int relative_offset) const {
385 if (!parent_)
386 return nullptr;
387
388 for (size_t i = 0; i < parent_->child_count(); ++i) {
389 if (parent_->child_at(i) == this) {
390 size_t offset = i + relative_offset;
391 return offset >= parent_->child_count() ? nullptr
Charlie Reis 2015/12/09 22:29:15 Don't we need to check for less than 0 as well? S
paulmeyer 2015/12/09 22:38:43 I wasn't checking for less than zero specifically
Charlie Reis 2015/12/09 23:49:48 That would preclude any analyses which check for r
paulmeyer 2016/05/13 13:44:15 Okay, done.
392 : parent_->child_at(offset);
393 }
394 }
395
396 NOTREACHED() << "FrameTreeNode not found in its parent's children.";
397 return nullptr;
398 }
399
389 } // namespace content 400 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/frame_tree_node.h ('k') | content/browser/frame_host/frame_tree_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698