Simplify WebNavigationApi by using RenderFrameHost internally.
commit28cfa1dcbd4b4dc560f4f489bbe4d580d4cc8b27
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 16 Jul 2014 04:43:25 +0000 (16 04:43 +0000)
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 16 Jul 2014 04:43:25 +0000 (16 04:43 +0000)
treef9c49c3177d39f147404a9ba26945291d1144c10
parent488f2982f26e6c72c753e17fa0445463d4f1668d
Simplify WebNavigationApi by using RenderFrameHost internally.

WebNavigationApi formerly passed around a lot of redundant state, but
now it just uses RenderFrameHost. Code that needs to know the routing
ID, parent, etc can just derive it from the RenderFrameHost.

Since WebNavigationApi is storing raw pointers to RenderFrameHost, it
also observers RFH deletions and removes them as needed. This fixes
some use-after-frees when other observers are incorrectly causing the
RenderFrameHost to be destroyed.

BUG=391058

Review URL: https://codereview.chromium.org/384993004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283336 0039d316-1c4b-4281-b951-d872f2087c98
chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
chrome/browser/extensions/api/web_navigation/frame_navigation_state.h
chrome/browser/extensions/api/web_navigation/frame_navigation_state_unittest.cc
chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
chrome/browser/extensions/api/web_navigation/web_navigation_api.h
chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.h
chrome/browser/extensions/api/web_request/web_request_api.cc