| OLD | NEW |
| 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.h" | 5 #include "content/browser/frame_host/frame_tree.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <queue> | 9 #include <queue> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 bool FrameTree::NodeIterator::operator==(const NodeIterator& rhs) const { | 65 bool FrameTree::NodeIterator::operator==(const NodeIterator& rhs) const { |
| 66 return current_node_ == rhs.current_node_; | 66 return current_node_ == rhs.current_node_; |
| 67 } | 67 } |
| 68 | 68 |
| 69 FrameTree::NodeIterator::NodeIterator(FrameTreeNode* starting_node, | 69 FrameTree::NodeIterator::NodeIterator(FrameTreeNode* starting_node, |
| 70 FrameTreeNode* node_to_skip) | 70 FrameTreeNode* node_to_skip) |
| 71 : current_node_(starting_node != node_to_skip ? starting_node : nullptr), | 71 : current_node_(starting_node != node_to_skip ? starting_node : nullptr), |
| 72 node_to_skip_(node_to_skip) {} | 72 node_to_skip_(node_to_skip) {} |
| 73 | 73 |
| 74 FrameTree::NodeIterator FrameTree::NodeRange::begin() { | 74 FrameTree::NodeIterator FrameTree::NodeRange::begin() { |
| 75 return NodeIterator(tree_->root(), node_to_skip_); | 75 return NodeIterator(root_, node_to_skip_); |
| 76 } | 76 } |
| 77 | 77 |
| 78 FrameTree::NodeIterator FrameTree::NodeRange::end() { | 78 FrameTree::NodeIterator FrameTree::NodeRange::end() { |
| 79 return NodeIterator(nullptr, nullptr); | 79 return NodeIterator(nullptr, nullptr); |
| 80 } | 80 } |
| 81 | 81 |
| 82 FrameTree::NodeRange::NodeRange(FrameTree* tree, FrameTreeNode* node_to_skip) | 82 FrameTree::NodeRange::NodeRange(FrameTreeNode* root, |
| 83 : tree_(tree), node_to_skip_(node_to_skip) {} | 83 FrameTreeNode* node_to_skip) |
| 84 : root_(root), node_to_skip_(node_to_skip) {} |
| 84 | 85 |
| 85 FrameTree::ConstNodeIterator::~ConstNodeIterator() {} | 86 FrameTree::ConstNodeIterator::~ConstNodeIterator() {} |
| 86 | 87 |
| 87 FrameTree::ConstNodeIterator& FrameTree::ConstNodeIterator::operator++() { | 88 FrameTree::ConstNodeIterator& FrameTree::ConstNodeIterator::operator++() { |
| 88 for (size_t i = 0; i < current_node_->child_count(); ++i) { | 89 for (size_t i = 0; i < current_node_->child_count(); ++i) { |
| 89 const FrameTreeNode* child = current_node_->child_at(i); | 90 const FrameTreeNode* child = current_node_->child_at(i); |
| 90 queue_.push(child); | 91 queue_.push(child); |
| 91 } | 92 } |
| 92 | 93 |
| 93 if (!queue_.empty()) { | 94 if (!queue_.empty()) { |
| 94 current_node_ = queue_.front(); | 95 current_node_ = queue_.front(); |
| 95 queue_.pop(); | 96 queue_.pop(); |
| 96 } else { | 97 } else { |
| 97 current_node_ = nullptr; | 98 current_node_ = nullptr; |
| 98 } | 99 } |
| 99 | 100 |
| 100 return *this; | 101 return *this; |
| 101 } | 102 } |
| 102 | 103 |
| 103 bool FrameTree::ConstNodeIterator::operator==( | 104 bool FrameTree::ConstNodeIterator::operator==( |
| 104 const ConstNodeIterator& rhs) const { | 105 const ConstNodeIterator& rhs) const { |
| 105 return current_node_ == rhs.current_node_; | 106 return current_node_ == rhs.current_node_; |
| 106 } | 107 } |
| 107 | 108 |
| 108 FrameTree::ConstNodeIterator::ConstNodeIterator( | 109 FrameTree::ConstNodeIterator::ConstNodeIterator( |
| 109 const FrameTreeNode* starting_node) | 110 const FrameTreeNode* starting_node) |
| 110 : current_node_(starting_node) {} | 111 : current_node_(starting_node) {} |
| 111 | 112 |
| 112 FrameTree::ConstNodeIterator FrameTree::ConstNodeRange::begin() { | 113 FrameTree::ConstNodeIterator FrameTree::ConstNodeRange::begin() { |
| 113 return ConstNodeIterator(tree_->root()); | 114 return ConstNodeIterator(root_); |
| 114 } | 115 } |
| 115 | 116 |
| 116 FrameTree::ConstNodeIterator FrameTree::ConstNodeRange::end() { | 117 FrameTree::ConstNodeIterator FrameTree::ConstNodeRange::end() { |
| 117 return ConstNodeIterator(nullptr); | 118 return ConstNodeIterator(nullptr); |
| 118 } | 119 } |
| 119 | 120 |
| 120 FrameTree::ConstNodeRange::ConstNodeRange(const FrameTree* tree) | 121 FrameTree::ConstNodeRange::ConstNodeRange(const FrameTreeNode* root) |
| 121 : tree_(tree) {} | 122 : root_(root) {} |
| 122 | 123 |
| 123 FrameTree::FrameTree(Navigator* navigator, | 124 FrameTree::FrameTree(Navigator* navigator, |
| 124 RenderFrameHostDelegate* render_frame_delegate, | 125 RenderFrameHostDelegate* render_frame_delegate, |
| 125 RenderViewHostDelegate* render_view_delegate, | 126 RenderViewHostDelegate* render_view_delegate, |
| 126 RenderWidgetHostDelegate* render_widget_delegate, | 127 RenderWidgetHostDelegate* render_widget_delegate, |
| 127 RenderFrameHostManager::Delegate* manager_delegate) | 128 RenderFrameHostManager::Delegate* manager_delegate) |
| 128 : render_frame_delegate_(render_frame_delegate), | 129 : render_frame_delegate_(render_frame_delegate), |
| 129 render_view_delegate_(render_view_delegate), | 130 render_view_delegate_(render_view_delegate), |
| 130 render_widget_delegate_(render_widget_delegate), | 131 render_widget_delegate_(render_widget_delegate), |
| 131 manager_delegate_(manager_delegate), | 132 manager_delegate_(manager_delegate), |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 return node; | 187 return node; |
| 187 } | 188 } |
| 188 | 189 |
| 189 return nullptr; | 190 return nullptr; |
| 190 } | 191 } |
| 191 | 192 |
| 192 FrameTree::NodeRange FrameTree::Nodes() { | 193 FrameTree::NodeRange FrameTree::Nodes() { |
| 193 return NodesExcept(nullptr); | 194 return NodesExcept(nullptr); |
| 194 } | 195 } |
| 195 | 196 |
| 197 FrameTree::NodeRange FrameTree::SubtreeNodes(FrameTreeNode* subtree_root) { |
| 198 return NodeRange(subtree_root, nullptr); |
| 199 } |
| 200 |
| 196 FrameTree::NodeRange FrameTree::NodesExcept(FrameTreeNode* node_to_skip) { | 201 FrameTree::NodeRange FrameTree::NodesExcept(FrameTreeNode* node_to_skip) { |
| 197 return NodeRange(this, node_to_skip); | 202 return NodeRange(root_, node_to_skip); |
| 198 } | 203 } |
| 199 | 204 |
| 200 FrameTree::ConstNodeRange FrameTree::ConstNodes() const { | 205 FrameTree::ConstNodeRange FrameTree::ConstNodes() const { |
| 201 return ConstNodeRange(this); | 206 return ConstNodeRange(root_); |
| 202 } | 207 } |
| 203 | 208 |
| 204 bool FrameTree::AddFrame( | 209 bool FrameTree::AddFrame( |
| 205 FrameTreeNode* parent, | 210 FrameTreeNode* parent, |
| 206 int process_id, | 211 int process_id, |
| 207 int new_routing_id, | 212 int new_routing_id, |
| 208 blink::WebTreeScopeType scope, | 213 blink::WebTreeScopeType scope, |
| 209 const std::string& frame_name, | 214 const std::string& frame_name, |
| 210 const std::string& frame_unique_name, | 215 const std::string& frame_unique_name, |
| 211 blink::WebSandboxFlags sandbox_flags, | 216 blink::WebSandboxFlags sandbox_flags, |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 // This is only used to set page-level focus in cross-process subframes, and | 501 // This is only used to set page-level focus in cross-process subframes, and |
| 497 // requests to set focus in main frame's SiteInstance are ignored. | 502 // requests to set focus in main frame's SiteInstance are ignored. |
| 498 if (instance != root_manager->current_frame_host()->GetSiteInstance()) { | 503 if (instance != root_manager->current_frame_host()->GetSiteInstance()) { |
| 499 RenderFrameProxyHost* proxy = | 504 RenderFrameProxyHost* proxy = |
| 500 root_manager->GetRenderFrameProxyHost(instance); | 505 root_manager->GetRenderFrameProxyHost(instance); |
| 501 proxy->Send(new InputMsg_SetFocus(proxy->GetRoutingID(), is_focused)); | 506 proxy->Send(new InputMsg_SetFocus(proxy->GetRoutingID(), is_focused)); |
| 502 } | 507 } |
| 503 } | 508 } |
| 504 | 509 |
| 505 } // namespace content | 510 } // namespace content |
| OLD | NEW |