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 |