Index: chrome/browser/tab_contents/web_contents_unittest.cc |
=================================================================== |
--- chrome/browser/tab_contents/web_contents_unittest.cc (revision 113025) |
+++ chrome/browser/tab_contents/web_contents_unittest.cc (working copy) |
@@ -4,19 +4,15 @@ |
#include "base/logging.h" |
#include "base/utf_string_conversions.h" |
-#include "chrome/browser/dom_operation_notification_details.h" |
#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/tab_contents/chrome_interstitial_page.h" |
-#include "chrome/common/chrome_notification_types.h" |
#include "chrome/common/pref_names.h" |
-#include "chrome/common/render_messages.h" |
-#include "chrome/common/url_constants.h" |
#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
#include "chrome/test/base/testing_pref_service.h" |
#include "chrome/test/base/testing_profile.h" |
#include "content/browser/renderer_host/render_view_host.h" |
#include "content/browser/renderer_host/render_widget_host_view.h" |
#include "content/browser/site_instance.h" |
+#include "content/browser/tab_contents/interstitial_page.h" |
#include "content/browser/tab_contents/navigation_details.h" |
#include "content/browser/tab_contents/navigation_entry.h" |
#include "content/browser/tab_contents/test_tab_contents.h" |
@@ -26,6 +22,7 @@ |
#include "content/public/browser/notification_source.h" |
#include "content/public/common/bindings_policy.h" |
#include "content/public/common/content_constants.h" |
+#include "content/public/common/url_constants.h" |
#include "content/test/test_browser_thread.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/base/message_box_flags.h" |
@@ -34,7 +31,7 @@ |
using content::BrowserThread; |
using webkit_glue::PasswordForm; |
-class TestInterstitialPage : public ChromeInterstitialPage { |
+class TestInterstitialPage : public InterstitialPage { |
public: |
enum InterstitialState { |
UNDECIDED = 0, // No decision taken yet. |
@@ -65,7 +62,7 @@ |
const GURL& url, |
InterstitialState* state, |
bool* deleted) |
- : ChromeInterstitialPage(tab, new_navigation, url), |
+ : InterstitialPage(tab, new_navigation, url), |
state_(state), |
deleted_(deleted), |
command_received_count_(0), |
@@ -97,10 +94,8 @@ |
} |
void TestDomOperationResponse(const std::string& json_string) { |
- DomOperationNotificationDetails details(json_string, 1); |
- Observe(chrome::NOTIFICATION_DOM_OPERATION_RESPONSE, |
- content::Source<RenderViewHost>(render_view_host()), |
- content::Details<DomOperationNotificationDetails>(&details)); |
+ if (enabled()) |
+ CommandReceived(json_string); |
} |
void TestDidNavigate(int page_id, const GURL& url) { |
@@ -257,9 +252,7 @@ |
EXPECT_TRUE(controller().GetActiveEntry()->site_instance() == NULL); |
// DidNavigate from the page |
- ViewHostMsg_FrameNavigate_Params params; |
- InitNavigateParams(¶ms, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(orig_rvh, contents()->render_view_host()); |
EXPECT_EQ(instance1, orig_rvh->site_instance()); |
@@ -293,9 +286,7 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(orig_rvh, contents()->render_view_host()); |
@@ -315,9 +306,8 @@ |
EXPECT_FALSE(pending_rvh->are_navigations_suspended()); |
// DidNavigate from the pending page |
- ViewHostMsg_FrameNavigate_Params params2; |
- InitNavigateParams(¶ms2, 1, url2, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(pending_rvh, params2); |
+ contents()->TestDidNavigate( |
+ pending_rvh, 1, url2, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance2 = contents()->GetSiteInstance(); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
@@ -342,7 +332,8 @@ |
EXPECT_FALSE(goback_rvh->are_navigations_suspended()); |
// DidNavigate from the back action |
- contents()->TestDidNavigate(goback_rvh, params1); |
+ contents()->TestDidNavigate( |
+ goback_rvh, 1, url2, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(goback_rvh, contents()->render_view_host()); |
EXPECT_EQ(instance1, contents()->GetSiteInstance()); |
@@ -370,9 +361,7 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(orig_rvh, contents()->render_view_host()); |
@@ -391,9 +380,7 @@ |
EXPECT_EQ(orig_rvh_delete_count, 1); |
// DidNavigate from the new page |
- ViewHostMsg_FrameNavigate_Params params2; |
- InitNavigateParams(¶ms2, 1, url2, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(new_rvh, params2); |
+ contents()->TestDidNavigate(new_rvh, 1, url2, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance2 = contents()->GetSiteInstance(); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
@@ -417,20 +404,18 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
// Open a new tab with the same SiteInstance, navigated to the same site. |
TestTabContents contents2(profile(), instance1); |
- params1.page_id = 2; // Need this since the site instance is the same (which |
- // is the scope of page IDs) and we want to consider |
- // this a new page. |
contents2.transition_cross_site = true; |
contents2.controller().LoadURL(url, content::Referrer(), |
content::PAGE_TRANSITION_TYPED, |
std::string()); |
- contents2.TestDidNavigate(contents2.render_view_host(), params1); |
+ // Need this page id to be 2 since the site instance is the same (which is the |
+ // scope of page IDs) and we want to consider this a new page. |
+ contents2.TestDidNavigate( |
+ contents2.render_view_host(), 2, url, content::PAGE_TRANSITION_TYPED); |
// Navigate first tab to a new site |
const GURL url2a("http://www.yahoo.com"); |
@@ -439,9 +424,8 @@ |
std::string()); |
orig_rvh->SendShouldCloseACK(true); |
TestRenderViewHost* pending_rvh_a = contents()->pending_rvh(); |
- ViewHostMsg_FrameNavigate_Params params2a; |
- InitNavigateParams(¶ms2a, 1, url2a, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(pending_rvh_a, params2a); |
+ contents()->TestDidNavigate( |
+ pending_rvh_a, 1, url2a, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance2a = contents()->GetSiteInstance(); |
EXPECT_NE(instance1, instance2a); |
@@ -460,10 +444,8 @@ |
// NOTE(creis): We used to be in danger of showing a sad tab page here if the |
// second tab hadn't navigated somewhere first (bug 1145430). That case is |
// now covered by the CrossSiteBoundariesAfterCrash test. |
- |
- ViewHostMsg_FrameNavigate_Params params2b; |
- InitNavigateParams(¶ms2b, 2, url2b, content::PAGE_TRANSITION_TYPED); |
- contents2.TestDidNavigate(pending_rvh_b, params2b); |
+ contents2.TestDidNavigate( |
+ pending_rvh_b, 2, url2b, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance2b = contents2.GetSiteInstance(); |
EXPECT_NE(instance1, instance2b); |
@@ -482,9 +464,8 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate( |
+ orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
// Open a related tab to a second site. |
TestTabContents contents2(profile(), instance1); |
@@ -498,18 +479,15 @@ |
TestRenderViewHost* rvh2 = static_cast<TestRenderViewHost*>( |
contents2.render_view_host()); |
EXPECT_FALSE(contents2.cross_navigation_pending()); |
- ViewHostMsg_FrameNavigate_Params params2; |
- InitNavigateParams(¶ms2, 2, url2, content::PAGE_TRANSITION_TYPED); |
- contents2.TestDidNavigate(rvh2, params2); |
+ contents2.TestDidNavigate(rvh2, 2, url2, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance2 = contents2.GetSiteInstance(); |
EXPECT_NE(instance1, instance2); |
EXPECT_FALSE(contents2.cross_navigation_pending()); |
// Simulate a link click in first tab to second site. Doesn't switch |
// SiteInstances, because we don't intercept WebKit navigations. |
- ViewHostMsg_FrameNavigate_Params params3; |
- InitNavigateParams(¶ms3, 2, url2, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params3); |
+ contents()->TestDidNavigate( |
+ orig_rvh, 2, url2, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance3 = contents()->GetSiteInstance(); |
EXPECT_EQ(instance1, instance3); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
@@ -520,9 +498,8 @@ |
controller().LoadURL( |
url3, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
- ViewHostMsg_FrameNavigate_Params params4; |
- InitNavigateParams(¶ms4, 3, url3, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params4); |
+ contents()->TestDidNavigate( |
+ orig_rvh, 3, url3, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance4 = contents()->GetSiteInstance(); |
EXPECT_EQ(instance1, instance4); |
} |
@@ -538,9 +515,7 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(orig_rvh, contents()->render_view_host()); |
@@ -569,9 +544,8 @@ |
// TabContents::OnCrossSiteResponse.) |
// DidNavigate from the pending page |
- ViewHostMsg_FrameNavigate_Params params2; |
- InitNavigateParams(¶ms2, 1, url2, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(pending_rvh, params2); |
+ contents()->TestDidNavigate( |
+ pending_rvh, 1, url2, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance2 = contents()->GetSiteInstance(); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(pending_rvh, rvh()); |
@@ -591,9 +565,7 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(orig_rvh, contents()->render_view_host()); |
@@ -625,9 +597,7 @@ |
controller().LoadURL( |
url1, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
TestRenderViewHost* ntp_rvh = rvh(); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url1, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(ntp_rvh, params1); |
+ contents()->TestDidNavigate(ntp_rvh, 1, url1, content::PAGE_TRANSITION_TYPED); |
NavigationEntry* entry1 = controller().GetLastCommittedEntry(); |
SiteInstance* instance1 = contents()->GetSiteInstance(); |
@@ -649,9 +619,8 @@ |
ntp_rvh->TestOnMessageReceived(ViewHostMsg_ShouldClose_ACK(0, true)); |
// DidNavigate from the pending page. |
- ViewHostMsg_FrameNavigate_Params params2; |
- InitNavigateParams(¶ms2, 1, url2, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(google_rvh, params2); |
+ contents()->TestDidNavigate( |
+ google_rvh, 1, url2, content::PAGE_TRANSITION_TYPED); |
NavigationEntry* entry2 = controller().GetLastCommittedEntry(); |
SiteInstance* instance2 = contents()->GetSiteInstance(); |
@@ -669,9 +638,8 @@ |
controller().LoadURL( |
url3, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
- ViewHostMsg_FrameNavigate_Params params3; |
- InitNavigateParams(¶ms3, 2, url3, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(google_rvh, params3); |
+ contents()->TestDidNavigate( |
+ google_rvh, 2, url3, content::PAGE_TRANSITION_TYPED); |
NavigationEntry* entry3 = controller().GetLastCommittedEntry(); |
SiteInstance* instance3 = contents()->GetSiteInstance(); |
@@ -698,7 +666,8 @@ |
google_rvh->TestOnMessageReceived(ViewHostMsg_ShouldClose_ACK(0, true)); |
// DidNavigate from the first back. This aborts the second back's pending RVH. |
- contents()->TestDidNavigate(google_rvh, params2); |
+ contents()->TestDidNavigate( |
+ google_rvh, 1, url2, content::PAGE_TRANSITION_TYPED); |
// We should commit this page and forget about the second back. |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
@@ -723,9 +692,7 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(orig_rvh, contents()->render_view_host()); |
@@ -778,9 +745,8 @@ |
EXPECT_FALSE(orig_rvh->is_waiting_for_beforeunload_ack()); |
// The pending navigation should be able to commit successfully. |
- ViewHostMsg_FrameNavigate_Params params2; |
- InitNavigateParams(¶ms2, 1, url2, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(pending_rvh, params2); |
+ contents()->TestDidNavigate( |
+ pending_rvh, 1, url2, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(pending_rvh, contents()->render_view_host()); |
} |
@@ -798,9 +764,7 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(orig_rvh, contents()->render_view_host()); |
@@ -831,9 +795,8 @@ |
EXPECT_TRUE(contents()->pending_rvh() != NULL); |
// DidNavigate from the pending page should commit it. |
- ViewHostMsg_FrameNavigate_Params params2; |
- InitNavigateParams(¶ms2, 1, url2, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(pending_rvh, params2); |
+ contents()->TestDidNavigate( |
+ pending_rvh, 1, url2, content::PAGE_TRANSITION_TYPED); |
SiteInstance* instance2 = contents()->GetSiteInstance(); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(pending_rvh, rvh()); |
@@ -852,9 +815,7 @@ |
const GURL url("http://www.google.com"); |
controller().LoadURL( |
url, content::Referrer(), content::PAGE_TRANSITION_TYPED, std::string()); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
EXPECT_FALSE(contents()->cross_navigation_pending()); |
EXPECT_EQ(orig_rvh, contents()->render_view_host()); |
@@ -898,9 +859,7 @@ |
EXPECT_TRUE(entry == NULL); |
// Committed entry should have content state after DidNavigate. |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
entry = controller().GetLastCommittedEntry(); |
EXPECT_FALSE(entry->content_state().empty()); |
@@ -912,15 +871,14 @@ |
EXPECT_FALSE(entry->content_state().empty()); |
// Committed entry should have content state after DidNavigate. |
- ViewHostMsg_FrameNavigate_Params params2; |
- InitNavigateParams(¶ms2, 2, url2, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params2); |
+ contents()->TestDidNavigate( |
+ orig_rvh, 2, url2, content::PAGE_TRANSITION_TYPED); |
entry = controller().GetLastCommittedEntry(); |
EXPECT_FALSE(entry->content_state().empty()); |
// Now go back. Committed entry should still have content state. |
controller().GoBack(); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
entry = controller().GetLastCommittedEntry(); |
EXPECT_FALSE(entry->content_state().empty()); |
} |
@@ -933,10 +891,8 @@ |
// When opening a new window, it is navigated to about:blank internally. |
// Currently, this results in two DidNavigate events. |
const GURL url(chrome::kAboutBlankURL); |
- ViewHostMsg_FrameNavigate_Params params1; |
- InitNavigateParams(¶ms1, 1, url, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(orig_rvh, params1); |
- contents()->TestDidNavigate(orig_rvh, params1); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
+ contents()->TestDidNavigate(orig_rvh, 1, url, content::PAGE_TRANSITION_TYPED); |
// Should have a content state here. |
NavigationEntry* entry = controller().GetLastCommittedEntry(); |
@@ -1703,9 +1659,7 @@ |
kGURL, content::Referrer(), content::PAGE_TRANSITION_TYPED, |
std::string()); |
// DidNavigate from the page |
- ViewHostMsg_FrameNavigate_Params params; |
- InitNavigateParams(¶ms, 1, kGURL, content::PAGE_TRANSITION_TYPED); |
- contents()->TestDidNavigate(rvh(), params); |
+ contents()->TestDidNavigate(rvh(), 1, kGURL, content::PAGE_TRANSITION_TYPED); |
// Simulate showing an interstitial while the page is showing. |
TestInterstitialPage::InterstitialState state = |