| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/web_navigation/frame_navigation_state.h" | 5 #include "chrome/browser/extensions/api/web_navigation/frame_navigation_state.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "chrome/common/url_constants.h" | 8 #include "chrome/common/url_constants.h" |
| 9 | 9 |
| 10 namespace extensions { | 10 namespace extensions { |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 } | 82 } |
| 83 // Allow about:blank. | 83 // Allow about:blank. |
| 84 if (url.spec() == chrome::kAboutBlankURL) | 84 if (url.spec() == chrome::kAboutBlankURL) |
| 85 return true; | 85 return true; |
| 86 if (allow_extension_scheme_ && url.scheme() == chrome::kExtensionScheme) | 86 if (allow_extension_scheme_ && url.scheme() == chrome::kExtensionScheme) |
| 87 return true; | 87 return true; |
| 88 return false; | 88 return false; |
| 89 } | 89 } |
| 90 | 90 |
| 91 void FrameNavigationState::TrackFrame(FrameID frame_id, | 91 void FrameNavigationState::TrackFrame(FrameID frame_id, |
| 92 FrameID parent_frame_id, |
| 92 const GURL& url, | 93 const GURL& url, |
| 93 bool is_main_frame, | 94 bool is_main_frame, |
| 94 bool is_error_page) { | 95 bool is_error_page) { |
| 95 FrameState& frame_state = frame_state_map_[frame_id]; | 96 FrameState& frame_state = frame_state_map_[frame_id]; |
| 96 frame_state.error_occurred = is_error_page; | 97 frame_state.error_occurred = is_error_page; |
| 97 frame_state.url = url; | 98 frame_state.url = url; |
| 98 frame_state.is_main_frame = is_main_frame; | 99 frame_state.is_main_frame = is_main_frame; |
| 99 frame_state.is_navigating = true; | 100 frame_state.is_navigating = true; |
| 100 frame_state.is_committed = false; | 101 frame_state.is_committed = false; |
| 101 frame_state.is_server_redirected = false; | 102 frame_state.is_server_redirected = false; |
| 103 if (!is_main_frame) { |
| 104 frame_state.parent_frame_num = parent_frame_id.frame_num; |
| 105 } else { |
| 106 DCHECK(parent_frame_id.frame_num == -1); |
| 107 frame_state.parent_frame_num = -1; |
| 108 } |
| 102 frame_ids_.insert(frame_id); | 109 frame_ids_.insert(frame_id); |
| 103 } | 110 } |
| 104 | 111 |
| 105 void FrameNavigationState::StopTrackingFramesInRVH( | 112 void FrameNavigationState::StopTrackingFramesInRVH( |
| 106 content::RenderViewHost* render_view_host, | 113 content::RenderViewHost* render_view_host, |
| 107 FrameID id_to_skip) { | 114 FrameID id_to_skip) { |
| 108 for (std::set<FrameID>::iterator frame = frame_ids_.begin(); | 115 for (std::set<FrameID>::iterator frame = frame_ids_.begin(); |
| 109 frame != frame_ids_.end();) { | 116 frame != frame_ids_.end();) { |
| 110 if (frame->render_view_host != render_view_host || *frame == id_to_skip) { | 117 if (frame->render_view_host != render_view_host || *frame == id_to_skip) { |
| 111 ++frame; | 118 ++frame; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 FrameIdToStateMap::const_iterator frame_state = | 156 FrameIdToStateMap::const_iterator frame_state = |
| 150 frame_state_map_.find(frame_id); | 157 frame_state_map_.find(frame_id); |
| 151 return (frame_state != frame_state_map_.end() && | 158 return (frame_state != frame_state_map_.end() && |
| 152 frame_state->second.is_main_frame); | 159 frame_state->second.is_main_frame); |
| 153 } | 160 } |
| 154 | 161 |
| 155 FrameNavigationState::FrameID FrameNavigationState::GetMainFrameID() const { | 162 FrameNavigationState::FrameID FrameNavigationState::GetMainFrameID() const { |
| 156 return main_frame_id_; | 163 return main_frame_id_; |
| 157 } | 164 } |
| 158 | 165 |
| 166 FrameNavigationState::FrameID FrameNavigationState::GetParentFrameID( |
| 167 FrameID frame_id) const { |
| 168 FrameIdToStateMap::const_iterator frame_state = |
| 169 frame_state_map_.find(frame_id); |
| 170 if (frame_state == frame_state_map_.end()) { |
| 171 NOTREACHED(); |
| 172 return FrameID(); |
| 173 } |
| 174 return FrameID(frame_state->second.parent_frame_num, |
| 175 frame_id.render_view_host); |
| 176 } |
| 177 |
| 159 void FrameNavigationState::SetErrorOccurredInFrame(FrameID frame_id) { | 178 void FrameNavigationState::SetErrorOccurredInFrame(FrameID frame_id) { |
| 160 DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end()); | 179 DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end()); |
| 161 frame_state_map_[frame_id].error_occurred = true; | 180 frame_state_map_[frame_id].error_occurred = true; |
| 162 } | 181 } |
| 163 | 182 |
| 164 bool FrameNavigationState::GetErrorOccurredInFrame(FrameID frame_id) const { | 183 bool FrameNavigationState::GetErrorOccurredInFrame(FrameID frame_id) const { |
| 165 FrameIdToStateMap::const_iterator frame_state = | 184 FrameIdToStateMap::const_iterator frame_state = |
| 166 frame_state_map_.find(frame_id); | 185 frame_state_map_.find(frame_id); |
| 167 return (frame_state == frame_state_map_.end() || | 186 return (frame_state == frame_state_map_.end() || |
| 168 frame_state->second.error_occurred); | 187 frame_state->second.error_occurred); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 } | 219 } |
| 201 | 220 |
| 202 bool FrameNavigationState::GetIsServerRedirected(FrameID frame_id) const { | 221 bool FrameNavigationState::GetIsServerRedirected(FrameID frame_id) const { |
| 203 FrameIdToStateMap::const_iterator frame_state = | 222 FrameIdToStateMap::const_iterator frame_state = |
| 204 frame_state_map_.find(frame_id); | 223 frame_state_map_.find(frame_id); |
| 205 return (frame_state != frame_state_map_.end() && | 224 return (frame_state != frame_state_map_.end() && |
| 206 frame_state->second.is_server_redirected); | 225 frame_state->second.is_server_redirected); |
| 207 } | 226 } |
| 208 | 227 |
| 209 } // namespace extensions | 228 } // namespace extensions |
| OLD | NEW |