diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-25 16:25:42 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-25 16:25:42 +0000 |
commit | 05d3cc283c4ac47d4ebab479cfc30b4a289524f3 (patch) | |
tree | 24ac0c4f55041fd641e107950ff6884f1742c94d /chrome/browser/extensions/extension_webnavigation_api.cc | |
parent | 86ead5a96b358723124f57025493c456f6e96cd5 (diff) | |
download | chromium_src-05d3cc283c4ac47d4ebab479cfc30b4a289524f3.zip chromium_src-05d3cc283c4ac47d4ebab479cfc30b4a289524f3.tar.gz chromium_src-05d3cc283c4ac47d4ebab479cfc30b4a289524f3.tar.bz2 |
Remove TabContents from FrameNavigationState
The FrameNavigationState object is owned by a per-tab object, so no need to differentiate frames per tab contents in the FrameNavigationState object
BUG=none
TEST=nothing breaks
Review URL: http://codereview.chromium.org/7488054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93892 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_webnavigation_api.cc')
-rw-r--r-- | chrome/browser/extensions/extension_webnavigation_api.cc | 40 |
1 files changed, 10 insertions, 30 deletions
diff --git a/chrome/browser/extensions/extension_webnavigation_api.cc b/chrome/browser/extensions/extension_webnavigation_api.cc index 222acd5..5545a05 100644 --- a/chrome/browser/extensions/extension_webnavigation_api.cc +++ b/chrome/browser/extensions/extension_webnavigation_api.cc @@ -206,11 +206,9 @@ bool FrameNavigationState::CanSendEvents(int64 frame_id) const { void FrameNavigationState::TrackFrame(int64 frame_id, const GURL& url, bool is_main_frame, - bool is_error_page, - const TabContents* tab_contents) { + bool is_error_page) { if (is_main_frame) - RemoveTabContentsState(tab_contents); - tab_contents_map_.insert(std::make_pair(tab_contents, frame_id)); + frame_state_map_.clear(); FrameState& frame_state = frame_state_map_[frame_id]; frame_state.error_occurred = is_error_page; frame_state.url = url; @@ -237,15 +235,12 @@ bool FrameNavigationState::IsMainFrame(int64 frame_id) const { return frame_state->second.is_main_frame; } -int64 FrameNavigationState::GetMainFrameID( - const TabContents* tab_contents) const { - typedef TabContentsToFrameIdMap::const_iterator FrameIdIterator; - std::pair<FrameIdIterator, FrameIdIterator> frame_ids = - tab_contents_map_.equal_range(tab_contents); - for (FrameIdIterator frame_id = frame_ids.first; frame_id != frame_ids.second; - ++frame_id) { - if (IsMainFrame(frame_id->second)) - return frame_id->second; +int64 FrameNavigationState::GetMainFrameID() const { + typedef FrameIdToStateMap::const_iterator FrameIterator; + for (FrameIterator frame = frame_state_map_.begin(); + frame != frame_state_map_.end(); ++frame) { + if (frame->second.is_main_frame) + return frame->first; } return -1; } @@ -255,18 +250,6 @@ void FrameNavigationState::ErrorOccurredInFrame(int64 frame_id) { frame_state_map_[frame_id].error_occurred = true; } -void FrameNavigationState::RemoveTabContentsState( - const TabContents* tab_contents) { - typedef TabContentsToFrameIdMap::iterator FrameIdIterator; - std::pair<FrameIdIterator, FrameIdIterator> frame_ids = - tab_contents_map_.equal_range(tab_contents); - for (FrameIdIterator frame_id = frame_ids.first; frame_id != frame_ids.second; - ++frame_id) { - frame_state_map_.erase(frame_id->second); - } - tab_contents_map_.erase(tab_contents); -} - // ExtensionWebNavigtionEventRouter ------------------------------------------- @@ -405,8 +388,7 @@ void ExtensionWebNavigationTabObserver::DidStartProvisionalLoadForFrame( navigation_state_.TrackFrame(frame_id, validated_url, is_main_frame, - is_error_page, - tab_contents()); + is_error_page); if (!navigation_state_.CanSendEvents(frame_id)) return; DispatchOnBeforeNavigate( @@ -428,8 +410,7 @@ void ExtensionWebNavigationTabObserver::DidCommitProvisionalLoadForFrame( navigation_state_.TrackFrame(frame_id, url, is_main_frame, - false, - tab_contents()); + false); // On reference fragment navigations, only a new navigation state is // committed. We need to catch this case and generate a full sequence @@ -488,7 +469,6 @@ void ExtensionWebNavigationTabObserver::DidFinishLoad( void ExtensionWebNavigationTabObserver::TabContentsDestroyed( TabContents* tab) { - navigation_state_.RemoveTabContentsState(tab); g_tab_observer.Get().erase(tab); } |