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

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: Rebase + addressed Nasko's nits 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
83 FrameTree::FrameTree(Navigator* navigator, 121 FrameTree::FrameTree(Navigator* navigator,
84 RenderFrameHostDelegate* render_frame_delegate, 122 RenderFrameHostDelegate* render_frame_delegate,
85 RenderViewHostDelegate* render_view_delegate, 123 RenderViewHostDelegate* render_view_delegate,
86 RenderWidgetHostDelegate* render_widget_delegate, 124 RenderWidgetHostDelegate* render_widget_delegate,
87 RenderFrameHostManager::Delegate* manager_delegate) 125 RenderFrameHostManager::Delegate* manager_delegate)
88 : render_frame_delegate_(render_frame_delegate), 126 : render_frame_delegate_(render_frame_delegate),
89 render_view_delegate_(render_view_delegate), 127 render_view_delegate_(render_view_delegate),
90 render_widget_delegate_(render_widget_delegate), 128 render_widget_delegate_(render_widget_delegate),
91 manager_delegate_(manager_delegate), 129 manager_delegate_(manager_delegate),
92 root_(new FrameTreeNode(this, 130 root_(new FrameTreeNode(this,
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 } 187 }
150 188
151 FrameTree::NodeRange FrameTree::Nodes() { 189 FrameTree::NodeRange FrameTree::Nodes() {
152 return NodesExcept(nullptr); 190 return NodesExcept(nullptr);
153 } 191 }
154 192
155 FrameTree::NodeRange FrameTree::NodesExcept(FrameTreeNode* node_to_skip) { 193 FrameTree::NodeRange FrameTree::NodesExcept(FrameTreeNode* node_to_skip) {
156 return NodeRange(this, node_to_skip); 194 return NodeRange(this, node_to_skip);
157 } 195 }
158 196
197 FrameTree::ConstNodeRange FrameTree::ConstNodes() const {
198 return ConstNodeRange(this);
199 }
200
159 bool FrameTree::AddFrame( 201 bool FrameTree::AddFrame(
160 FrameTreeNode* parent, 202 FrameTreeNode* parent,
161 int process_id, 203 int process_id,
162 int new_routing_id, 204 int new_routing_id,
163 blink::WebTreeScopeType scope, 205 blink::WebTreeScopeType scope,
164 const std::string& frame_name, 206 const std::string& frame_name,
165 blink::WebSandboxFlags sandbox_flags, 207 blink::WebSandboxFlags sandbox_flags,
166 const blink::WebFrameOwnerProperties& frame_owner_properties) { 208 const blink::WebFrameOwnerProperties& frame_owner_properties) {
167 CHECK_NE(new_routing_id, MSG_ROUTING_NONE); 209 CHECK_NE(new_routing_id, MSG_ROUTING_NONE);
168 210
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 // Notify the WebContents. 460 // Notify the WebContents.
419 root_->navigator()->GetDelegate()->DidChangeLoadProgress(); 461 root_->navigator()->GetDelegate()->DidChangeLoadProgress();
420 } 462 }
421 463
422 void FrameTree::ResetLoadProgress() { 464 void FrameTree::ResetLoadProgress() {
423 for (FrameTreeNode* node : Nodes()) 465 for (FrameTreeNode* node : Nodes())
424 node->reset_loading_progress(); 466 node->reset_loading_progress();
425 load_progress_ = 0.0; 467 load_progress_ = 0.0;
426 } 468 }
427 469
428 bool FrameTree::IsLoading() { 470 bool FrameTree::IsLoading() const {
429 for (FrameTreeNode* node : Nodes()) { 471 for (const FrameTreeNode* node : ConstNodes()) {
430 if (node->IsLoading()) 472 if (node->IsLoading())
431 return true; 473 return true;
432 } 474 }
433 return false; 475 return false;
434 } 476 }
435 477
436 void FrameTree::ReplicatePageFocus(bool is_focused) { 478 void FrameTree::ReplicatePageFocus(bool is_focused) {
437 std::set<SiteInstance*> frame_tree_site_instances = 479 std::set<SiteInstance*> frame_tree_site_instances =
438 CollectSiteInstances(this); 480 CollectSiteInstances(this);
439 481
(...skipping 12 matching lines...) Expand all
452 // This is only used to set page-level focus in cross-process subframes, and 494 // This is only used to set page-level focus in cross-process subframes, and
453 // requests to set focus in main frame's SiteInstance are ignored. 495 // requests to set focus in main frame's SiteInstance are ignored.
454 if (instance != root_manager->current_frame_host()->GetSiteInstance()) { 496 if (instance != root_manager->current_frame_host()->GetSiteInstance()) {
455 RenderFrameProxyHost* proxy = 497 RenderFrameProxyHost* proxy =
456 root_manager->GetRenderFrameProxyHost(instance); 498 root_manager->GetRenderFrameProxyHost(instance);
457 proxy->Send(new InputMsg_SetFocus(proxy->GetRoutingID(), is_focused)); 499 proxy->Send(new InputMsg_SetFocus(proxy->GetRoutingID(), is_focused));
458 } 500 }
459 } 501 }
460 502
461 } // namespace content 503 } // 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