Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(651)

Side by Side Diff: chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc

Issue 11090068: When starting a provisional load include the parent frame ID in the IPC and pass it down the th WCO… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updatess Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698