| 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) { | |
| 40 } | 39 } |
| 41 | 40 |
| 42 FrameTreeNode::~FrameTreeNode() { | 41 FrameTreeNode::~FrameTreeNode() { |
| 43 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 42 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 44 switches::kEnableBrowserSideNavigation)) { | 43 switches::kEnableBrowserSideNavigation)) { |
| 45 navigator_->CancelNavigation(this); | 44 navigator_->CancelNavigation(this); |
| 46 } | 45 } |
| 47 } | 46 } |
| 48 | 47 |
| 49 bool FrameTreeNode::IsMainFrame() const { | 48 bool FrameTreeNode::IsMainFrame() const { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 return false; | 108 return false; |
| 110 | 109 |
| 111 for (FrameTreeNode* node = parent(); node; node = node->parent()) { | 110 for (FrameTreeNode* node = parent(); node; node = node->parent()) { |
| 112 if (node == other) | 111 if (node == other) |
| 113 return true; | 112 return true; |
| 114 } | 113 } |
| 115 | 114 |
| 116 return false; | 115 return false; |
| 117 } | 116 } |
| 118 | 117 |
| 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 |
| 119 bool FrameTreeNode::CommitPendingSandboxFlags() { | 140 bool FrameTreeNode::CommitPendingSandboxFlags() { |
| 120 bool did_change_flags = | 141 bool did_change_flags = |
| 121 effective_sandbox_flags_ != replication_state_.sandbox_flags; | 142 effective_sandbox_flags_ != replication_state_.sandbox_flags; |
| 122 effective_sandbox_flags_ = replication_state_.sandbox_flags; | 143 effective_sandbox_flags_ = replication_state_.sandbox_flags; |
| 123 return did_change_flags; | 144 return did_change_flags; |
| 124 } | 145 } |
| 125 | 146 |
| 126 } // namespace content | 147 } // namespace content |
| OLD | NEW |