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

Unified 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: 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
diff --git a/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc b/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
index 766f04a78239a2a5bc5b8d0f93cdeae9a93f373d..c624055485cec73262567bec6d07d3ed9739cbe1 100644
--- a/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
+++ b/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
@@ -89,6 +89,7 @@ bool FrameNavigationState::IsValidUrl(const GURL& url) const {
}
void FrameNavigationState::TrackFrame(FrameID frame_id,
+ FrameID parent_frame_id,
const GURL& url,
bool is_main_frame,
bool is_error_page) {
@@ -99,6 +100,10 @@ void FrameNavigationState::TrackFrame(FrameID frame_id,
frame_state.is_navigating = true;
frame_state.is_committed = false;
frame_state.is_server_redirected = false;
+ if (!is_main_frame)
+ frame_state.parent_frame_num = parent_frame_id.frame_num;
+ else
+ 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?
frame_ids_.insert(frame_id);
}
@@ -156,6 +161,18 @@ FrameNavigationState::FrameID FrameNavigationState::GetMainFrameID() const {
return main_frame_id_;
}
+FrameNavigationState::FrameID FrameNavigationState::GetParentFrameID(
+ FrameID frame_id) const {
+ FrameIdToStateMap::const_iterator frame_state =
+ frame_state_map_.find(frame_id);
+ if (frame_state == frame_state_map_.end()) {
+ NOTREACHED();
+ return FrameID();
+ }
+ return FrameID(frame_state->second.parent_frame_num,
+ frame_id.render_view_host);
+}
+
void FrameNavigationState::SetErrorOccurredInFrame(FrameID frame_id) {
DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end());
frame_state_map_[frame_id].error_occurred = true;

Powered by Google App Engine
This is Rietveld 408576698