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 361405fea0339705928b29d42bd7b95d2f48fff7..11bcb5a004f6ca1a5031a9c04992702a6f194201 100644 |
--- a/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc |
+++ b/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc |
@@ -105,6 +105,7 @@ void FrameNavigationState::TrackFrame(FrameID frame_id, |
frame_state.is_navigating = true; |
frame_state.is_committed = false; |
frame_state.is_server_redirected = false; |
+ frame_state.is_parsing = true; |
if (!is_main_frame) { |
frame_state.parent_frame_num = parent_frame_id.frame_num; |
} else { |
@@ -229,6 +230,18 @@ bool FrameNavigationState::GetNavigationCompleted(FrameID frame_id) const { |
!frame_state->second.is_navigating); |
} |
+void FrameNavigationState::SetParsingFinished(FrameID frame_id) { |
+ DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end()); |
+ frame_state_map_[frame_id].is_parsing = false; |
+} |
+ |
+bool FrameNavigationState::GetParsingFinished(FrameID frame_id) const { |
+ FrameIdToStateMap::const_iterator frame_state = |
+ frame_state_map_.find(frame_id); |
+ return (frame_state == frame_state_map_.end() || |
+ !frame_state->second.is_parsing); |
+} |
+ |
void FrameNavigationState::SetNavigationCommitted(FrameID frame_id) { |
DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end()); |
frame_state_map_[frame_id].is_committed = true; |