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

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

Issue 1545973002: Remove the is_loading_ field from WebContentsImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compilation error on windows Created 4 years, 10 months 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.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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 return NodeIterator(tree_->root(), node_to_skip_); 72 return NodeIterator(tree_->root(), node_to_skip_);
73 } 73 }
74 74
75 FrameTree::NodeIterator FrameTree::NodeRange::end() { 75 FrameTree::NodeIterator FrameTree::NodeRange::end() {
76 return NodeIterator(nullptr, nullptr); 76 return NodeIterator(nullptr, nullptr);
77 } 77 }
78 78
79 FrameTree::NodeRange::NodeRange(FrameTree* tree, FrameTreeNode* node_to_skip) 79 FrameTree::NodeRange::NodeRange(FrameTree* tree, FrameTreeNode* node_to_skip)
80 : tree_(tree), node_to_skip_(node_to_skip) {} 80 : tree_(tree), node_to_skip_(node_to_skip) {}
81 81
82 FrameTree::ConstNodeIterator::~ConstNodeIterator() {}
83
84 FrameTree::ConstNodeIterator& FrameTree::ConstNodeIterator::operator++() {
85 for (size_t i = 0; i < current_node_->child_count(); ++i) {
86 const FrameTreeNode* child = current_node_->child_at(i);
87 queue_.push(child);
88 }
89
90 if (!queue_.empty()) {
91 current_node_ = queue_.front();
92 queue_.pop();
93 } else {
94 current_node_ = nullptr;
95 }
96
97 return *this;
98 }
99
100 bool FrameTree::ConstNodeIterator::operator==(
101 const ConstNodeIterator& rhs) const {
102 return current_node_ == rhs.current_node_;
103 }
104
105 FrameTree::ConstNodeIterator::ConstNodeIterator(
106 const FrameTreeNode* starting_node)
107 : current_node_(starting_node) {}
108
109 FrameTree::ConstNodeIterator FrameTree::ConstNodeRange::begin() {
110 return ConstNodeIterator(tree_->root());
111 }
112
113 FrameTree::ConstNodeIterator FrameTree::ConstNodeRange::end() {
114 return ConstNodeIterator(nullptr);
115 }
116
117 FrameTree::ConstNodeRange::ConstNodeRange(const FrameTree* tree)
118 : tree_(tree) {}
119
82 FrameTree::FrameTree(Navigator* navigator, 120 FrameTree::FrameTree(Navigator* navigator,
83 RenderFrameHostDelegate* render_frame_delegate, 121 RenderFrameHostDelegate* render_frame_delegate,
84 RenderViewHostDelegate* render_view_delegate, 122 RenderViewHostDelegate* render_view_delegate,
85 RenderWidgetHostDelegate* render_widget_delegate, 123 RenderWidgetHostDelegate* render_widget_delegate,
86 RenderFrameHostManager::Delegate* manager_delegate) 124 RenderFrameHostManager::Delegate* manager_delegate)
87 : render_frame_delegate_(render_frame_delegate), 125 : render_frame_delegate_(render_frame_delegate),
88 render_view_delegate_(render_view_delegate), 126 render_view_delegate_(render_view_delegate),
89 render_widget_delegate_(render_widget_delegate), 127 render_widget_delegate_(render_widget_delegate),
90 manager_delegate_(manager_delegate), 128 manager_delegate_(manager_delegate),
91 root_(new FrameTreeNode(this, 129 root_(new FrameTreeNode(this,
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 } 186 }
149 187
150 FrameTree::NodeRange FrameTree::Nodes() { 188 FrameTree::NodeRange FrameTree::Nodes() {
151 return NodesExcept(nullptr); 189 return NodesExcept(nullptr);
152 } 190 }
153 191
154 FrameTree::NodeRange FrameTree::NodesExcept(FrameTreeNode* node_to_skip) { 192 FrameTree::NodeRange FrameTree::NodesExcept(FrameTreeNode* node_to_skip) {
155 return NodeRange(this, node_to_skip); 193 return NodeRange(this, node_to_skip);
156 } 194 }
157 195
196 FrameTree::ConstNodeRange FrameTree::ConstNodes() const {
197 return ConstNodeRange(this);
198 }
199
158 bool FrameTree::AddFrame( 200 bool FrameTree::AddFrame(
159 FrameTreeNode* parent, 201 FrameTreeNode* parent,
160 int process_id, 202 int process_id,
161 int new_routing_id, 203 int new_routing_id,
162 blink::WebTreeScopeType scope, 204 blink::WebTreeScopeType scope,
163 const std::string& frame_name, 205 const std::string& frame_name,
164 blink::WebSandboxFlags sandbox_flags, 206 blink::WebSandboxFlags sandbox_flags,
165 const blink::WebFrameOwnerProperties& frame_owner_properties) { 207 const blink::WebFrameOwnerProperties& frame_owner_properties) {
166 CHECK_NE(new_routing_id, MSG_ROUTING_NONE); 208 CHECK_NE(new_routing_id, MSG_ROUTING_NONE);
167 209
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 // Notify the WebContents. 459 // Notify the WebContents.
418 root_->navigator()->GetDelegate()->DidChangeLoadProgress(); 460 root_->navigator()->GetDelegate()->DidChangeLoadProgress();
419 } 461 }
420 462
421 void FrameTree::ResetLoadProgress() { 463 void FrameTree::ResetLoadProgress() {
422 for (FrameTreeNode* node : Nodes()) 464 for (FrameTreeNode* node : Nodes())
423 node->reset_loading_progress(); 465 node->reset_loading_progress();
424 load_progress_ = 0.0; 466 load_progress_ = 0.0;
425 } 467 }
426 468
427 bool FrameTree::IsLoading() { 469 bool FrameTree::IsLoading() const {
428 for (FrameTreeNode* node : Nodes()) { 470 for (const FrameTreeNode* node : ConstNodes()) {
429 if (node->IsLoading()) 471 if (node->IsLoading())
430 return true; 472 return true;
431 } 473 }
432 return false; 474 return false;
433 } 475 }
434 476
435 void FrameTree::ReplicatePageFocus(bool is_focused) { 477 void FrameTree::ReplicatePageFocus(bool is_focused) {
436 std::set<SiteInstance*> frame_tree_site_instances = 478 std::set<SiteInstance*> frame_tree_site_instances =
437 CollectSiteInstances(this); 479 CollectSiteInstances(this);
438 480
(...skipping 12 matching lines...) Expand all
451 // This is only used to set page-level focus in cross-process subframes, and 493 // This is only used to set page-level focus in cross-process subframes, and
452 // requests to set focus in main frame's SiteInstance are ignored. 494 // requests to set focus in main frame's SiteInstance are ignored.
453 if (instance != root_manager->current_frame_host()->GetSiteInstance()) { 495 if (instance != root_manager->current_frame_host()->GetSiteInstance()) {
454 RenderFrameProxyHost* proxy = 496 RenderFrameProxyHost* proxy =
455 root_manager->GetRenderFrameProxyHost(instance); 497 root_manager->GetRenderFrameProxyHost(instance);
456 proxy->Send(new InputMsg_SetFocus(proxy->GetRoutingID(), is_focused)); 498 proxy->Send(new InputMsg_SetFocus(proxy->GetRoutingID(), is_focused));
457 } 499 }
458 } 500 }
459 501
460 } // namespace content 502 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698