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

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

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

Powered by Google App Engine
This is Rietveld 408576698