Index: chrome/browser/extensions/api/web_navigation/web_navigation_api.cc |
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc |
index 35d271bf122c42cc7cfd38e0c132fd3cb65f716a..a2b6363e00dbd0935af8934cc2b0508e24746c7a 100644 |
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc |
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc |
@@ -373,7 +373,7 @@ void WebNavigationTabObserver::DidStartProvisionalLoadForFrame( |
frame_id.frame_num, |
is_main_frame, |
parent_frame_id.frame_num, |
- navigation_state_.IsMainFrame(parent_frame_id), |
+ is_main_frame ? false : navigation_state_.IsMainFrame(parent_frame_id), |
navigation_state_.GetUrl(frame_id)); |
} |
@@ -753,9 +753,13 @@ bool WebNavigationGetFrameFunction::RunSync() { |
frame_navigation_state.GetErrorOccurredInFrame(internal_frame_id); |
FrameNavigationState::FrameID parent_frame_id = |
frame_navigation_state.GetParentFrameID(internal_frame_id); |
- frame_details.parent_frame_id = helpers::GetFrameId( |
- frame_navigation_state.IsMainFrame(parent_frame_id), |
- parent_frame_id.frame_num); |
+ if (parent_frame_id.frame_num == -1) { |
+ frame_details.parent_frame_id = -1; |
+ } else { |
+ frame_details.parent_frame_id = |
+ helpers::GetFrameId(frame_navigation_state.IsMainFrame(parent_frame_id), |
+ parent_frame_id.frame_num); |
+ } |
results_ = GetFrame::Results::Create(frame_details); |
return true; |
} |
@@ -800,9 +804,13 @@ bool WebNavigationGetAllFramesFunction::RunSync() { |
frame->url = frame_url.spec(); |
frame->frame_id = helpers::GetFrameId( |
navigation_state.IsMainFrame(frame_id), frame_id.frame_num); |
- frame->parent_frame_id = helpers::GetFrameId( |
- navigation_state.IsMainFrame(parent_frame_id), |
- parent_frame_id.frame_num); |
+ if (parent_frame_id.frame_num == -1) { |
+ frame->parent_frame_id = -1; |
+ } else { |
+ frame->parent_frame_id = |
+ helpers::GetFrameId(navigation_state.IsMainFrame(parent_frame_id), |
+ parent_frame_id.frame_num); |
+ } |
frame->process_id = frame_id.render_view_host->GetProcess()->GetID(); |
frame->error_occurred = navigation_state.GetErrorOccurredInFrame(frame_id); |
result_list.push_back(frame); |