summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-03 12:17:48 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-03 12:17:48 +0000
commite2d2d4206bb147ce253ff07fd98feb3cf4680bad (patch)
tree33cfc5927dd5fae2adb09a2ca1044da518f7c913
parent48b82e7d362d6eabebd12d5373f44cbd852634e2 (diff)
downloadchromium_src-e2d2d4206bb147ce253ff07fd98feb3cf4680bad.zip
chromium_src-e2d2d4206bb147ce253ff07fd98feb3cf4680bad.tar.gz
chromium_src-e2d2d4206bb147ce253ff07fd98feb3cf4680bad.tar.bz2
Update several WebContentsObserver loading callbacks to use RFH.
This code runs in the browser process, so there's no need to pass around routing IDs for frames, since it can just use RFH directly. This also simplifies the callbacks by removing several parameters that are now redundant with RFH. This has the side effect of making it impossible for tests to supply 'impossible' data to WebContentsObserver callbacks. Tests for WebContentsObserver loading callbacks can use the new RenderFrameHostTester helper if they need to create subframe RenderFrameHosts. R=jam@chromium.org TBR=jochen@chromium.org Review URL: https://codereview.chromium.org/365563002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281241 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/captive_portal/captive_portal_tab_helper.cc17
-rw-r--r--chrome/browser/captive_portal/captive_portal_tab_helper.h9
-rw-r--r--chrome/browser/captive_portal/captive_portal_tab_helper_unittest.cc132
-rw-r--r--chrome/browser/chromeos/first_run/drive_first_run_controller.cc5
-rw-r--r--chrome/browser/chromeos/login/ui/webui_login_view.cc1
-rw-r--r--chrome/browser/chromeos/login/ui/webui_login_view.h1
-rw-r--r--chrome/browser/content_settings/tab_specific_content_settings.cc9
-rw-r--r--chrome/browser/content_settings/tab_specific_content_settings.h7
-rw-r--r--chrome/browser/errorpage_browsertest.cc1
-rw-r--r--chrome/browser/extensions/api/identity/web_auth_flow.cc12
-rw-r--r--chrome/browser/extensions/api/identity/web_auth_flow.h8
-rw-r--r--chrome/browser/extensions/api/web_navigation/web_navigation_api.cc31
-rw-r--r--chrome/browser/extensions/api/web_navigation/web_navigation_api.h9
-rw-r--r--chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc8
-rw-r--r--chrome/browser/guest_view/web_view/web_view_guest.cc17
-rw-r--r--chrome/browser/guest_view/web_view/web_view_guest.h9
-rw-r--r--chrome/browser/net/net_error_tab_helper.cc15
-rw-r--r--chrome/browser/net/net_error_tab_helper.h9
-rw-r--r--chrome/browser/net/net_error_tab_helper_unittest.cc55
-rw-r--r--chrome/browser/prerender/prerender_contents.cc12
-rw-r--r--chrome/browser/prerender/prerender_contents.h8
-rw-r--r--chrome/browser/prerender/prerender_manager.cc6
-rw-r--r--chrome/browser/prerender/prerender_manager.h2
-rw-r--r--chrome/browser/prerender/prerender_tab_helper.cc18
-rw-r--r--chrome/browser/prerender/prerender_tab_helper.h8
-rw-r--r--chrome/browser/signin/signin_browsertest.cc1
-rw-r--r--chrome/browser/ssl/ssl_browser_tests.cc1
-rw-r--r--chrome/browser/supervised_user/supervised_user_navigation_observer.cc5
-rw-r--r--chrome/browser/supervised_user/supervised_user_navigation_observer.h1
-rw-r--r--chrome/browser/translate/translate_manager_render_view_host_unittest.cc9
-rw-r--r--chrome/browser/ui/search/instant_page.cc7
-rw-r--r--chrome/browser/ui/search/instant_page.h1
-rw-r--r--chrome/browser/ui/search/search_tab_helper.cc7
-rw-r--r--chrome/browser/ui/search/search_tab_helper.h1
-rw-r--r--chrome/browser/ui/search/search_tab_helper_unittest.cc21
-rw-r--r--chrome/browser/ui/sync/one_click_signin_helper.cc5
-rw-r--r--chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc2
-rw-r--r--chrome/browser/ui/webui/chromeos/mobile_setup_ui.h2
-rw-r--r--chrome/browser/ui/webui/options/options_ui.cc12
-rw-r--r--chrome/browser/ui/webui/options/options_ui.h7
-rw-r--r--chrome/test/base/in_process_browser_test_browsertest.cc1
-rw-r--r--components/dom_distiller/content/distiller_page_web_contents_browsertest.cc3
-rw-r--r--content/browser/android/web_contents_observer_android.cc36
-rw-r--r--content/browser/android/web_contents_observer_android.h11
-rw-r--r--content/browser/browser_plugin/browser_plugin_guest.cc1
-rw-r--r--content/browser/browser_plugin/browser_plugin_guest.h1
-rw-r--r--content/browser/frame_host/navigation_controller_impl_unittest.cc14
-rw-r--r--content/browser/frame_host/navigator.h1
-rw-r--r--content/browser/frame_host/navigator_delegate.h2
-rw-r--r--content/browser/frame_host/navigator_impl.cc12
-rw-r--r--content/browser/frame_host/navigator_impl.h1
-rw-r--r--content/browser/frame_host/render_frame_host_impl.cc4
-rw-r--r--content/browser/frame_host/render_frame_host_impl.h3
-rw-r--r--content/browser/site_per_process_browsertest.cc9
-rw-r--r--content/browser/web_contents/web_contents_impl.cc29
-rw-r--r--content/browser/web_contents/web_contents_impl.h2
-rw-r--r--content/browser/web_contents/web_contents_impl_unittest.cc6
-rw-r--r--content/common/frame_messages.h3
-rw-r--r--content/public/browser/web_contents_observer.h9
-rw-r--r--content/public/test/test_renderer_host.cc7
-rw-r--r--content/public/test/test_renderer_host.h28
-rw-r--r--content/renderer/render_frame_impl.cc6
-rw-r--r--content/test/test_frame_navigation_observer.cc14
-rw-r--r--content/test/test_frame_navigation_observer.h7
-rw-r--r--content/test/test_render_frame_host.cc33
-rw-r--r--content/test/test_render_frame_host.h31
66 files changed, 344 insertions, 421 deletions
diff --git a/chrome/browser/captive_portal/captive_portal_tab_helper.cc b/chrome/browser/captive_portal/captive_portal_tab_helper.cc
index df566f4..4b2b6e1 100644
--- a/chrome/browser/captive_portal/captive_portal_tab_helper.cc
+++ b/chrome/browser/captive_portal/captive_portal_tab_helper.cc
@@ -68,19 +68,18 @@ void CaptivePortalTabHelper::RenderViewDeleted(
}
void CaptivePortalTabHelper::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) {
+ bool is_iframe_srcdoc) {
DCHECK(CalledOnValidThread());
// Ignore subframes.
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
+ content::RenderViewHost* render_view_host =
+ render_frame_host->GetRenderViewHost();
if (provisional_render_view_host_) {
// If loading an error page for a previous failure, treat this as part of
// the previous load. Link Doctor pages act like two error page loads in a
@@ -99,13 +98,12 @@ void CaptivePortalTabHelper::DidStartProvisionalLoadForFrame(
void CaptivePortalTabHelper::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) {
DCHECK(CalledOnValidThread());
// Ignore subframes.
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
if (provisional_render_view_host_ == render_frame_host->GetRenderViewHost()) {
@@ -127,14 +125,13 @@ void CaptivePortalTabHelper::DidCommitProvisionalLoadForFrame(
void CaptivePortalTabHelper::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
DCHECK(CalledOnValidThread());
// Ignore subframes and unexpected RenderViewHosts.
- if (!is_main_frame ||
+ if (render_frame_host->GetParent() ||
render_frame_host->GetRenderViewHost() != provisional_render_view_host_)
return;
diff --git a/chrome/browser/captive_portal/captive_portal_tab_helper.h b/chrome/browser/captive_portal/captive_portal_tab_helper.h
index beef25e..04175c3 100644
--- a/chrome/browser/captive_portal/captive_portal_tab_helper.h
+++ b/chrome/browser/captive_portal/captive_portal_tab_helper.h
@@ -67,23 +67,18 @@ class CaptivePortalTabHelper
content::RenderViewHost* render_view_host) OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
diff --git a/chrome/browser/captive_portal/captive_portal_tab_helper_unittest.cc b/chrome/browser/captive_portal/captive_portal_tab_helper_unittest.cc
index dc409ba..c7cb495 100644
--- a/chrome/browser/captive_portal/captive_portal_tab_helper_unittest.cc
+++ b/chrome/browser/captive_portal/captive_portal_tab_helper_unittest.cc
@@ -88,12 +88,11 @@ class CaptivePortalTabHelperTest : public ChromeRenderViewHostTestHarness {
content::RenderViewHost* render_view_host) {
EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, url, false, false, render_view_host);
+ render_view_host->GetMainFrame(), url, false, false);
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(
render_view_host->GetMainFrame(),
- true,
url,
content::PAGE_TRANSITION_LINK);
}
@@ -103,22 +102,20 @@ class CaptivePortalTabHelperTest : public ChromeRenderViewHostTestHarness {
content::RenderViewHost* render_view_host) {
EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, url, false, false, render_view_host);
+ render_view_host->GetMainFrame(), url, false, false);
tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(),
- true,
url,
net::ERR_TIMED_OUT,
base::string16());
// Provisional load starts for the error page.
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host);
+ render_view_host->GetMainFrame(), GURL(kErrorPageUrl), true, false);
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(
render_view_host->GetMainFrame(),
- true,
GURL(kErrorPageUrl),
content::PAGE_TRANSITION_LINK);
}
@@ -129,12 +126,11 @@ class CaptivePortalTabHelperTest : public ChromeRenderViewHostTestHarness {
NavigationType navigation_type) {
EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, url, false, false, render_view_host);
+ render_view_host->GetMainFrame(), url, false, false);
EXPECT_CALL(mock_reloader(), OnAbort()).Times(1);
if (navigation_type == kSameProcess) {
tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(),
- true,
url,
net::ERR_ABORTED,
base::string16());
@@ -156,22 +152,20 @@ class CaptivePortalTabHelperTest : public ChromeRenderViewHostTestHarness {
NavigationType navigation_type) {
EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, url, false, false, render_view_host);
+ render_view_host->GetMainFrame(), url, false, false);
tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(),
- true,
url,
net::ERR_TIMED_OUT,
base::string16());
// Start event for the error page.
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, url, true, false, render_view_host);
+ render_view_host->GetMainFrame(), url, true, false);
EXPECT_CALL(mock_reloader(), OnAbort()).Times(1);
if (navigation_type == kSameProcess) {
tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(),
- true,
url,
net::ERR_ABORTED,
base::string16());
@@ -267,11 +261,10 @@ TEST_F(CaptivePortalTabHelperTest, HttpTimeoutLinkDoctor) {
EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1);
// Provisional load starts for the error page.
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1());
+ main_render_frame1(), GURL(kErrorPageUrl), true, false);
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame1(),
- true,
GURL(kErrorPageUrl),
content::PAGE_TRANSITION_LINK);
tab_helper().DidStopLoading(render_view_host1());
@@ -342,7 +335,7 @@ TEST_F(CaptivePortalTabHelperTest, UnexpectedProvisionalLoad) {
EXPECT_CALL(mock_reloader(),
OnLoadStart(same_site_url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, same_site_url, false, false, render_view_host1());
+ main_render_frame1(), same_site_url, false, false);
// It's unexpectedly interrupted by a cross-process navigation, which starts
// navigating before the old navigation cancels. We generate an abort message
@@ -351,18 +344,16 @@ TEST_F(CaptivePortalTabHelperTest, UnexpectedProvisionalLoad) {
EXPECT_CALL(mock_reloader(),
OnLoadStart(cross_process_url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, cross_process_url, false, false, render_view_host2());
+ main_render_frame2(), cross_process_url, false, false);
// The cross-process navigation fails.
tab_helper().DidFailProvisionalLoad(main_render_frame2(),
- true,
cross_process_url,
net::ERR_FAILED,
base::string16());
// The same-site navigation finally is aborted.
tab_helper().DidFailProvisionalLoad(main_render_frame1(),
- true,
same_site_url,
net::ERR_ABORTED,
base::string16());
@@ -370,11 +361,10 @@ TEST_F(CaptivePortalTabHelperTest, UnexpectedProvisionalLoad) {
// The provisional load starts for the error page for the cross-process
// navigation.
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host2());
+ main_render_frame2(), GURL(kErrorPageUrl), true, false);
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_FAILED)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame2(),
- true,
GURL(kErrorPageUrl),
content::PAGE_TRANSITION_TYPED);
}
@@ -389,7 +379,7 @@ TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) {
EXPECT_CALL(mock_reloader(),
OnLoadStart(same_site_url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, same_site_url, false, false, render_view_host1());
+ main_render_frame1(), same_site_url, false, false);
// It's unexpectedly interrupted by a cross-process navigation, which starts
// navigating before the old navigation cancels. We generate an abort message
@@ -398,11 +388,10 @@ TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) {
EXPECT_CALL(mock_reloader(),
OnLoadStart(cross_process_url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, cross_process_url, false, false, render_view_host2());
+ main_render_frame2(), cross_process_url, false, false);
// The cross-process navigation fails.
tab_helper().DidFailProvisionalLoad(main_render_frame2(),
- true,
cross_process_url,
net::ERR_FAILED,
base::string16());
@@ -413,40 +402,40 @@ TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) {
OnLoadStart(same_site_url.SchemeIsSecure())).Times(1);
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(
- main_render_frame1(), true, same_site_url, content::PAGE_TRANSITION_LINK);
+ main_render_frame1(), same_site_url, content::PAGE_TRANSITION_LINK);
}
// Simulates navigations for a number of subframes, and makes sure no
// CaptivePortalTabHelper function is called.
-// TODO(dcheng): This (and the following) test cheat and pass NULL as the
-// render_frame_host, since the testing harness doesn't currently allow a way to
-// create child RFHs and the implementation just happens to ignore the RFH
-// pointer if is_main_frame is false.
-// TODO(dcheng): Passing -1 as the parent routing ID is technically incorrect if
-// the frame is a subframe!
TEST_F(CaptivePortalTabHelperTest, HttpsSubframe) {
GURL url = GURL(kHttpsUrl);
+
+ content::RenderFrameHostTester* render_frame_host_tester =
+ content::RenderFrameHostTester::For(main_render_frame1());
+ content::RenderFrameHost* subframe1 =
+ render_frame_host_tester->AppendChild("subframe1");
+
// Normal load.
- tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, false, url, false, false, render_view_host1());
+ tab_helper().DidStartProvisionalLoadForFrame(subframe1, url, false, false);
tab_helper().DidCommitProvisionalLoadForFrame(
- NULL, false, url, content::PAGE_TRANSITION_LINK);
+ subframe1, url, content::PAGE_TRANSITION_LINK);
// Timeout.
- tab_helper().DidStartProvisionalLoadForFrame(
- 2, -1, false, url, false, false, render_view_host1());
+ content::RenderFrameHost* subframe2 =
+ render_frame_host_tester->AppendChild("subframe2");
+ tab_helper().DidStartProvisionalLoadForFrame(subframe2, url, false, false);
tab_helper().DidFailProvisionalLoad(
- NULL, false, url, net::ERR_TIMED_OUT, base::string16());
- tab_helper().DidStartProvisionalLoadForFrame(
- 2, -1, false, url, true, false, render_view_host1());
+ subframe2, url, net::ERR_TIMED_OUT, base::string16());
+ tab_helper().DidStartProvisionalLoadForFrame(subframe2, url, true, false);
tab_helper().DidFailProvisionalLoad(
- NULL, false, url, net::ERR_ABORTED, base::string16());
+ subframe2, url, net::ERR_ABORTED, base::string16());
// Abort.
- tab_helper().DidStartProvisionalLoadForFrame(
- 3, -1, false, url, false, false, render_view_host1());
+ content::RenderFrameHost* subframe3 =
+ render_frame_host_tester->AppendChild("subframe3");
+ tab_helper().DidStartProvisionalLoadForFrame(subframe3, url, false, false);
tab_helper().DidFailProvisionalLoad(
- NULL, false, url, net::ERR_ABORTED, base::string16());
+ subframe3, url, net::ERR_ABORTED, base::string16());
}
// Simulates a subframe erroring out at the same time as a provisional load,
@@ -455,35 +444,33 @@ TEST_F(CaptivePortalTabHelperTest, HttpsSubframe) {
TEST_F(CaptivePortalTabHelperTest, HttpsSubframeParallelError) {
// URL used by both frames.
GURL url = GURL(kHttpsUrl);
-
- int frame_id = main_render_frame1()->GetRoutingID();
- int subframe_id = frame_id + 1;
+ content::RenderFrameHost* subframe =
+ content::RenderFrameHostTester::For(main_render_frame1())
+ ->AppendChild("subframe");
// Loads start.
EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- frame_id, -1, true, url, false, false, render_view_host1());
- tab_helper().DidStartProvisionalLoadForFrame(
- subframe_id, frame_id, false, url, false, false, render_view_host1());
+ main_render_frame1(), url, false, false);
+ tab_helper().DidStartProvisionalLoadForFrame(subframe, url, false, false);
// Loads return errors.
tab_helper().DidFailProvisionalLoad(
- main_render_frame1(), true, url, net::ERR_UNEXPECTED, base::string16());
+ main_render_frame1(), url, net::ERR_UNEXPECTED, base::string16());
tab_helper().DidFailProvisionalLoad(
- NULL, false, url, net::ERR_TIMED_OUT, base::string16());
+ subframe, url, net::ERR_TIMED_OUT, base::string16());
// Provisional load starts for the error pages.
tab_helper().DidStartProvisionalLoadForFrame(
- frame_id, -1, true, url, true, false, render_view_host1());
- tab_helper().DidStartProvisionalLoadForFrame(
- subframe_id, frame_id, false, url, true, false, render_view_host1());
+ main_render_frame1(), url, true, false);
+ tab_helper().DidStartProvisionalLoadForFrame(subframe, url, true, false);
// Error page load finishes.
tab_helper().DidCommitProvisionalLoadForFrame(
- NULL, false, url, content::PAGE_TRANSITION_AUTO_SUBFRAME);
+ subframe, url, content::PAGE_TRANSITION_AUTO_SUBFRAME);
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_UNEXPECTED)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(
- main_render_frame1(), true, url, content::PAGE_TRANSITION_LINK);
+ main_render_frame1(), url, content::PAGE_TRANSITION_LINK);
}
// Simulates an HTTP to HTTPS redirect, which then times out.
@@ -491,7 +478,7 @@ TEST_F(CaptivePortalTabHelperTest, HttpToHttpsRedirectTimeout) {
GURL http_url(kHttpUrl);
EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, http_url, false, false, render_view_host1());
+ main_render_frame1(), http_url, false, false);
GURL https_url(kHttpsUrl);
EXPECT_CALL(mock_reloader(), OnRedirect(true)).Times(1);
@@ -499,18 +486,16 @@ TEST_F(CaptivePortalTabHelperTest, HttpToHttpsRedirectTimeout) {
render_view_host1()->GetProcess()->GetID());
tab_helper().DidFailProvisionalLoad(main_render_frame1(),
- true,
https_url,
net::ERR_TIMED_OUT,
base::string16());
// Provisional load starts for the error page.
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1());
+ main_render_frame1(), GURL(kErrorPageUrl), true, false);
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame1(),
- true,
GURL(kErrorPageUrl),
content::PAGE_TRANSITION_LINK);
}
@@ -520,8 +505,8 @@ TEST_F(CaptivePortalTabHelperTest, HttpsToHttpRedirect) {
GURL https_url(kHttpsUrl);
EXPECT_CALL(mock_reloader(),
OnLoadStart(https_url.SchemeIsSecure())).Times(1);
- tab_helper().DidStartProvisionalLoadForFrame(1, -1, true, https_url, false,
- false, render_view_host1());
+ tab_helper().DidStartProvisionalLoadForFrame(
+ main_render_frame1(), https_url, false, false);
GURL http_url(kHttpUrl);
EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsSecure())).Times(1);
@@ -530,7 +515,7 @@ TEST_F(CaptivePortalTabHelperTest, HttpsToHttpRedirect) {
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(
- main_render_frame1(), true, http_url, content::PAGE_TRANSITION_LINK);
+ main_render_frame1(), http_url, content::PAGE_TRANSITION_LINK);
}
// Simulates an HTTPS to HTTPS redirect.
@@ -539,7 +524,7 @@ TEST_F(CaptivePortalTabHelperTest, HttpToHttpRedirect) {
EXPECT_CALL(mock_reloader(),
OnLoadStart(http_url.SchemeIsSecure())).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, http_url, false, false, render_view_host1());
+ main_render_frame1(), http_url, false, false);
EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsSecure())).Times(1);
OnRedirect(ResourceType::MAIN_FRAME, http_url,
@@ -547,27 +532,24 @@ TEST_F(CaptivePortalTabHelperTest, HttpToHttpRedirect) {
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(
- main_render_frame1(), true, http_url, content::PAGE_TRANSITION_LINK);
+ main_render_frame1(), http_url, content::PAGE_TRANSITION_LINK);
}
-// Simulates redirect of a subframe.
-// TODO(dcheng): This test actually passes true for the is_main_frame
-// parameter even though the test name claims it's testing a subframe redirect.
+// Tests that a subframe redirect doesn't reset the timer to kick off a captive
+// portal probe for the main frame if the main frame request is taking too long.
TEST_F(CaptivePortalTabHelperTest, SubframeRedirect) {
GURL http_url(kHttpUrl);
EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, http_url, false, false, render_view_host1());
+ main_render_frame1(), http_url, false, false);
GURL https_url(kHttpsUrl);
OnRedirect(ResourceType::SUB_FRAME, https_url,
render_view_host1()->GetProcess()->GetID());
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1);
- tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame1(),
- true,
- GURL(kErrorPageUrl),
- content::PAGE_TRANSITION_LINK);
+ tab_helper().DidCommitProvisionalLoadForFrame(
+ main_render_frame1(), GURL(kErrorPageUrl), content::PAGE_TRANSITION_LINK);
}
// Simulates a redirect, for another RenderViewHost.
@@ -575,7 +557,7 @@ TEST_F(CaptivePortalTabHelperTest, OtherRenderViewHostRedirect) {
GURL http_url(kHttpUrl);
EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1);
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, http_url, false, false, render_view_host1());
+ main_render_frame1(), http_url, false, false);
// Another RenderViewHost sees a redirect. None of the reloader's functions
// should be called.
@@ -584,18 +566,16 @@ TEST_F(CaptivePortalTabHelperTest, OtherRenderViewHostRedirect) {
render_view_host2()->GetProcess()->GetID());
tab_helper().DidFailProvisionalLoad(main_render_frame1(),
- true,
https_url,
net::ERR_TIMED_OUT,
base::string16());
// Provisional load starts for the error page.
tab_helper().DidStartProvisionalLoadForFrame(
- 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1());
+ main_render_frame1(), GURL(kErrorPageUrl), true, false);
EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1);
tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame1(),
- true,
GURL(kErrorPageUrl),
content::PAGE_TRANSITION_LINK);
}
diff --git a/chrome/browser/chromeos/first_run/drive_first_run_controller.cc b/chrome/browser/chromeos/first_run/drive_first_run_controller.cc
index 832821a..ba5d12b 100644
--- a/chrome/browser/chromeos/first_run/drive_first_run_controller.cc
+++ b/chrome/browser/chromeos/first_run/drive_first_run_controller.cc
@@ -29,6 +29,7 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_source.h"
#include "content/public/browser/notification_types.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
@@ -153,7 +154,6 @@ class DriveWebContentsManager : public content::WebContentsObserver,
// content::WebContentsObserver overrides:
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
@@ -257,11 +257,10 @@ void DriveWebContentsManager::RunCompletionCallback(
void DriveWebContentsManager::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
- if (is_main_frame) {
+ if (!render_frame_host->GetParent()) {
LOG(WARNING) << "Failed to load WebContents to enable offline mode.";
OnOfflineInit(false,
DriveFirstRunController::OUTCOME_WEB_CONTENTS_LOAD_FAILED);
diff --git a/chrome/browser/chromeos/login/ui/webui_login_view.cc b/chrome/browser/chromeos/login/ui/webui_login_view.cc
index 3a97633..504e98a 100644
--- a/chrome/browser/chromeos/login/ui/webui_login_view.cc
+++ b/chrome/browser/chromeos/login/ui/webui_login_view.cc
@@ -425,7 +425,6 @@ bool WebUILoginView::PreHandleGestureEvent(
void WebUILoginView::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
diff --git a/chrome/browser/chromeos/login/ui/webui_login_view.h b/chrome/browser/chromeos/login/ui/webui_login_view.h
index 28a3277..2a040f9 100644
--- a/chrome/browser/chromeos/login/ui/webui_login_view.h
+++ b/chrome/browser/chromeos/login/ui/webui_login_view.h
@@ -144,7 +144,6 @@ class WebUILoginView : public views::View,
// Overridden from content::WebContentsObserver.
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
diff --git a/chrome/browser/content_settings/tab_specific_content_settings.cc b/chrome/browser/content_settings/tab_specific_content_settings.cc
index 7de878d..7353664 100644
--- a/chrome/browser/content_settings/tab_specific_content_settings.cc
+++ b/chrome/browser/content_settings/tab_specific_content_settings.cc
@@ -661,14 +661,11 @@ void TabSpecificContentSettings::DidNavigateMainFrame(
}
void TabSpecificContentSettings::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) {
- if (!is_main_frame)
+ bool is_iframe_srcdoc) {
+ if (render_frame_host->GetParent())
return;
// If we're displaying a network error page do not reset the content
diff --git a/chrome/browser/content_settings/tab_specific_content_settings.h b/chrome/browser/content_settings/tab_specific_content_settings.h
index 063faa9..4375eb7 100644
--- a/chrome/browser/content_settings/tab_specific_content_settings.h
+++ b/chrome/browser/content_settings/tab_specific_content_settings.h
@@ -290,13 +290,10 @@ class TabSpecificContentSettings
const content::LoadCommittedDetails& details,
const content::FrameNavigateParams& params) OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void AppCacheAccessed(const GURL& manifest_url,
bool blocked_by_policy) OVERRIDE;
diff --git a/chrome/browser/errorpage_browsertest.cc b/chrome/browser/errorpage_browsertest.cc
index bcc19d4..724e2a1 100644
--- a/chrome/browser/errorpage_browsertest.cc
+++ b/chrome/browser/errorpage_browsertest.cc
@@ -470,7 +470,6 @@ class TestFailProvisionalLoadObserver : public content::WebContentsObserver {
// This method is invoked when the provisional load failed.
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE {
diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.cc b/chrome/browser/extensions/api/identity/web_auth_flow.cc
index c4d1d88..0619381 100644
--- a/chrome/browser/extensions/api/identity/web_auth_flow.cc
+++ b/chrome/browser/extensions/api/identity/web_auth_flow.cc
@@ -22,7 +22,7 @@
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
#include "content/public/browser/notification_types.h"
-#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/resource_request_details.h"
#include "content/public/browser/web_contents.h"
#include "crypto/random.h"
@@ -208,20 +208,16 @@ void WebAuthFlow::RenderProcessGone(base::TerminationStatus status) {
}
void WebAuthFlow::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) {
- if (is_main_frame)
+ bool is_iframe_srcdoc) {
+ if (!render_frame_host->GetParent())
BeforeUrlLoaded(validated_url);
}
void WebAuthFlow::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.h b/chrome/browser/extensions/api/identity/web_auth_flow.h
index ece3963..0067c0e 100644
--- a/chrome/browser/extensions/api/identity/web_auth_flow.h
+++ b/chrome/browser/extensions/api/identity/web_auth_flow.h
@@ -108,16 +108,12 @@ class WebAuthFlow : public content::NotificationObserver,
const content::FrameNavigateParams& params) OVERRIDE;
virtual void RenderProcessGone(base::TerminationStatus status) OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
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 c9a680d..5adc817 100644
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
@@ -328,16 +328,15 @@ void WebNavigationTabObserver::AboutToNavigateRenderView(
}
void WebNavigationTabObserver::DidStartProvisionalLoadForFrame(
- int64 frame_num,
- int64 parent_frame_num,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) {
+ bool is_iframe_srcdoc) {
+ content::RenderViewHost* render_view_host =
+ render_frame_host->GetRenderViewHost();
DVLOG(2) << "DidStartProvisionalLoad("
<< "render_view_host=" << render_view_host
- << ", frame_num=" << frame_num
+ << ", frame_num=" << render_frame_host->GetRoutingID()
<< ", url=" << validated_url << ")";
if (!render_view_host_)
render_view_host_ = render_view_host;
@@ -345,9 +344,16 @@ void WebNavigationTabObserver::DidStartProvisionalLoadForFrame(
render_view_host != pending_render_view_host_)
return;
- FrameNavigationState::FrameID frame_id(frame_num, render_view_host);
+ // FIXME: FrameNavigationState and the associated helpers should probably be
+ // refactored to use RenderFrameHost directly instead.
+ FrameNavigationState::FrameID frame_id(render_frame_host->GetRoutingID(),
+ render_view_host);
FrameNavigationState::FrameID parent_frame_id(
- parent_frame_num, render_view_host);
+ render_frame_host->GetParent()
+ ? render_frame_host->GetParent()->GetRoutingID()
+ : -1,
+ render_view_host);
+ bool is_main_frame = !render_frame_host->GetParent();
navigation_state_.TrackFrame(frame_id,
parent_frame_id,
@@ -362,16 +368,15 @@ void WebNavigationTabObserver::DidStartProvisionalLoadForFrame(
helpers::DispatchOnBeforeNavigate(
web_contents(),
render_view_host->GetProcess()->GetID(),
- frame_num,
+ frame_id.frame_num,
is_main_frame,
- parent_frame_num,
+ parent_frame_id.frame_num,
navigation_state_.IsMainFrame(parent_frame_id),
navigation_state_.GetUrl(frame_id));
}
void WebNavigationTabObserver::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) {
content::RenderViewHost* render_view_host =
@@ -385,6 +390,7 @@ void WebNavigationTabObserver::DidCommitProvisionalLoadForFrame(
return;
FrameNavigationState::FrameID frame_id(render_frame_host->GetRoutingID(),
render_view_host);
+ bool is_main_frame = !render_frame_host->GetParent();
bool is_reference_fragment_navigation =
IsReferenceFragmentNavigation(frame_id, url);
@@ -449,7 +455,6 @@ void WebNavigationTabObserver::DidCommitProvisionalLoadForFrame(
void WebNavigationTabObserver::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
@@ -470,6 +475,8 @@ void WebNavigationTabObserver::DidFailProvisionalLoad(
FrameNavigationState::FrameID frame_id(render_frame_host->GetRoutingID(),
render_view_host);
+ bool is_main_frame = !render_frame_host->GetParent();
+
if (navigation_state_.CanSendEvents(frame_id)) {
helpers::DispatchOnErrorOccurred(web_contents(),
render_view_host->GetProcess()->GetID(),
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api.h b/chrome/browser/extensions/api/web_navigation/web_navigation_api.h
index 5eb1693..6b7526d 100644
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_api.h
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api.h
@@ -57,21 +57,16 @@ class WebNavigationTabObserver
virtual void AboutToNavigateRenderView(
content::RenderViewHost* render_view_host) OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_num,
- int64 parent_frame_num,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
index 851bc11..e4c3e07 100644
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
@@ -176,13 +176,10 @@ class DelayLoadStartAndExecuteJavascript
}
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE {
+ bool is_iframe_srcdoc) OVERRIDE {
if (validated_url != delay_url_ || !rvh_)
return;
@@ -192,7 +189,6 @@ class DelayLoadStartAndExecuteJavascript
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE {
if (script_was_executed_ && EndsWith(url.spec(), until_url_suffix_, true)) {
diff --git a/chrome/browser/guest_view/web_view/web_view_guest.cc b/chrome/browser/guest_view/web_view/web_view_guest.cc
index 9c80c48..c9e75d1 100644
--- a/chrome/browser/guest_view/web_view/web_view_guest.cc
+++ b/chrome/browser/guest_view/web_view/web_view_guest.cc
@@ -1011,14 +1011,13 @@ WebViewGuest::~WebViewGuest() {
void WebViewGuest::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) {
find_helper_.CancelAllFindSessions();
scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
args->SetString(guestview::kUrl, url.spec());
- args->SetBoolean(guestview::kIsTopLevel, is_main_frame);
+ args->SetBoolean(guestview::kIsTopLevel, !render_frame_host->GetParent());
args->SetInteger(webview::kInternalCurrentEntryIndex,
guest_web_contents()->GetController().GetCurrentEntryIndex());
args->SetInteger(webview::kInternalEntryCount,
@@ -1032,7 +1031,7 @@ void WebViewGuest::DidCommitProvisionalLoadForFrame(
current_zoom_factor_ = content::ZoomLevelToZoomFactor(
content::HostZoomMap::GetZoomLevel(guest_web_contents()));
- if (is_main_frame) {
+ if (!render_frame_host->GetParent()) {
chromevox_injected_ = false;
main_frame_id_ = render_frame_host->GetRoutingID();
}
@@ -1040,7 +1039,6 @@ void WebViewGuest::DidCommitProvisionalLoadForFrame(
void WebViewGuest::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
@@ -1048,20 +1046,17 @@ void WebViewGuest::DidFailProvisionalLoad(
std::string error_type(net::ErrorToString(error_code));
DCHECK(StartsWithASCII(error_type, "net::", true));
error_type.erase(0, 5);
- LoadAbort(is_main_frame, validated_url, error_type);
+ LoadAbort(!render_frame_host->GetParent(), validated_url, error_type);
}
void WebViewGuest::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) {
+ bool is_iframe_srcdoc) {
scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
args->SetString(guestview::kUrl, validated_url.spec());
- args->SetBoolean(guestview::kIsTopLevel, is_main_frame);
+ args->SetBoolean(guestview::kIsTopLevel, !render_frame_host->GetParent());
DispatchEvent(
new GuestViewBase::Event(webview::kEventLoadStart, args.Pass()));
}
diff --git a/chrome/browser/guest_view/web_view/web_view_guest.h b/chrome/browser/guest_view/web_view/web_view_guest.h
index 4c4966f..b79f9ef 100644
--- a/chrome/browser/guest_view/web_view/web_view_guest.h
+++ b/chrome/browser/guest_view/web_view/web_view_guest.h
@@ -346,23 +346,18 @@ class WebViewGuest : public GuestView<WebViewGuest>,
// WebContentsObserver implementation.
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DocumentLoadedInFrame(
int64 frame_id,
content::RenderViewHost* render_view_host) OVERRIDE;
diff --git a/chrome/browser/net/net_error_tab_helper.cc b/chrome/browser/net/net_error_tab_helper.cc
index 5ad08010..47512dd 100644
--- a/chrome/browser/net/net_error_tab_helper.cc
+++ b/chrome/browser/net/net_error_tab_helper.cc
@@ -93,16 +93,13 @@ void NetErrorTabHelper::DidStartNavigationToPendingEntry(
}
void NetErrorTabHelper::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) {
+ bool is_iframe_srcdoc) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
is_error_page_ = is_error_page;
@@ -110,12 +107,11 @@ void NetErrorTabHelper::DidStartProvisionalLoadForFrame(
void NetErrorTabHelper::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
// Resend status every time an error page commits; this is somewhat spammy,
@@ -134,13 +130,12 @@ void NetErrorTabHelper::DidCommitProvisionalLoadForFrame(
void NetErrorTabHelper::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
if (IsDnsError(error_code)) {
diff --git a/chrome/browser/net/net_error_tab_helper.h b/chrome/browser/net/net_error_tab_helper.h
index fa4b9fa..195c8fa 100644
--- a/chrome/browser/net/net_error_tab_helper.h
+++ b/chrome/browser/net/net_error_tab_helper.h
@@ -51,23 +51,18 @@ class NetErrorTabHelper
content::NavigationController::ReloadType reload_type) OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
diff --git a/chrome/browser/net/net_error_tab_helper_unittest.cc b/chrome/browser/net/net_error_tab_helper_unittest.cc
index f6023e7..3a98799 100644
--- a/chrome/browser/net/net_error_tab_helper_unittest.cc
+++ b/chrome/browser/net/net_error_tab_helper_unittest.cc
@@ -4,19 +4,15 @@
#include "chrome/browser/net/net_error_tab_helper.h"
-#include "base/message_loop/message_loop.h"
#include "chrome/common/net/net_error_info.h"
+#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/page_transition_types.h"
-#include "content/public/test/test_browser_thread.h"
#include "net/base/net_errors.h"
#include "testing/gtest/include/gtest/gtest.h"
-using base::MessageLoop;
using chrome_browser_net::NetErrorTabHelper;
using chrome_common_net::DnsProbeStatus;
-using content::BrowserThread;
-using content::TestBrowserThread;
class TestNetErrorTabHelper : public NetErrorTabHelper {
public:
@@ -52,33 +48,33 @@ class TestNetErrorTabHelper : public NetErrorTabHelper {
int mock_sent_count_;
};
-class NetErrorTabHelperTest : public testing::Test {
+class NetErrorTabHelperTest : public ChromeRenderViewHostTestHarness {
protected:
enum MainFrame { SUB_FRAME, MAIN_FRAME };
enum ErrorPage { NORMAL_PAGE, ERROR_PAGE };
enum ErrorType { DNS_ERROR, OTHER_ERROR };
- NetErrorTabHelperTest()
- : fake_ui_thread_(BrowserThread::UI, &message_loop_) {
+ virtual void SetUp() OVERRIDE {
+ ChromeRenderViewHostTestHarness::SetUp();
+ subframe_ = content::RenderFrameHostTester::For(main_rfh())
+ ->AppendChild("subframe");
+
+ tab_helper_.reset(new TestNetErrorTabHelper);
NetErrorTabHelper::set_state_for_testing(
NetErrorTabHelper::TESTING_FORCE_ENABLED);
}
void StartProvisionalLoad(MainFrame main_frame, ErrorPage error_page) {
- tab_helper_.DidStartProvisionalLoadForFrame(
- 1, // frame_id
- 0, // parent_frame_id
- (main_frame == MAIN_FRAME),
+ tab_helper_->DidStartProvisionalLoadForFrame(
+ (main_frame == MAIN_FRAME) ? main_rfh() : subframe_,
bogus_url_, // validated_url
(error_page == ERROR_PAGE),
- false, // is_iframe_srcdoc
- NULL); // render_view_host
+ false); // is_iframe_srcdoc
}
void CommitProvisionalLoad(MainFrame main_frame) {
- tab_helper_.DidCommitProvisionalLoadForFrame(
- NULL, // render_frame_host, unused
- (main_frame == MAIN_FRAME),
+ tab_helper_->DidCommitProvisionalLoadForFrame(
+ (main_frame == MAIN_FRAME) ? main_rfh() : subframe_,
bogus_url_, // url
content::PAGE_TRANSITION_TYPED);
}
@@ -91,25 +87,22 @@ class NetErrorTabHelperTest : public testing::Test {
else
net_error = net::ERR_TIMED_OUT;
- tab_helper_.DidFailProvisionalLoad(NULL, // render_frame_host, unused
- (main_frame == MAIN_FRAME),
- bogus_url_, // validated_url
- net_error,
- base::string16());
+ tab_helper_->DidFailProvisionalLoad(
+ (main_frame == MAIN_FRAME) ? main_rfh() : subframe_,
+ bogus_url_, // validated_url
+ net_error,
+ base::string16());
}
- void FinishProbe(DnsProbeStatus status) {
- tab_helper_.FinishProbe(status);
- }
+ void FinishProbe(DnsProbeStatus status) { tab_helper_->FinishProbe(status); }
- bool probe_running() { return tab_helper_.mock_probe_running(); }
- DnsProbeStatus last_status_sent() { return tab_helper_.last_status_sent(); }
- int sent_count() { return tab_helper_.mock_sent_count(); }
+ bool probe_running() { return tab_helper_->mock_probe_running(); }
+ DnsProbeStatus last_status_sent() { return tab_helper_->last_status_sent(); }
+ int sent_count() { return tab_helper_->mock_sent_count(); }
private:
- MessageLoop message_loop_;
- TestBrowserThread fake_ui_thread_;
- TestNetErrorTabHelper tab_helper_;
+ content::RenderFrameHost* subframe_;
+ scoped_ptr<TestNetErrorTabHelper> tab_helper_;
GURL bogus_url_;
};
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc
index 44a738c..14d0001 100644
--- a/chrome/browser/prerender/prerender_contents.cc
+++ b/chrome/browser/prerender/prerender_contents.cc
@@ -626,14 +626,11 @@ void PrerenderContents::DocumentLoadedInFrame(
}
void PrerenderContents::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) {
- if (is_main_frame) {
+ bool is_iframe_srcdoc) {
+ if (!render_frame_host->GetParent()) {
if (!CheckURL(validated_url))
return;
@@ -649,10 +646,9 @@ void PrerenderContents::DidStartProvisionalLoadForFrame(
void PrerenderContents::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) {
- if (is_main_frame) {
+ if (!render_frame_host->GetParent()) {
main_frame_id_ = render_frame_host->GetRoutingID();
}
}
diff --git a/chrome/browser/prerender/prerender_contents.h b/chrome/browser/prerender/prerender_contents.h
index c9c04f1..d69a0e0 100644
--- a/chrome/browser/prerender/prerender_contents.h
+++ b/chrome/browser/prerender/prerender_contents.h
@@ -212,16 +212,12 @@ class PrerenderContents : public content::NotificationObserver,
virtual void DocumentLoadedInFrame(
int64 frame_id, content::RenderViewHost* render_view_host) OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
virtual void DidFinishLoad(
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index 4f0c0ed..2bb52c9 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -1124,21 +1124,19 @@ void PrerenderManager::PendingSwap::ProvisionalChangeToMainFrameUrl(
void PrerenderManager::PendingSwap::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
content::PageTransition transition_type) {
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
prerender_data_->ClearPendingSwap();
}
void PrerenderManager::PendingSwap::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
prerender_data_->ClearPendingSwap();
}
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h
index 8417864..35c6a5c 100644
--- a/chrome/browser/prerender/prerender_manager.h
+++ b/chrome/browser/prerender/prerender_manager.h
@@ -493,12 +493,10 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
content::RenderFrameHost* render_frame_host) OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
content::PageTransition transition_type) OVERRIDE;
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
diff --git a/chrome/browser/prerender/prerender_tab_helper.cc b/chrome/browser/prerender/prerender_tab_helper.cc
index 0736b98..64b9a39 100644
--- a/chrome/browser/prerender/prerender_tab_helper.cc
+++ b/chrome/browser/prerender/prerender_tab_helper.cc
@@ -15,7 +15,7 @@
#include "components/password_manager/core/browser/password_manager.h"
#include "content/public/browser/navigation_details.h"
#include "content/public/browser/navigation_entry.h"
-#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/frame_navigate_params.h"
@@ -98,10 +98,9 @@ void PrerenderTabHelper::ProvisionalChangeToMainFrameUrl(
void PrerenderTabHelper::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
content::PageTransition transition_type) {
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
RecordEvent(EVENT_MAINFRAME_COMMIT);
RecordEventIfLoggedInURL(EVENT_MAINFRAME_COMMIT_DOMAIN_LOGGED_IN,
@@ -157,14 +156,11 @@ void PrerenderTabHelper::DidStopLoading(
}
void PrerenderTabHelper::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
- const GURL& validated_url,
- bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) {
- if (!is_main_frame)
+ content::RenderFrameHost* render_frame_host,
+ const GURL& validated_url,
+ bool is_error_page,
+ bool is_iframe_srcdoc) {
+ if (render_frame_host->GetParent())
return;
// Record PPLT state for the beginning of a new navigation.
diff --git a/chrome/browser/prerender/prerender_tab_helper.h b/chrome/browser/prerender/prerender_tab_helper.h
index 119270e..260091d 100644
--- a/chrome/browser/prerender/prerender_tab_helper.h
+++ b/chrome/browser/prerender/prerender_tab_helper.h
@@ -57,16 +57,12 @@ class PrerenderTabHelper
virtual void DidStopLoading(
content::RenderViewHost* render_view_host) OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
content::PageTransition transition_type) OVERRIDE;
diff --git a/chrome/browser/signin/signin_browsertest.cc b/chrome/browser/signin/signin_browsertest.cc
index fe5718a..623abdc 100644
--- a/chrome/browser/signin/signin_browsertest.cc
+++ b/chrome/browser/signin/signin_browsertest.cc
@@ -185,7 +185,6 @@ class BackOnNTPCommitObserver : public content::WebContentsObserver {
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE {
if (url == GURL(chrome::kChromeUINewTabURL) ||
diff --git a/chrome/browser/ssl/ssl_browser_tests.cc b/chrome/browser/ssl/ssl_browser_tests.cc
index ef2ee5b..54f6147 100644
--- a/chrome/browser/ssl/ssl_browser_tests.cc
+++ b/chrome/browser/ssl/ssl_browser_tests.cc
@@ -78,7 +78,6 @@ class ProvisionalLoadWaiter : public content::WebContentsObserver {
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE {
diff --git a/chrome/browser/supervised_user/supervised_user_navigation_observer.cc b/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
index aa61685..288f940 100644
--- a/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
+++ b/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
@@ -23,8 +23,8 @@
#include "components/infobars/core/infobar.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/navigation_entry.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
-#include "content/public/browser/render_view_host.h"
#include "content/public/browser/user_metrics.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
@@ -194,10 +194,9 @@ void SupervisedUserNavigationObserver::ProvisionalChangeToMainFrameUrl(
void SupervisedUserNavigationObserver::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) {
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
DVLOG(1) << "DidCommitProvisionalLoadForFrame " << url.spec();
diff --git a/chrome/browser/supervised_user/supervised_user_navigation_observer.h b/chrome/browser/supervised_user/supervised_user_navigation_observer.h
index 2097b10..89307f0 100644
--- a/chrome/browser/supervised_user/supervised_user_navigation_observer.h
+++ b/chrome/browser/supervised_user/supervised_user_navigation_observer.h
@@ -56,7 +56,6 @@ class SupervisedUserNavigationObserver
content::RenderFrameHost* render_frame_host) OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
diff --git a/chrome/browser/translate/translate_manager_render_view_host_unittest.cc b/chrome/browser/translate/translate_manager_render_view_host_unittest.cc
index ac0e1f4..3d34269 100644
--- a/chrome/browser/translate/translate_manager_render_view_host_unittest.cc
+++ b/chrome/browser/translate/translate_manager_render_view_host_unittest.cc
@@ -870,13 +870,18 @@ TEST_F(TranslateManagerRenderViewHostTest, CloseInfoBarInSubframeNavigation) {
EXPECT_TRUE(CloseTranslateInfoBar());
+ content::RenderFrameHostTester* subframe_tester =
+ content::RenderFrameHostTester::For(
+ content::RenderFrameHostTester::For(main_rfh())
+ ->AppendChild("subframe"));
+
// Simulate a sub-frame auto-navigating.
- rvh_tester()->SendNavigateWithTransition(
+ subframe_tester->SendNavigateWithTransition(
1, GURL("http://pub.com"), content::PAGE_TRANSITION_AUTO_SUBFRAME);
EXPECT_TRUE(GetTranslateInfoBar() == NULL);
// Simulate the user navigating in a sub-frame.
- rvh_tester()->SendNavigateWithTransition(
+ subframe_tester->SendNavigateWithTransition(
2, GURL("http://pub.com"), content::PAGE_TRANSITION_MANUAL_SUBFRAME);
EXPECT_TRUE(GetTranslateInfoBar() == NULL);
diff --git a/chrome/browser/ui/search/instant_page.cc b/chrome/browser/ui/search/instant_page.cc
index 4bcafb2..2e2fa1e 100644
--- a/chrome/browser/ui/search/instant_page.cc
+++ b/chrome/browser/ui/search/instant_page.cc
@@ -15,6 +15,7 @@
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/frame_navigate_params.h"
@@ -68,11 +69,11 @@ bool InstantPage::ShouldProcessAboutToNavigateMainFrame() {
}
void InstantPage::DidCommitProvisionalLoadForFrame(
- content::RenderFrameHost* /* render_frame_host */,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& url,
content::PageTransition /* transition_type */) {
- if (is_main_frame && ShouldProcessAboutToNavigateMainFrame())
+ if (!render_frame_host->GetParent() &&
+ ShouldProcessAboutToNavigateMainFrame())
delegate_->InstantPageAboutToNavigateMainFrame(contents(), url);
}
diff --git a/chrome/browser/ui/search/instant_page.h b/chrome/browser/ui/search/instant_page.h
index 9d55d6a2..83496c4 100644
--- a/chrome/browser/ui/search/instant_page.h
+++ b/chrome/browser/ui/search/instant_page.h
@@ -104,7 +104,6 @@ class InstantPage : public content::WebContentsObserver,
// Overridden from content::WebContentsObserver:
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc
index 648658c..6655e83b 100644
--- a/chrome/browser/ui/search/search_tab_helper.cc
+++ b/chrome/browser/ui/search/search_tab_helper.cc
@@ -39,6 +39,7 @@
#include "content/public/browser/navigation_type.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/user_metrics.h"
#include "content/public/browser/web_contents.h"
@@ -324,15 +325,13 @@ void SearchTabHelper::DidNavigateMainFrame(
}
void SearchTabHelper::DidFailProvisionalLoad(
- content::RenderFrameHost* /* render_frame_host */,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
int error_code,
const base::string16& /* error_description */) {
// If error_code is ERR_ABORTED means that the user has canceled this
// navigation so it shouldn't be redirected.
- if (is_main_frame &&
- error_code != net::ERR_ABORTED &&
+ if (!render_frame_host->GetParent() && error_code != net::ERR_ABORTED &&
validated_url != GURL(chrome::kChromeSearchLocalNtpUrl) &&
chrome::IsNTPURL(validated_url, profile())) {
RedirectToLocalNTP();
diff --git a/chrome/browser/ui/search/search_tab_helper.h b/chrome/browser/ui/search/search_tab_helper.h
index 579b20e..e1314e5 100644
--- a/chrome/browser/ui/search/search_tab_helper.h
+++ b/chrome/browser/ui/search/search_tab_helper.h
@@ -151,7 +151,6 @@ class SearchTabHelper : public content::WebContentsObserver,
const content::FrameNavigateParams& params) OVERRIDE;
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
diff --git a/chrome/browser/ui/search/search_tab_helper_unittest.cc b/chrome/browser/ui/search/search_tab_helper_unittest.cc
index 893a44c..ed2068c 100644
--- a/chrome/browser/ui/search/search_tab_helper_unittest.cc
+++ b/chrome/browser/ui/search/search_tab_helper_unittest.cc
@@ -286,13 +286,10 @@ class TabTitleObserver : public content::WebContentsObserver {
private:
virtual void DidStartProvisionalLoadForFrame(
- int64 /* frame_id */,
- int64 /* parent_frame_id */,
- bool /* is_main_frame */,
+ content::RenderFrameHost* /* render_frame_host */,
const GURL& /* validated_url */,
bool /* is_error_page */,
- bool /* is_iframe_srcdoc */,
- content::RenderViewHost* /* render_view_host */) OVERRIDE {
+ bool /* is_iframe_srcdoc */) OVERRIDE {
title_on_start_ = web_contents()->GetTitle();
}
@@ -354,7 +351,7 @@ TEST_F(SearchTabHelperWindowTest, OnProvisionalLoadFailRedirectNTPToLocal) {
// NTP.
const GURL cacheableNTPURL = chrome::GetNewTabPageURL(profile());
search_tab_helper->DidFailProvisionalLoad(
- NULL, true, cacheableNTPURL, 1, base::string16());
+ contents->GetMainFrame(), cacheableNTPURL, 1, base::string16());
CommitPendingLoad(controller);
EXPECT_EQ(GURL(chrome::kChromeSearchLocalNtpUrl),
controller->GetLastCommittedEntry()->GetURL());
@@ -373,8 +370,10 @@ TEST_F(SearchTabHelperWindowTest, OnProvisionalLoadFailDontRedirectIfAborted) {
// A failed provisional load of a cacheable NTP should be redirected to local
// NTP.
const GURL cacheableNTPURL = chrome::GetNewTabPageURL(profile());
- search_tab_helper->DidFailProvisionalLoad(
- NULL, true, cacheableNTPURL, net::ERR_ABORTED, base::string16());
+ search_tab_helper->DidFailProvisionalLoad(contents->GetMainFrame(),
+ cacheableNTPURL,
+ net::ERR_ABORTED,
+ base::string16());
CommitPendingLoad(controller);
EXPECT_EQ(GURL("chrome://blank"),
controller->GetLastCommittedEntry()->GetURL());
@@ -391,8 +390,10 @@ TEST_F(SearchTabHelperWindowTest, OnProvisionalLoadFailDontRedirectNonNTP) {
ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
// Any other web page shouldn't be redirected when provisional load fails.
- search_tab_helper->DidFailProvisionalLoad(
- NULL, true, GURL("http://www.example.com"), 1, base::string16());
+ search_tab_helper->DidFailProvisionalLoad(contents->GetMainFrame(),
+ GURL("http://www.example.com"),
+ 1,
+ base::string16());
CommitPendingLoad(controller);
EXPECT_NE(GURL(chrome::kChromeSearchLocalNtpUrl),
controller->GetLastCommittedEntry()->GetURL());
diff --git a/chrome/browser/ui/sync/one_click_signin_helper.cc b/chrome/browser/ui/sync/one_click_signin_helper.cc
index bf9ff93..ef60eee 100644
--- a/chrome/browser/ui/sync/one_click_signin_helper.cc
+++ b/chrome/browser/ui/sync/one_click_signin_helper.cc
@@ -71,6 +71,7 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/page_navigator.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_delegate.h"
@@ -441,7 +442,6 @@ class CurrentHistoryCleaner : public content::WebContentsObserver {
virtual void WebContentsDestroyed() OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
@@ -463,11 +463,10 @@ CurrentHistoryCleaner::~CurrentHistoryCleaner() {
void CurrentHistoryCleaner::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) {
// Return early if this is not top-level navigation.
- if (!is_main_frame)
+ if (render_frame_host->GetParent())
return;
content::NavigationController* nc = &web_contents()->GetController();
diff --git a/chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc b/chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc
index a9c8cc4..a21d6d0 100644
--- a/chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/mobile_setup_ui.cc
@@ -638,7 +638,6 @@ MobileSetupUI::MobileSetupUI(content::WebUI* web_ui)
void MobileSetupUI::DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) {
if (render_frame_host->GetFrameName() != "paymentForm")
@@ -650,7 +649,6 @@ void MobileSetupUI::DidCommitProvisionalLoadForFrame(
void MobileSetupUI::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
diff --git a/chrome/browser/ui/webui/chromeos/mobile_setup_ui.h b/chrome/browser/ui/webui/chromeos/mobile_setup_ui.h
index e34565c..b705ff9 100644
--- a/chrome/browser/ui/webui/chromeos/mobile_setup_ui.h
+++ b/chrome/browser/ui/webui/chromeos/mobile_setup_ui.h
@@ -21,12 +21,10 @@ class MobileSetupUI : public content::WebUIController,
// content::WebContentsObserver overrides.
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE;
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
diff --git a/chrome/browser/ui/webui/options/options_ui.cc b/chrome/browser/ui/webui/options/options_ui.cc
index ac8e2838..5d57734 100644
--- a/chrome/browser/ui/webui/options/options_ui.cc
+++ b/chrome/browser/ui/webui/options/options_ui.cc
@@ -51,7 +51,7 @@
#include "chrome/browser/ui/webui/theme_source.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/notification_types.h"
-#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/url_data_source.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_delegate.h"
@@ -400,14 +400,12 @@ base::RefCountedMemory* OptionsUI::GetFaviconResourceBytes(
}
void OptionsUI::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) {
- if (render_view_host == web_ui()->GetWebContents()->GetRenderViewHost() &&
+ bool is_iframe_srcdoc) {
+ if (render_frame_host->GetRenderViewHost() ==
+ web_ui()->GetWebContents()->GetRenderViewHost() &&
validated_url.host() == chrome::kChromeUISettingsFrameHost) {
for (size_t i = 0; i < handlers_.size(); ++i)
handlers_[i]->PageLoadStarted();
diff --git a/chrome/browser/ui/webui/options/options_ui.h b/chrome/browser/ui/webui/options/options_ui.h
index b6ecda5..338bf47 100644
--- a/chrome/browser/ui/webui/options/options_ui.h
+++ b/chrome/browser/ui/webui/options/options_ui.h
@@ -133,13 +133,10 @@ class OptionsUI : public content::WebUIController,
// Overridden from content::WebContentsObserver:
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
// Overridden from OptionsPageUIHandlerHost:
virtual void InitializeHandlers() OVERRIDE;
diff --git a/chrome/test/base/in_process_browser_test_browsertest.cc b/chrome/test/base/in_process_browser_test_browsertest.cc
index 0a4570c..54f6cb4 100644
--- a/chrome/test/base/in_process_browser_test_browsertest.cc
+++ b/chrome/test/base/in_process_browser_test_browsertest.cc
@@ -39,7 +39,6 @@ class LoadFailObserver : public content::WebContentsObserver {
virtual void DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE {
diff --git a/components/dom_distiller/content/distiller_page_web_contents_browsertest.cc b/components/dom_distiller/content/distiller_page_web_contents_browsertest.cc
index c91f649..884a751 100644
--- a/components/dom_distiller/content/distiller_page_web_contents_browsertest.cc
+++ b/components/dom_distiller/content/distiller_page_web_contents_browsertest.cc
@@ -139,12 +139,11 @@ class WebContentsMainFrameHelper : public content::WebContentsObserver {
virtual void DidCommitProvisionalLoadForFrame(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
content::PageTransition transition_type) OVERRIDE {
if (wait_for_document_loaded_)
return;
- if (is_main_frame)
+ if (!render_frame_host->GetParent())
callback_.Run();
}
diff --git a/content/browser/android/web_contents_observer_android.cc b/content/browser/android/web_contents_observer_android.cc
index 62a2184..7cccf16 100644
--- a/content/browser/android/web_contents_observer_android.cc
+++ b/content/browser/android/web_contents_observer_android.cc
@@ -98,12 +98,14 @@ void WebContentsObserverAndroid::DidStopLoading(
void WebContentsObserverAndroid::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {
- DidFailLoadInternal(
- true, is_main_frame, error_code, error_description, validated_url);
+ DidFailLoadInternal(true,
+ !render_frame_host->GetParent(),
+ error_code,
+ error_description,
+ validated_url);
}
void WebContentsObserverAndroid::DidFailLoad(
@@ -167,27 +169,33 @@ void WebContentsObserverAndroid::DidNavigateAnyFrame(
}
void WebContentsObserverAndroid::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
- const GURL& validated_url,
- bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) {
+ RenderFrameHost* render_frame_host,
+ const GURL& validated_url,
+ bool is_error_page,
+ bool is_iframe_srcdoc) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env));
if (obj.is_null())
return;
ScopedJavaLocalRef<jstring> jstring_url(
ConvertUTF8ToJavaString(env, validated_url.spec()));
+ // TODO(dcheng): Does Java really need the parent frame ID? It doesn't appear
+ // to be used at all, and it just adds complexity here.
Java_WebContentsObserverAndroid_didStartProvisionalLoadForFrame(
- env, obj.obj(), frame_id, parent_frame_id, is_main_frame,
- jstring_url.obj(), is_error_page, is_iframe_srcdoc);
+ env,
+ obj.obj(),
+ render_frame_host->GetRoutingID(),
+ render_frame_host->GetParent()
+ ? render_frame_host->GetParent()->GetRoutingID()
+ : -1,
+ !render_frame_host->GetParent(),
+ jstring_url.obj(),
+ is_error_page,
+ is_iframe_srcdoc);
}
void WebContentsObserverAndroid::DidCommitProvisionalLoadForFrame(
RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) {
JNIEnv* env = AttachCurrentThread();
@@ -200,7 +208,7 @@ void WebContentsObserverAndroid::DidCommitProvisionalLoadForFrame(
env,
obj.obj(),
render_frame_host->GetRoutingID(),
- is_main_frame,
+ !render_frame_host->GetParent(),
jstring_url.obj(),
transition_type);
}
diff --git a/content/browser/android/web_contents_observer_android.h b/content/browser/android/web_contents_observer_android.h
index 46a4517..1f771a6 100644
--- a/content/browser/android/web_contents_observer_android.h
+++ b/content/browser/android/web_contents_observer_android.h
@@ -37,8 +37,7 @@ class WebContentsObserverAndroid : public WebContentsObserver {
virtual void DidStartLoading(RenderViewHost* render_view_host) OVERRIDE;
virtual void DidStopLoading(RenderViewHost* render_view_host) OVERRIDE;
virtual void DidFailProvisionalLoad(
- content::RenderFrameHost* render_frame_host,
- bool is_main_frame,
+ RenderFrameHost* render_frame_host,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE;
@@ -54,16 +53,12 @@ class WebContentsObserverAndroid : public WebContentsObserver {
const FrameNavigateParams& params) OVERRIDE;
virtual void DidFirstVisuallyNonEmptyPaint() OVERRIDE;
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DidCommitProvisionalLoadForFrame(
RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) OVERRIDE;
virtual void DidFinishLoad(int64 frame_id,
diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc
index a5b7a18..5b88849 100644
--- a/content/browser/browser_plugin/browser_plugin_guest.cc
+++ b/content/browser/browser_plugin/browser_plugin_guest.cc
@@ -360,7 +360,6 @@ void BrowserPluginGuest::SendQueuedMessages() {
void BrowserPluginGuest::DidCommitProvisionalLoadForFrame(
RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) {
RecordAction(base::UserMetricsAction("BrowserPlugin.Guest.DidNavigate"));
diff --git a/content/browser/browser_plugin/browser_plugin_guest.h b/content/browser/browser_plugin/browser_plugin_guest.h
index c7d66f6..cfc2afa 100644
--- a/content/browser/browser_plugin/browser_plugin_guest.h
+++ b/content/browser/browser_plugin/browser_plugin_guest.h
@@ -147,7 +147,6 @@ class CONTENT_EXPORT BrowserPluginGuest : public WebContentsObserver {
// WebContentsObserver implementation.
virtual void DidCommitProvisionalLoadForFrame(
RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) OVERRIDE;
diff --git a/content/browser/frame_host/navigation_controller_impl_unittest.cc b/content/browser/frame_host/navigation_controller_impl_unittest.cc
index 9343108..ab4d7c5c1 100644
--- a/content/browser/frame_host/navigation_controller_impl_unittest.cc
+++ b/content/browser/frame_host/navigation_controller_impl_unittest.cc
@@ -2801,7 +2801,7 @@ TEST_F(NavigationControllerTest, RendererInitiatedPendingEntries) {
// We create pending entries for renderer-initiated navigations so that we
// can show them in new tabs when it is safe.
- navigator->DidStartProvisionalLoad(main_test_rfh(), -1, url1);
+ navigator->DidStartProvisionalLoad(main_test_rfh(), url1);
// Simulate what happens if a BrowserURLHandler rewrites the URL, causing
// the virtual URL to differ from the URL.
@@ -2815,7 +2815,7 @@ TEST_F(NavigationControllerTest, RendererInitiatedPendingEntries) {
is_renderer_initiated());
// If the user clicks another link, we should replace the pending entry.
- navigator->DidStartProvisionalLoad(main_test_rfh(), -1, url2);
+ navigator->DidStartProvisionalLoad(main_test_rfh(), url2);
EXPECT_EQ(url2, controller.GetPendingEntry()->GetURL());
EXPECT_EQ(url2, controller.GetPendingEntry()->GetVirtualURL());
@@ -2825,18 +2825,18 @@ TEST_F(NavigationControllerTest, RendererInitiatedPendingEntries) {
EXPECT_EQ(url2, controller.GetLastCommittedEntry()->GetVirtualURL());
// We should not replace the pending entry for an error URL.
- navigator->DidStartProvisionalLoad(main_test_rfh(), -1, url1);
+ navigator->DidStartProvisionalLoad(main_test_rfh(), url1);
EXPECT_EQ(url1, controller.GetPendingEntry()->GetURL());
- navigator->DidStartProvisionalLoad(
- main_test_rfh(), -1, GURL(kUnreachableWebDataURL));
+ navigator->DidStartProvisionalLoad(main_test_rfh(),
+ GURL(kUnreachableWebDataURL));
EXPECT_EQ(url1, controller.GetPendingEntry()->GetURL());
// We should remember if the pending entry will replace the current one.
// http://crbug.com/308444.
- navigator->DidStartProvisionalLoad(main_test_rfh(), -1, url1);
+ navigator->DidStartProvisionalLoad(main_test_rfh(), url1);
NavigationEntryImpl::FromNavigationEntry(controller.GetPendingEntry())->
set_should_replace_entry(true);
- navigator->DidStartProvisionalLoad(main_test_rfh(), -1, url2);
+ navigator->DidStartProvisionalLoad(main_test_rfh(), url2);
EXPECT_TRUE(
NavigationEntryImpl::FromNavigationEntry(controller.GetPendingEntry())->
should_replace_entry());
diff --git a/content/browser/frame_host/navigator.h b/content/browser/frame_host/navigator.h
index a64edeb..595329d 100644
--- a/content/browser/frame_host/navigator.h
+++ b/content/browser/frame_host/navigator.h
@@ -42,7 +42,6 @@ class CONTENT_EXPORT Navigator : public base::RefCounted<Navigator> {
// The RenderFrameHostImpl started a provisional load.
virtual void DidStartProvisionalLoad(RenderFrameHostImpl* render_frame_host,
- int parent_routing_id,
const GURL& url) {};
// The RenderFrameHostImpl has failed a provisional load.
diff --git a/content/browser/frame_host/navigator_delegate.h b/content/browser/frame_host/navigator_delegate.h
index ae910f4..56f10d7 100644
--- a/content/browser/frame_host/navigator_delegate.h
+++ b/content/browser/frame_host/navigator_delegate.h
@@ -29,7 +29,6 @@ class CONTENT_EXPORT NavigatorDelegate {
// represented by |render_frame_host|.
virtual void DidStartProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
- int parent_routing_id,
const GURL& validated_url,
bool is_error_page,
bool is_iframe_srcdoc) {}
@@ -54,7 +53,6 @@ class CONTENT_EXPORT NavigatorDelegate {
// A navigation was committed in |render_frame_host|.
virtual void DidCommitProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) {}
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc
index f321bdf..13523f6 100644
--- a/content/browser/frame_host/navigator_impl.cc
+++ b/content/browser/frame_host/navigator_impl.cc
@@ -143,7 +143,6 @@ NavigationController* NavigatorImpl::GetController() {
void NavigatorImpl::DidStartProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
- int parent_routing_id,
const GURL& url) {
bool is_error_page = (url.spec() == kUnreachableWebDataURL);
bool is_iframe_srcdoc = (url.spec() == kAboutSrcDocURL);
@@ -190,8 +189,7 @@ void NavigatorImpl::DidStartProvisionalLoad(
if (delegate_) {
// Notify the observer about the start of the provisional load.
delegate_->DidStartProvisionalLoad(
- render_frame_host, parent_routing_id,
- validated_url, is_error_page, is_iframe_srcdoc);
+ render_frame_host, validated_url, is_error_page, is_iframe_srcdoc);
}
}
@@ -501,11 +499,8 @@ void NavigatorImpl::DidNavigate(
// different from the NAV_ENTRY_COMMITTED notification which doesn't include
// the actual URL navigated to and isn't sent for AUTO_SUBFRAME navigations.
if (details.type != NAVIGATION_TYPE_NAV_IGNORE && delegate_) {
- // For AUTO_SUBFRAME navigations, an event for the main frame is generated
- // that is not recorded in the navigation history. For the purpose of
- // tracking navigation events, we treat this event as a sub frame navigation
- // event.
- bool is_main_frame = did_navigate ? details.is_main_frame : false;
+ DCHECK_EQ(!render_frame_host->GetParent(),
+ did_navigate ? details.is_main_frame : false);
PageTransition transition_type = params.transition;
// Whether or not a page transition was triggered by going backward or
// forward in the history is only stored in the navigation controller's
@@ -518,7 +513,6 @@ void NavigatorImpl::DidNavigate(
}
delegate_->DidCommitProvisionalLoad(render_frame_host,
- is_main_frame,
params.url,
transition_type);
}
diff --git a/content/browser/frame_host/navigator_impl.h b/content/browser/frame_host/navigator_impl.h
index 1aa9a60..ceb22e2 100644
--- a/content/browser/frame_host/navigator_impl.h
+++ b/content/browser/frame_host/navigator_impl.h
@@ -26,7 +26,6 @@ class CONTENT_EXPORT NavigatorImpl : public Navigator {
// Navigator implementation.
virtual NavigationController* GetController() OVERRIDE;
virtual void DidStartProvisionalLoad(RenderFrameHostImpl* render_frame_host,
- int parent_routing_id,
const GURL& url) OVERRIDE;
virtual void DidFailProvisionalLoadWithError(
RenderFrameHostImpl* render_frame_host,
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 5331fa8..f7f959e 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -403,10 +403,8 @@ void RenderFrameHostImpl::OnDocumentOnLoadCompleted() {
}
void RenderFrameHostImpl::OnDidStartProvisionalLoadForFrame(
- int parent_routing_id,
const GURL& url) {
- frame_tree_node_->navigator()->DidStartProvisionalLoad(
- this, parent_routing_id, url);
+ frame_tree_node_->navigator()->DidStartProvisionalLoad(this, url);
}
void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError(
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index 092b630..2d7036d 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -204,8 +204,7 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost {
void OnFrameFocused();
void OnOpenURL(const FrameHostMsg_OpenURL_Params& params);
void OnDocumentOnLoadCompleted();
- void OnDidStartProvisionalLoadForFrame(int parent_routing_id,
- const GURL& url);
+ void OnDidStartProvisionalLoadForFrame(const GURL& url);
void OnDidFailProvisionalLoadWithError(
const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params);
void OnDidFailLoadWithError(
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index 601d60e..f261e62 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -34,19 +34,15 @@ class SitePerProcessWebContentsObserver: public WebContentsObserver {
virtual ~SitePerProcessWebContentsObserver() {}
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) OVERRIDE {
+ bool is_iframe_srcdoc) OVERRIDE {
navigation_succeeded_ = false;
}
virtual void DidFailProvisionalLoad(
RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) OVERRIDE {
@@ -56,7 +52,6 @@ class SitePerProcessWebContentsObserver: public WebContentsObserver {
virtual void DidCommitProvisionalLoadForFrame(
RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) OVERRIDE {
navigation_url_ = url;
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 728b454..10f87e7 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -2332,22 +2332,17 @@ void WebContentsImpl::SetFocusToLocationBar(bool select_all) {
void WebContentsImpl::DidStartProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
- int parent_routing_id,
const GURL& validated_url,
bool is_error_page,
bool is_iframe_srcdoc) {
- bool is_main_frame = render_frame_host->frame_tree_node()->IsMainFrame();
-
// Notify observers about the start of the provisional load.
- int render_frame_id = render_frame_host->GetRoutingID();
- RenderViewHost* render_view_host = render_frame_host->render_view_host();
- FOR_EACH_OBSERVER(WebContentsObserver, observers_,
- DidStartProvisionalLoadForFrame(
- render_frame_id, parent_routing_id, is_main_frame,
- validated_url, is_error_page, is_iframe_srcdoc,
- render_view_host));
+ FOR_EACH_OBSERVER(
+ WebContentsObserver,
+ observers_,
+ DidStartProvisionalLoadForFrame(
+ render_frame_host, validated_url, is_error_page, is_iframe_srcdoc));
- if (is_main_frame) {
+ if (!render_frame_host->GetParent()) {
FOR_EACH_OBSERVER(
WebContentsObserver,
observers_,
@@ -2360,11 +2355,9 @@ void WebContentsImpl::DidFailProvisionalLoadWithError(
RenderFrameHostImpl* render_frame_host,
const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) {
GURL validated_url(params.url);
- bool is_main_frame = render_frame_host->frame_tree_node()->IsMainFrame();
FOR_EACH_OBSERVER(WebContentsObserver,
observers_,
DidFailProvisionalLoad(render_frame_host,
- is_main_frame,
validated_url,
params.error_code,
params.error_description));
@@ -2445,15 +2438,13 @@ void WebContentsImpl::DidRedirectProvisionalLoad(
void WebContentsImpl::DidCommitProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) {
// Notify observers about the commit of the provisional load.
- FOR_EACH_OBSERVER(
- WebContentsObserver,
- observers_,
- DidCommitProvisionalLoadForFrame(
- render_frame_host, is_main_frame, url, transition_type));
+ FOR_EACH_OBSERVER(WebContentsObserver,
+ observers_,
+ DidCommitProvisionalLoadForFrame(
+ render_frame_host, url, transition_type));
}
void WebContentsImpl::DidNavigateMainFramePreCommit(
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 849d691..7a7522a 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -453,7 +453,6 @@ class CONTENT_EXPORT WebContentsImpl
virtual void DidStartProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
- int parent_routing_id,
const GURL& validated_url,
bool is_error_page,
bool is_iframe_srcdoc) OVERRIDE;
@@ -471,7 +470,6 @@ class CONTENT_EXPORT WebContentsImpl
const GURL& validated_target_url) OVERRIDE;
virtual void DidCommitProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) OVERRIDE;
virtual void DidNavigateMainFramePreCommit(
diff --git a/content/browser/web_contents/web_contents_impl_unittest.cc b/content/browser/web_contents/web_contents_impl_unittest.cc
index b718146..84f3f4c 100644
--- a/content/browser/web_contents/web_contents_impl_unittest.cc
+++ b/content/browser/web_contents/web_contents_impl_unittest.cc
@@ -1116,8 +1116,10 @@ TEST_F(WebContentsImplTest, CrossSiteNavigationNotPreemptedByFrame) {
// Simulate a sub-frame navigation arriving and ensure the RVH is still
// waiting for a before unload response.
- orig_rvh->SendNavigateWithTransition(1, GURL("http://google.com/frame"),
- PAGE_TRANSITION_AUTO_SUBFRAME);
+ TestRenderFrameHost* child_rfh = static_cast<TestRenderFrameHost*>(
+ orig_rvh->main_render_frame_host()->AppendChild("subframe"));
+ child_rfh->SendNavigateWithTransition(
+ 1, GURL("http://google.com/frame"), PAGE_TRANSITION_AUTO_SUBFRAME);
EXPECT_TRUE(orig_rvh->is_waiting_for_beforeunload_ack());
// Now simulate the onbeforeunload approval and verify the navigation is
diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h
index c8c9d10..1b83f26 100644
--- a/content/common/frame_messages.h
+++ b/content/common/frame_messages.h
@@ -379,8 +379,7 @@ IPC_MESSAGE_ROUTED0(FrameHostMsg_Detach)
IPC_MESSAGE_ROUTED0(FrameHostMsg_FrameFocused)
// Sent when the renderer starts a provisional load for a frame.
-IPC_MESSAGE_ROUTED2(FrameHostMsg_DidStartProvisionalLoadForFrame,
- int32 /* parent_routing_id */,
+IPC_MESSAGE_ROUTED1(FrameHostMsg_DidStartProvisionalLoadForFrame,
GURL /* url */)
// Sent when the renderer fails a provisional load with an error.
diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h
index 24ce015..00701d2 100644
--- a/content/public/browser/web_contents_observer.h
+++ b/content/public/browser/web_contents_observer.h
@@ -127,13 +127,10 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener,
// Note that during a cross-process navigation, several provisional loads
// can be on-going in parallel.
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) {}
+ bool is_iframe_srcdoc) {}
// This method is invoked right after the DidStartProvisionalLoadForFrame if
// the provisional load affects the main frame, or if the provisional load
@@ -152,14 +149,12 @@ class CONTENT_EXPORT WebContentsObserver : public IPC::Listener,
// this signal without a prior DidStartProvisionalLoadForFrame signal.
virtual void DidCommitProvisionalLoadForFrame(
RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& url,
PageTransition transition_type) {}
// This method is invoked when the provisional load failed.
virtual void DidFailProvisionalLoad(
RenderFrameHost* render_frame_host,
- bool is_main_frame,
const GURL& validated_url,
int error_code,
const base::string16& error_description) {}
diff --git a/content/public/test/test_renderer_host.cc b/content/public/test/test_renderer_host.cc
index ca18244..70d7e66 100644
--- a/content/public/test/test_renderer_host.cc
+++ b/content/public/test/test_renderer_host.cc
@@ -30,6 +30,13 @@
namespace content {
+// RenderFrameHostTester ------------------------------------------------------
+
+// static
+RenderFrameHostTester* RenderFrameHostTester::For(RenderFrameHost* host) {
+ return static_cast<TestRenderFrameHost*>(host);
+}
+
// RenderViewHostTester -------------------------------------------------------
// static
diff --git a/content/public/test/test_renderer_host.h b/content/public/test/test_renderer_host.h
index 1641df5..a514d30 100644
--- a/content/public/test/test_renderer_host.h
+++ b/content/public/test/test_renderer_host.h
@@ -39,6 +39,30 @@ class TestRenderFrameHostFactory;
class TestRenderViewHostFactory;
class WebContents;
+// An interface and utility for driving tests of RenderFrameHost.
+class RenderFrameHostTester {
+ public:
+ // Retrieves the RenderFrameHostTester that drives the specified
+ // RenderFrameHost. The RenderFrameHost must have been created while
+ // RenderFrameHost testing was enabled; use a
+ // RenderViewHostTestEnabler instance (see below) to do this.
+ static RenderFrameHostTester* For(RenderFrameHost* host);
+
+ virtual ~RenderFrameHostTester() {}
+
+ // Gives tests access to RenderFrameHostImpl::OnCreateChild. The returned
+ // RenderFrameHost is owned by the parent RenderFrameHost.
+ virtual RenderFrameHost* AppendChild(const std::string& frame_name) = 0;
+
+ // Calls OnMsgNavigate on the RenderViewHost with the given information,
+ // including a custom PageTransition. Sets the rest of the
+ // parameters in the message to the "typical" values. This is a helper
+ // function for simulating the most common types of loads.
+ virtual void SendNavigateWithTransition(int page_id,
+ const GURL& url,
+ PageTransition transition) = 0;
+};
+
// An interface and utility for driving tests of RenderViewHost.
class RenderViewHostTester {
public:
@@ -108,8 +132,8 @@ class RenderViewHostTester {
};
// You can instantiate only one class like this at a time. During its
-// lifetime, RenderViewHost objects created may be used via
-// RenderViewHostTester.
+// lifetime, RenderViewHost and RenderFrameHost objects created may be used via
+// RenderViewHostTester and RenderFrameHostTester respectively.
class RenderViewHostTestEnabler {
public:
RenderViewHostTestEnabler();
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index fb4eecb..6ccb9f5 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -1764,10 +1764,8 @@ void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame) {
DidStartProvisionalLoad(frame));
FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidStartProvisionalLoad());
- int parent_routing_id = frame->parent() ?
- FromWebFrame(frame->parent())->GetRoutingID() : -1;
- Send(new FrameHostMsg_DidStartProvisionalLoadForFrame(
- routing_id_, parent_routing_id, ds->request().url()));
+ Send(new FrameHostMsg_DidStartProvisionalLoadForFrame(routing_id_,
+ ds->request().url()));
}
void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad(
diff --git a/content/test/test_frame_navigation_observer.cc b/content/test/test_frame_navigation_observer.cc
index 83eb093..b9404ba 100644
--- a/content/test/test_frame_navigation_observer.cc
+++ b/content/test/test_frame_navigation_observer.cc
@@ -48,18 +48,12 @@ void TestFrameNavigationObserver::Wait() {
}
void TestFrameNavigationObserver::DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) {
- RenderFrameHostImpl* rfh = RenderFrameHostImpl::FromID(
- render_view_host->GetProcess()->GetID(), frame_id);
- if (!rfh)
- return;
-
+ bool is_iframe_srcdoc) {
+ RenderFrameHostImpl* rfh =
+ static_cast<RenderFrameHostImpl*>(render_frame_host);
if (rfh->frame_tree_node()->frame_tree_node_id() == frame_tree_node_id_)
navigation_started_ = true;
}
diff --git a/content/test/test_frame_navigation_observer.h b/content/test/test_frame_navigation_observer.h
index 4cccb34..386c4db 100644
--- a/content/test/test_frame_navigation_observer.h
+++ b/content/test/test_frame_navigation_observer.h
@@ -41,13 +41,10 @@ class TestFrameNavigationObserver : public WebContentsObserver {
private:
// WebContentsObserver
virtual void DidStartProvisionalLoadForFrame(
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ RenderFrameHost* render_frame_host,
const GURL& validated_url,
bool is_error_page,
- bool is_iframe_srcdoc,
- RenderViewHost* render_view_host) OVERRIDE;
+ bool is_iframe_srcdoc) OVERRIDE;
virtual void DidNavigateAnyFrame(
const LoadCommittedDetails& details,
const FrameNavigateParams& params) OVERRIDE;
diff --git a/content/test/test_render_frame_host.cc b/content/test/test_render_frame_host.cc
index 98408fb..f149831 100644
--- a/content/test/test_render_frame_host.cc
+++ b/content/test/test_render_frame_host.cc
@@ -5,11 +5,25 @@
#include "content/test/test_render_frame_host.h"
#include "content/browser/frame_host/frame_tree.h"
+#include "content/browser/frame_host/render_frame_host_delegate.h"
#include "content/common/frame_messages.h"
#include "content/test/test_render_view_host.h"
namespace content {
+TestRenderFrameHostCreationObserver::TestRenderFrameHostCreationObserver(
+ WebContents* web_contents)
+ : WebContentsObserver(web_contents), last_created_frame_(NULL) {
+}
+
+TestRenderFrameHostCreationObserver::~TestRenderFrameHostCreationObserver() {
+}
+
+void TestRenderFrameHostCreationObserver::RenderFrameCreated(
+ RenderFrameHost* render_frame_host) {
+ last_created_frame_ = render_frame_host;
+}
+
TestRenderFrameHost::TestRenderFrameHost(RenderViewHostImpl* render_view_host,
RenderFrameHostDelegate* delegate,
FrameTree* frame_tree,
@@ -22,6 +36,7 @@ TestRenderFrameHost::TestRenderFrameHost(RenderViewHostImpl* render_view_host,
frame_tree_node,
routing_id,
is_swapped_out),
+ child_creation_observer_(delegate ? delegate->GetAsWebContents() : NULL),
contents_mime_type_("text/html"),
simulate_history_list_was_cleared_(false) {
// Allow TestRenderViewHosts to easily access their main frame RFH.
@@ -33,8 +48,10 @@ TestRenderFrameHost::TestRenderFrameHost(RenderViewHostImpl* render_view_host,
TestRenderFrameHost::~TestRenderFrameHost() {}
-void TestRenderFrameHost::SendNavigate(int page_id, const GURL& url) {
- SendNavigateWithTransition(page_id, url, PAGE_TRANSITION_LINK);
+RenderFrameHost* TestRenderFrameHost::AppendChild(
+ const std::string& frame_name) {
+ OnCreateChildFrame(GetProcess()->GetNextRoutingID(), frame_name);
+ return child_creation_observer_.last_created_frame();
}
void TestRenderFrameHost::SendNavigateWithTransition(
@@ -44,6 +61,10 @@ void TestRenderFrameHost::SendNavigateWithTransition(
SendNavigateWithTransitionAndResponseCode(page_id, url, transition, 200);
}
+void TestRenderFrameHost::SendNavigate(int page_id, const GURL& url) {
+ SendNavigateWithTransition(page_id, url, PAGE_TRANSITION_LINK);
+}
+
void TestRenderFrameHost::SendFailedNavigate(int page_id, const GURL& url) {
SendNavigateWithTransitionAndResponseCode(
page_id, url, PAGE_TRANSITION_RELOAD, 500);
@@ -56,7 +77,7 @@ void TestRenderFrameHost::SendNavigateWithTransitionAndResponseCode(
// DidStartProvisionalLoad may delete the pending entry that holds |url|,
// so we keep a copy of it to use in SendNavigateWithParameters.
GURL url_copy(url);
- OnDidStartProvisionalLoadForFrame(-1, url_copy);
+ OnDidStartProvisionalLoadForFrame(url_copy);
SendNavigateWithParameters(page_id, url_copy, transition, url_copy,
response_code, 0, std::vector<GURL>());
}
@@ -65,7 +86,7 @@ void TestRenderFrameHost::SendNavigateWithOriginalRequestURL(
int page_id,
const GURL& url,
const GURL& original_request_url) {
- OnDidStartProvisionalLoadForFrame(-1, url);
+ OnDidStartProvisionalLoadForFrame(url);
SendNavigateWithParameters(page_id, url, PAGE_TRANSITION_LINK,
original_request_url, 200, 0, std::vector<GURL>());
}
@@ -80,7 +101,7 @@ void TestRenderFrameHost::SendNavigateWithFile(
void TestRenderFrameHost::SendNavigateWithParams(
FrameHostMsg_DidCommitProvisionalLoad_Params* params) {
- FrameHostMsg_DidCommitProvisionalLoad msg(1, *params);
+ FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), *params);
OnNavigate(msg);
}
@@ -132,7 +153,7 @@ void TestRenderFrameHost::SendNavigateWithParameters(
file_path_for_history_item ? "data" : NULL,
file_path_for_history_item);
- FrameHostMsg_DidCommitProvisionalLoad msg(1, params);
+ FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), params);
OnNavigate(msg);
}
diff --git a/content/test/test_render_frame_host.h b/content/test/test_render_frame_host.h
index 318c78f..8a8d0e5a 100644
--- a/content/test/test_render_frame_host.h
+++ b/content/test/test_render_frame_host.h
@@ -9,13 +9,30 @@
#include "base/basictypes.h"
#include "content/browser/frame_host/render_frame_host_impl.h"
+#include "content/public/browser/web_contents_observer.h"
#include "content/public/common/page_transition_types.h"
+#include "content/public/test/test_renderer_host.h"
struct FrameHostMsg_DidCommitProvisionalLoad_Params;
namespace content {
-class TestRenderFrameHost : public RenderFrameHostImpl {
+class TestRenderFrameHostCreationObserver : public WebContentsObserver {
+ public:
+ explicit TestRenderFrameHostCreationObserver(WebContents* web_contents);
+ virtual ~TestRenderFrameHostCreationObserver();
+
+ // WebContentsObserver implementation.
+ virtual void RenderFrameCreated(RenderFrameHost* render_frame_host) OVERRIDE;
+
+ RenderFrameHost* last_created_frame() const { return last_created_frame_; }
+
+ private:
+ RenderFrameHost* last_created_frame_;
+};
+
+class TestRenderFrameHost : public RenderFrameHostImpl,
+ public RenderFrameHostTester {
public:
TestRenderFrameHost(RenderViewHostImpl* render_view_host,
RenderFrameHostDelegate* delegate,
@@ -25,11 +42,13 @@ class TestRenderFrameHost : public RenderFrameHostImpl {
bool is_swapped_out);
virtual ~TestRenderFrameHost();
+ // RenderFrameHostTester implementation.
+ virtual RenderFrameHost* AppendChild(const std::string& frame_name) OVERRIDE;
+ virtual void SendNavigateWithTransition(int page_id,
+ const GURL& url,
+ PageTransition transition) OVERRIDE;
+
void SendNavigate(int page_id, const GURL& url);
- void SendNavigateWithTransition(
- int page_id,
- const GURL& url,
- PageTransition transition);
void SendFailedNavigate(int page_id, const GURL& url);
void SendNavigateWithTransitionAndResponseCode(
int page_id,
@@ -74,6 +93,8 @@ class TestRenderFrameHost : public RenderFrameHostImpl {
// here.
private:
+ TestRenderFrameHostCreationObserver child_creation_observer_;
+
std::string contents_mime_type_;
// See set_simulate_history_list_was_cleared() above.