Chromium Code Reviews| 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 frame_state.parent_frame_num = -1; | |
|
Bernhard Bauer
2012/10/12 08:32:49
What does |parent_frame_id| look like in this case
jochen (gone - plz use gerrit)
2012/10/12 10:44:48
it should, but I want to be on the safe side and n
Bernhard Bauer
2012/10/12 11:22:45
Right. Could you DCHECK that then?
| |
| 102 frame_ids_.insert(frame_id); | 107 frame_ids_.insert(frame_id); |
| 103 } | 108 } |
| 104 | 109 |
| 105 void FrameNavigationState::StopTrackingFramesInRVH( | 110 void FrameNavigationState::StopTrackingFramesInRVH( |
| 106 content::RenderViewHost* render_view_host, | 111 content::RenderViewHost* render_view_host, |
| 107 FrameID id_to_skip) { | 112 FrameID id_to_skip) { |
| 108 for (std::set<FrameID>::iterator frame = frame_ids_.begin(); | 113 for (std::set<FrameID>::iterator frame = frame_ids_.begin(); |
| 109 frame != frame_ids_.end();) { | 114 frame != frame_ids_.end();) { |
| 110 if (frame->render_view_host != render_view_host || *frame == id_to_skip) { | 115 if (frame->render_view_host != render_view_host || *frame == id_to_skip) { |
| 111 ++frame; | 116 ++frame; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 149 FrameIdToStateMap::const_iterator frame_state = | 154 FrameIdToStateMap::const_iterator frame_state = |
| 150 frame_state_map_.find(frame_id); | 155 frame_state_map_.find(frame_id); |
| 151 return (frame_state != frame_state_map_.end() && | 156 return (frame_state != frame_state_map_.end() && |
| 152 frame_state->second.is_main_frame); | 157 frame_state->second.is_main_frame); |
| 153 } | 158 } |
| 154 | 159 |
| 155 FrameNavigationState::FrameID FrameNavigationState::GetMainFrameID() const { | 160 FrameNavigationState::FrameID FrameNavigationState::GetMainFrameID() const { |
| 156 return main_frame_id_; | 161 return main_frame_id_; |
| 157 } | 162 } |
| 158 | 163 |
| 164 FrameNavigationState::FrameID FrameNavigationState::GetParentFrameID( | |
| 165 FrameID frame_id) const { | |
| 166 FrameIdToStateMap::const_iterator frame_state = | |
| 167 frame_state_map_.find(frame_id); | |
| 168 if (frame_state == frame_state_map_.end()) { | |
| 169 NOTREACHED(); | |
| 170 return FrameID(); | |
| 171 } | |
| 172 return FrameID(frame_state->second.parent_frame_num, | |
| 173 frame_id.render_view_host); | |
| 174 } | |
| 175 | |
| 159 void FrameNavigationState::SetErrorOccurredInFrame(FrameID frame_id) { | 176 void FrameNavigationState::SetErrorOccurredInFrame(FrameID frame_id) { |
| 160 DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end()); | 177 DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end()); |
| 161 frame_state_map_[frame_id].error_occurred = true; | 178 frame_state_map_[frame_id].error_occurred = true; |
| 162 } | 179 } |
| 163 | 180 |
| 164 bool FrameNavigationState::GetErrorOccurredInFrame(FrameID frame_id) const { | 181 bool FrameNavigationState::GetErrorOccurredInFrame(FrameID frame_id) const { |
| 165 FrameIdToStateMap::const_iterator frame_state = | 182 FrameIdToStateMap::const_iterator frame_state = |
| 166 frame_state_map_.find(frame_id); | 183 frame_state_map_.find(frame_id); |
| 167 return (frame_state == frame_state_map_.end() || | 184 return (frame_state == frame_state_map_.end() || |
| 168 frame_state->second.error_occurred); | 185 frame_state->second.error_occurred); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 200 } | 217 } |
| 201 | 218 |
| 202 bool FrameNavigationState::GetIsServerRedirected(FrameID frame_id) const { | 219 bool FrameNavigationState::GetIsServerRedirected(FrameID frame_id) const { |
| 203 FrameIdToStateMap::const_iterator frame_state = | 220 FrameIdToStateMap::const_iterator frame_state = |
| 204 frame_state_map_.find(frame_id); | 221 frame_state_map_.find(frame_id); |
| 205 return (frame_state != frame_state_map_.end() && | 222 return (frame_state != frame_state_map_.end() && |
| 206 frame_state->second.is_server_redirected); | 223 frame_state->second.is_server_redirected); |
| 207 } | 224 } |
| 208 | 225 |
| 209 } // namespace extensions | 226 } // namespace extensions |
| OLD | NEW |