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_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/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 : frame_tree_(frame_tree), | 28 : frame_tree_(frame_tree), |
29 navigator_(navigator), | 29 navigator_(navigator), |
30 render_manager_(this, | 30 render_manager_(this, |
31 render_frame_delegate, | 31 render_frame_delegate, |
32 render_view_delegate, | 32 render_view_delegate, |
33 render_widget_delegate, | 33 render_widget_delegate, |
34 manager_delegate), | 34 manager_delegate), |
35 frame_tree_node_id_(next_frame_tree_node_id_++), | 35 frame_tree_node_id_(next_frame_tree_node_id_++), |
36 parent_(NULL), | 36 parent_(NULL), |
37 replication_state_(name), | 37 replication_state_(name), |
38 effective_sandbox_flags_(SandboxFlags::NONE) { | 38 effective_sandbox_flags_(SandboxFlags::NONE), |
| 39 is_loading_(false) { |
39 } | 40 } |
40 | 41 |
41 FrameTreeNode::~FrameTreeNode() { | 42 FrameTreeNode::~FrameTreeNode() { |
42 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 43 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
43 switches::kEnableBrowserSideNavigation)) { | 44 switches::kEnableBrowserSideNavigation)) { |
44 navigator_->CancelNavigation(this); | 45 navigator_->CancelNavigation(this); |
45 } | 46 } |
46 } | 47 } |
47 | 48 |
48 bool FrameTreeNode::IsMainFrame() const { | 49 bool FrameTreeNode::IsMainFrame() const { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 return false; | 109 return false; |
109 | 110 |
110 for (FrameTreeNode* node = parent(); node; node = node->parent()) { | 111 for (FrameTreeNode* node = parent(); node; node = node->parent()) { |
111 if (node == other) | 112 if (node == other) |
112 return true; | 113 return true; |
113 } | 114 } |
114 | 115 |
115 return false; | 116 return false; |
116 } | 117 } |
117 | 118 |
118 bool FrameTreeNode::IsLoading() const { | |
119 RenderFrameHostImpl* current_frame_host = | |
120 render_manager_.current_frame_host(); | |
121 RenderFrameHostImpl* pending_frame_host = | |
122 render_manager_.pending_frame_host(); | |
123 | |
124 DCHECK(current_frame_host); | |
125 // TODO(fdegans): Change the implementation logic for PlzNavigate once | |
126 // DidStartLoading and DidStopLoading are properly called. | |
127 if (pending_frame_host && pending_frame_host->is_loading()) | |
128 return true; | |
129 return current_frame_host->is_loading(); | |
130 } | |
131 | |
132 double FrameTreeNode::GetLoadingProgress() const { | |
133 RenderFrameHostImpl* current_frame_host = | |
134 render_manager_.current_frame_host(); | |
135 | |
136 DCHECK(current_frame_host); | |
137 return current_frame_host->loading_progress(); | |
138 } | |
139 | |
140 bool FrameTreeNode::CommitPendingSandboxFlags() { | 119 bool FrameTreeNode::CommitPendingSandboxFlags() { |
141 bool did_change_flags = | 120 bool did_change_flags = |
142 effective_sandbox_flags_ != replication_state_.sandbox_flags; | 121 effective_sandbox_flags_ != replication_state_.sandbox_flags; |
143 effective_sandbox_flags_ = replication_state_.sandbox_flags; | 122 effective_sandbox_flags_ = replication_state_.sandbox_flags; |
144 return did_change_flags; | 123 return did_change_flags; |
145 } | 124 } |
146 | 125 |
147 } // namespace content | 126 } // namespace content |
OLD | NEW |