summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/external_tab_container_win.cc2
-rw-r--r--chrome/browser/net/gaia/gaia_oauth_fetcher.cc7
-rw-r--r--chrome/browser/rlz/rlz_unittest.cc4
-rw-r--r--chrome/browser/safe_browsing/browser_feature_extractor.cc4
-rw-r--r--chrome/browser/safe_browsing/malware_details.cc2
-rw-r--r--chrome/browser/safe_browsing/safe_browsing_service.cc2
-rw-r--r--chrome/browser/sessions/base_session_service.cc20
-rw-r--r--chrome/browser/sessions/session_service_test_helper.cc3
-rw-r--r--chrome/browser/sessions/session_service_unittest.cc49
-rw-r--r--chrome/browser/sessions/session_types.cc2
-rw-r--r--chrome/browser/sessions/session_types.h7
-rw-r--r--chrome/browser/sync/glue/session_model_associator.cc9
-rw-r--r--chrome/browser/sync/glue/session_model_associator_unittest.cc15
-rw-r--r--chrome/browser/sync/glue/synced_session_tracker_unittest.cc3
-rw-r--r--chrome/browser/sync/profile_sync_service_session_unittest.cc2
-rw-r--r--chrome/browser/sync/test/integration/sessions_helper.cc6
-rw-r--r--chrome/browser/ui/browser.cc2
-rw-r--r--chrome/browser/ui/browser_navigator.cc8
-rw-r--r--chrome/browser/ui/browser_navigator.h3
-rw-r--r--chrome/browser/ui/cocoa/history_menu_bridge_unittest.mm2
-rw-r--r--chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc2
-rw-r--r--content/browser/site_instance_unittest.cc9
-rw-r--r--content/browser/tab_contents/navigation_controller.cc11
-rw-r--r--content/browser/tab_contents/navigation_controller.h3
-rw-r--r--content/browser/tab_contents/navigation_controller_unittest.cc8
-rw-r--r--content/browser/tab_contents/navigation_entry.cc2
-rw-r--r--content/browser/tab_contents/navigation_entry.h9
-rw-r--r--content/browser/tab_contents/navigation_entry_unittest.cc22
-rw-r--r--content/browser/tab_contents/render_view_host_manager_unittest.cc32
-rw-r--r--content/browser/tab_contents/tab_contents.cc3
30 files changed, 146 insertions, 107 deletions
diff --git a/chrome/browser/external_tab_container_win.cc b/chrome/browser/external_tab_container_win.cc
index e08b3b9..267b483 100644
--- a/chrome/browser/external_tab_container_win.cc
+++ b/chrome/browser/external_tab_container_win.cc
@@ -948,7 +948,7 @@ bool ExternalTabContainer::InitNavigationInfo(NavigationInfo* nav_info,
nav_info->navigation_index =
tab_contents_->controller().GetCurrentEntryIndex();
nav_info->url = entry->url();
- nav_info->referrer = entry->referrer();
+ nav_info->referrer = entry->referrer().url;
nav_info->title = UTF16ToWideHack(entry->title());
if (nav_info->title.empty())
nav_info->title = UTF8ToWide(nav_info->url.spec());
diff --git a/chrome/browser/net/gaia/gaia_oauth_fetcher.cc b/chrome/browser/net/gaia/gaia_oauth_fetcher.cc
index ce7367f..4ede11e 100644
--- a/chrome/browser/net/gaia/gaia_oauth_fetcher.cc
+++ b/chrome/browser/net/gaia/gaia_oauth_fetcher.cc
@@ -282,7 +282,7 @@ namespace {
// Based on Browser::OpenURLFromTab
void OpenGetOAuthTokenURL(Browser* browser,
const GURL& url,
- const GURL& referrer,
+ const content::Referrer& referrer,
WindowOpenDisposition disposition,
content::PageTransition transition) {
browser::NavigateParams params(
@@ -292,7 +292,7 @@ void OpenGetOAuthTokenURL(Browser* browser,
params.source_contents =
browser->tabstrip_model()->GetTabContentsAt(
browser->tabstrip_model()->GetWrapperIndex(NULL));
- params.referrer = GURL("chrome://settings/personal");
+ params.referrer = referrer;
params.disposition = disposition;
params.tabstrip_add_types = TabStripModel::ADD_NONE;
params.window_action = browser::NavigateParams::SHOW_WINDOW;
@@ -317,7 +317,8 @@ void GaiaOAuthFetcher::StartGetOAuthToken() {
OpenGetOAuthTokenURL(browser,
MakeGetOAuthTokenUrl(GaiaUrls::GetInstance()->oauth1_login_scope(),
l10n_util::GetStringUTF8(IDS_PRODUCT_NAME)),
- GURL("chrome://settings/personal"),
+ content::Referrer(GURL("chrome://settings/personal"),
+ WebKit::WebReferrerPolicyDefault),
NEW_POPUP,
content::PAGE_TRANSITION_AUTO_BOOKMARK);
popup_ = BrowserList::GetLastActiveWithProfile(profile_);
diff --git a/chrome/browser/rlz/rlz_unittest.cc b/chrome/browser/rlz/rlz_unittest.cc
index 9e06fac..6253a9f 100644
--- a/chrome/browser/rlz/rlz_unittest.cc
+++ b/chrome/browser/rlz/rlz_unittest.cc
@@ -237,7 +237,7 @@ void RlzLibTest::SimulateOmniboxUsage() {
}
void RlzLibTest::SimulateHomepageUsage() {
- NavigationEntry entry(NULL, 0, GURL(), GURL(), string16(),
+ NavigationEntry entry(NULL, 0, GURL(), content::Referrer(), string16(),
content::PAGE_TRANSITION_HOME_PAGE, false);
tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING,
content::NotificationService::AllSources(),
@@ -580,7 +580,7 @@ TEST_F(RlzLibTest, PingUpdatesRlzCache) {
}
TEST_F(RlzLibTest, ObserveHandlesBadArgs) {
- NavigationEntry entry(NULL, 0, GURL(), GURL(), string16(),
+ NavigationEntry entry(NULL, 0, GURL(), content::Referrer(), string16(),
content::PAGE_TRANSITION_LINK, false);
tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING,
content::NotificationService::AllSources(),
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.cc b/chrome/browser/safe_browsing/browser_feature_extractor.cc
index 715cfdc..be9022d 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor.cc
+++ b/chrome/browser/safe_browsing/browser_feature_extractor.cc
@@ -51,12 +51,12 @@ static void AddNavigationFeatures(const std::string& feature_prefix,
const std::vector<GURL>& redirect_chain,
ClientPhishingRequest* request) {
NavigationEntry* entry = controller.GetEntryAtIndex(index);
- bool is_secure_referrer = entry->referrer().SchemeIsSecure();
+ bool is_secure_referrer = entry->referrer().url.SchemeIsSecure();
if (!is_secure_referrer) {
AddFeature(StringPrintf("%s%s=%s",
feature_prefix.c_str(),
features::kReferrer,
- entry->referrer().spec().c_str()),
+ entry->referrer().url.spec().c_str()),
1.0,
request);
}
diff --git a/chrome/browser/safe_browsing/malware_details.cc b/chrome/browser/safe_browsing/malware_details.cc
index 9455d90..4f6a346 100644
--- a/chrome/browser/safe_browsing/malware_details.cc
+++ b/chrome/browser/safe_browsing/malware_details.cc
@@ -168,7 +168,7 @@ void MalwareDetails::StartCollection() {
GURL referrer_url;
NavigationEntry* nav_entry = tab_contents()->controller().GetActiveEntry();
if (nav_entry) {
- referrer_url = nav_entry->referrer();
+ referrer_url = nav_entry->referrer().url;
if (IsPublicUrl(referrer_url)) {
report_->set_referrer_url(referrer_url.spec());
}
diff --git a/chrome/browser/safe_browsing/safe_browsing_service.cc b/chrome/browser/safe_browsing/safe_browsing_service.cc
index 4d404ce..f792476 100644
--- a/chrome/browser/safe_browsing/safe_browsing_service.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
@@ -1056,7 +1056,7 @@ void SafeBrowsingService::DoDisplayBlockingPage(
GURL referrer_url;
NavigationEntry* entry = tab_contents->controller().GetActiveEntry();
if (entry)
- referrer_url = entry->referrer();
+ referrer_url = entry->referrer().url;
// When the malicious url is on the main frame, and resource.original_url
// is not the same as the resource.url, that means we have a redirect from
diff --git a/chrome/browser/sessions/base_session_service.cc b/chrome/browser/sessions/base_session_service.cc
index 93e0826..36edcec 100644
--- a/chrome/browser/sessions/base_session_service.cc
+++ b/chrome/browser/sessions/base_session_service.cc
@@ -14,8 +14,11 @@
#include "chrome/browser/sessions/session_types.h"
#include "chrome/common/url_constants.h"
#include "content/browser/tab_contents/navigation_entry.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebReferrerPolicy.h"
#include "webkit/glue/webkit_glue.h"
+using WebKit::WebReferrerPolicy;
+
// InternalGetCommandsRequest -------------------------------------------------
BaseSessionService::InternalGetCommandsRequest::~InternalGetCommandsRequest() {
@@ -178,7 +181,9 @@ SessionCommand* BaseSessionService::CreateUpdateTabNavigationCommand(
pickle.WriteInt(type_mask);
WriteStringToPickle(pickle, &bytes_written, max_state_size,
- entry.referrer().is_valid() ? entry.referrer().spec() : std::string());
+ entry.referrer().url.is_valid() ?
+ entry.referrer().url.spec() : std::string());
+ pickle.WriteInt(entry.referrer().policy);
// Adding more data? Be sure and update TabRestoreService too.
return new SessionCommand(command_id, pickle);
@@ -229,8 +234,17 @@ bool BaseSessionService::RestoreUpdateTabNavigationCommand(
// stream. As such, we don't fail if it can't be read.
std::string referrer_spec;
pickle->ReadString(&iterator, &referrer_spec);
- if (!referrer_spec.empty())
- navigation->referrer_ = GURL(referrer_spec);
+ // The "referrer policy" property was added even later, so we fall back to
+ // the default policy if the property is not present.
+ int policy_int;
+ WebReferrerPolicy policy;
+ if (pickle->ReadInt(&iterator, &policy_int))
+ policy = static_cast<WebReferrerPolicy>(policy_int);
+ else
+ policy = WebKit::WebReferrerPolicyDefault;
+ navigation->referrer_ = content::Referrer(
+ referrer_spec.empty() ? GURL() : GURL(referrer_spec),
+ policy);
}
navigation->virtual_url_ = GURL(url_spec);
diff --git a/chrome/browser/sessions/session_service_test_helper.cc b/chrome/browser/sessions/session_service_test_helper.cc
index 11e1f43..24909d39 100644
--- a/chrome/browser/sessions/session_service_test_helper.cc
+++ b/chrome/browser/sessions/session_service_test_helper.cc
@@ -77,7 +77,8 @@ void SessionServiceTestHelper::AssertNavigationEquals(
const TabNavigation& expected,
const TabNavigation& actual) {
EXPECT_TRUE(expected.virtual_url() == actual.virtual_url());
- EXPECT_EQ(expected.referrer(), actual.referrer());
+ EXPECT_EQ(expected.referrer().url, actual.referrer().url);
+ EXPECT_EQ(expected.referrer().policy, actual.referrer().policy);
EXPECT_EQ(expected.title(), actual.title());
EXPECT_EQ(expected.state(), actual.state());
EXPECT_EQ(expected.transition(), actual.transition());
diff --git a/chrome/browser/sessions/session_service_unittest.cc b/chrome/browser/sessions/session_service_unittest.cc
index 75573db..f6cd26b 100644
--- a/chrome/browser/sessions/session_service_unittest.cc
+++ b/chrome/browser/sessions/session_service_unittest.cc
@@ -98,7 +98,8 @@ class SessionServiceTest : public BrowserWithTestWindowTest,
bool CreateAndWriteSessionWithOneTab(bool pinned_state, bool write_always) {
SessionID tab_id;
TabNavigation nav1(0, GURL("http://google.com"),
- GURL("http://www.referrer.com"),
+ content::Referrer(GURL("http://www.referrer.com"),
+ WebKit::WebReferrerPolicyDefault),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
@@ -146,7 +147,8 @@ TEST_F(SessionServiceTest, Basic) {
ASSERT_NE(window_id.id(), tab_id.id());
TabNavigation nav1(0, GURL("http://google.com"),
- GURL("http://www.referrer.com"),
+ content::Referrer(GURL("http://www.referrer.com"),
+ WebKit::WebReferrerPolicyDefault),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
@@ -174,7 +176,7 @@ TEST_F(SessionServiceTest, PersistPostData) {
SessionID tab_id;
ASSERT_NE(window_id.id(), tab_id.id());
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), std::string(),
content::PAGE_TRANSITION_QUALIFIER_MASK);
nav1.set_type_mask(TabNavigation::HAS_POST_DATA);
@@ -193,10 +195,10 @@ TEST_F(SessionServiceTest, ClosingTabStaysClosed) {
SessionID tab2_id;
ASSERT_NE(tab_id.id(), tab2_id.id());
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
- TabNavigation nav2(0, GURL("http://google2.com"), GURL(),
+ TabNavigation nav2(0, GURL("http://google2.com"), content::Referrer(),
ASCIIToUTF16("abcd"), "defg",
content::PAGE_TRANSITION_AUTO_BOOKMARK);
@@ -224,10 +226,10 @@ TEST_F(SessionServiceTest, ClosingTabStaysClosed) {
TEST_F(SessionServiceTest, Pruning) {
SessionID tab_id;
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
- TabNavigation nav2(0, GURL("http://google2.com"), GURL(),
+ TabNavigation nav2(0, GURL("http://google2.com"), content::Referrer(),
ASCIIToUTF16("abcd"), "defg",
content::PAGE_TRANSITION_AUTO_BOOKMARK);
@@ -260,10 +262,10 @@ TEST_F(SessionServiceTest, TwoWindows) {
SessionID tab1_id;
SessionID tab2_id;
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
- TabNavigation nav2(0, GURL("http://google2.com"), GURL(),
+ TabNavigation nav2(0, GURL("http://google2.com"), content::Referrer(),
ASCIIToUTF16("abcd"), "defg",
content::PAGE_TRANSITION_AUTO_BOOKMARK);
@@ -317,7 +319,7 @@ TEST_F(SessionServiceTest, WindowWithNoTabsGetsPruned) {
SessionID tab1_id;
SessionID tab2_id;
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
@@ -349,10 +351,10 @@ TEST_F(SessionServiceTest, ClosingWindowDoesntCloseTabs) {
SessionID tab2_id;
ASSERT_NE(tab_id.id(), tab2_id.id());
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
- TabNavigation nav2(0, GURL("http://google2.com"), GURL(),
+ TabNavigation nav2(0, GURL("http://google2.com"), content::Referrer(),
ASCIIToUTF16("abcd"), "defg",
content::PAGE_TRANSITION_AUTO_BOOKMARK);
@@ -392,10 +394,10 @@ TEST_F(SessionServiceTest, WindowCloseCommittedAfterNavigate) {
window_bounds,
ui::SHOW_STATE_NORMAL);
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
- TabNavigation nav2(0, GURL("http://google2.com"), GURL(),
+ TabNavigation nav2(0, GURL("http://google2.com"), content::Referrer(),
ASCIIToUTF16("abcd"), "defg",
content::PAGE_TRANSITION_AUTO_BOOKMARK);
@@ -437,10 +439,10 @@ TEST_F(SessionServiceTest, IgnorePopups) {
window_bounds,
ui::SHOW_STATE_NORMAL);
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
- TabNavigation nav2(0, GURL("http://google2.com"), GURL(),
+ TabNavigation nav2(0, GURL("http://google2.com"), content::Referrer(),
ASCIIToUTF16("abcd"), "defg",
content::PAGE_TRANSITION_AUTO_BOOKMARK);
@@ -478,10 +480,10 @@ TEST_F(SessionServiceTest, RestorePopup) {
window_bounds,
ui::SHOW_STATE_NORMAL);
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
- TabNavigation nav2(0, GURL("http://google2.com"), GURL(),
+ TabNavigation nav2(0, GURL("http://google2.com"), content::Referrer(),
ASCIIToUTF16("abcd"), "defg",
content::PAGE_TRANSITION_AUTO_BOOKMARK);
@@ -524,7 +526,8 @@ TEST_F(SessionServiceTest, PruneFromFront) {
// Add 5 navigations, with the 4th selected.
for (int i = 0; i < 5; ++i) {
- TabNavigation nav(0, GURL(base_url + base::IntToString(i)), GURL(),
+ TabNavigation nav(0, GURL(base_url + base::IntToString(i)),
+ content::Referrer(),
ASCIIToUTF16("a"), "b",
content::PAGE_TRANSITION_QUALIFIER_MASK);
UpdateNavigation(window_id, tab_id, nav, i, (i == 3));
@@ -566,7 +569,8 @@ TEST_F(SessionServiceTest, PruneToEmpty) {
// Add 5 navigations, with the 4th selected.
for (int i = 0; i < 5; ++i) {
- TabNavigation nav(0, GURL(base_url + base::IntToString(i)), GURL(),
+ TabNavigation nav(0, GURL(base_url + base::IntToString(i)),
+ content::Referrer(),
ASCIIToUTF16("a"), "b",
content::PAGE_TRANSITION_QUALIFIER_MASK);
UpdateNavigation(window_id, tab_id, nav, i, (i == 3));
@@ -598,7 +602,7 @@ TEST_F(SessionServiceTest, PersistApplicationExtensionID) {
ASSERT_NE(window_id.id(), tab_id.id());
std::string app_id("foo");
- TabNavigation nav1(0, GURL("http://google.com"), GURL(),
+ TabNavigation nav1(0, GURL("http://google.com"), content::Referrer(),
ASCIIToUTF16("abc"), std::string(),
content::PAGE_TRANSITION_QUALIFIER_MASK);
@@ -665,7 +669,8 @@ TEST_F(SessionServiceTest, CloseTabUserGesture) {
ASSERT_NE(window_id.id(), tab_id.id());
TabNavigation nav1(0, GURL("http://google.com"),
- GURL("http://www.referrer.com"),
+ content::Referrer(GURL("http://www.referrer.com"),
+ WebKit::WebReferrerPolicyDefault),
ASCIIToUTF16("abc"), "def",
content::PAGE_TRANSITION_QUALIFIER_MASK);
diff --git a/chrome/browser/sessions/session_types.cc b/chrome/browser/sessions/session_types.cc
index 70c8b9e..39b92b8 100644
--- a/chrome/browser/sessions/session_types.cc
+++ b/chrome/browser/sessions/session_types.cc
@@ -20,7 +20,7 @@ TabNavigation::TabNavigation()
TabNavigation::TabNavigation(int index,
const GURL& virtual_url,
- const GURL& referrer,
+ const content::Referrer& referrer,
const string16& title,
const std::string& state,
content::PageTransition transition)
diff --git a/chrome/browser/sessions/session_types.h b/chrome/browser/sessions/session_types.h
index 01ed823..c56a508 100644
--- a/chrome/browser/sessions/session_types.h
+++ b/chrome/browser/sessions/session_types.h
@@ -14,6 +14,7 @@
#include "base/time.h"
#include "chrome/browser/sessions/session_id.h"
#include "content/public/common/page_transition_types.h"
+#include "content/public/common/referrer.h"
#include "googleurl/src/gurl.h"
#include "ui/base/ui_base_types.h"
#include "ui/gfx/rect.h"
@@ -36,7 +37,7 @@ class TabNavigation {
TabNavigation();
TabNavigation(int index,
const GURL& virtual_url,
- const GURL& referrer,
+ const content::Referrer& referrer,
const string16& title,
const std::string& state,
content::PageTransition transition);
@@ -56,7 +57,7 @@ class TabNavigation {
const GURL& virtual_url() const { return virtual_url_; }
// The referrer.
- const GURL& referrer() const { return referrer_; }
+ const content::Referrer& referrer() const { return referrer_; }
// The title of the page.
void set_title(const string16& title) { title_ = title; }
@@ -95,7 +96,7 @@ class TabNavigation {
friend class BaseSessionService;
GURL virtual_url_;
- GURL referrer_;
+ content::Referrer referrer_;
string16 title_;
std::string state_;
content::PageTransition transition_;
diff --git a/chrome/browser/sync/glue/session_model_associator.cc b/chrome/browser/sync/glue/session_model_associator.cc
index 4b4e83e..44c0727 100644
--- a/chrome/browser/sync/glue/session_model_associator.cc
+++ b/chrome/browser/sync/glue/session_model_associator.cc
@@ -381,7 +381,8 @@ void SessionModelAssociator::PopulateSessionSpecificsNavigation(
sync_pb::TabNavigation* tab_navigation) {
tab_navigation->set_index(navigation->index());
tab_navigation->set_virtual_url(navigation->virtual_url().spec());
- tab_navigation->set_referrer(navigation->referrer().spec());
+ // FIXME(zea): Support referrer policy?
+ tab_navigation->set_referrer(navigation->referrer().url.spec());
tab_navigation->set_title(UTF16ToUTF8(navigation->title()));
switch (navigation->transition()) {
case content::PAGE_TRANSITION_LINK:
@@ -875,8 +876,10 @@ void SessionModelAssociator::AppendSessionTabNavigation(
}
}
}
- TabNavigation tab_navigation(index, virtual_url, referrer, title, state,
- transition);
+ TabNavigation tab_navigation(
+ index, virtual_url,
+ content::Referrer(referrer, WebKit::WebReferrerPolicyDefault), title,
+ state, transition);
navigations->insert(navigations->end(), tab_navigation);
}
diff --git a/chrome/browser/sync/glue/session_model_associator_unittest.cc b/chrome/browser/sync/glue/session_model_associator_unittest.cc
index 3928958..959d78d 100644
--- a/chrome/browser/sync/glue/session_model_associator_unittest.cc
+++ b/chrome/browser/sync/glue/session_model_associator_unittest.cc
@@ -22,7 +22,9 @@ TEST_F(SessionModelAssociatorTest, SessionWindowHasNoTabsToSync) {
scoped_ptr<SessionTab> tab(new SessionTab());
win.tabs.push_back(tab.release());
ASSERT_TRUE(SessionWindowHasNoTabsToSync(win));
- TabNavigation nav(0, GURL("about:bubba"), GURL("about:referrer"),
+ TabNavigation nav(0, GURL("about:bubba"),
+ content::Referrer(GURL("about:referrer"),
+ WebKit::WebReferrerPolicyDefault),
string16(ASCIIToUTF16("title")),
std::string("state"), content::PageTransitionFromInt(0));
win.tabs[0]->navigations.push_back(nav);
@@ -33,14 +35,16 @@ TEST_F(SessionModelAssociatorTest, IsValidSessionTab) {
SessionTab tab;
ASSERT_FALSE(IsValidSessionTab(tab));
TabNavigation nav(0, GURL(chrome::kChromeUINewTabURL),
- GURL("about:referrer"),
+ content::Referrer(GURL("about:referrer"),
+ WebKit::WebReferrerPolicyDefault),
string16(ASCIIToUTF16("title")),
std::string("state"), content::PageTransitionFromInt(0));
tab.navigations.push_back(nav);
// NewTab does not count as valid if it's the only navigation.
ASSERT_FALSE(IsValidSessionTab(tab));
TabNavigation nav2(0, GURL("about:bubba"),
- GURL("about:referrer"),
+ content::Referrer(GURL("about:referrer"),
+ WebKit::WebReferrerPolicyDefault),
string16(ASCIIToUTF16("title")),
std::string("state"), content::PageTransitionFromInt(0));
tab.navigations.push_back(nav2);
@@ -53,7 +57,8 @@ TEST_F(SessionModelAssociatorTest, IsValidSessionTabIgnoresFragmentForNtp) {
ASSERT_FALSE(IsValidSessionTab(tab));
TabNavigation nav(0, GURL(std::string(chrome::kChromeUINewTabURL) +
"#bookmarks"),
- GURL("about:referrer"),
+ content::Referrer(GURL("about:referrer"),
+ WebKit::WebReferrerPolicyDefault),
string16(ASCIIToUTF16("title")),
std::string("state"), content::PageTransitionFromInt(0));
tab.navigations.push_back(nav);
@@ -118,7 +123,7 @@ TEST_F(SessionModelAssociatorTest, PopulateSessionTab) {
ASSERT_TRUE(tab.pinned);
ASSERT_EQ("app_id", tab.extension_app_id);
ASSERT_EQ(12, tab.navigations[0].index());
- ASSERT_EQ(GURL("referrer"), tab.navigations[0].referrer());
+ ASSERT_EQ(GURL("referrer"), tab.navigations[0].referrer().url);
ASSERT_EQ(string16(ASCIIToUTF16("title")), tab.navigations[0].title());
ASSERT_EQ(content::PAGE_TRANSITION_TYPED, tab.navigations[0].transition());
ASSERT_EQ(GURL("http://foo/1"), tab.navigations[0].virtual_url());
diff --git a/chrome/browser/sync/glue/synced_session_tracker_unittest.cc b/chrome/browser/sync/glue/synced_session_tracker_unittest.cc
index f63c77d..45dcaad 100644
--- a/chrome/browser/sync/glue/synced_session_tracker_unittest.cc
+++ b/chrome/browser/sync/glue/synced_session_tracker_unittest.cc
@@ -63,7 +63,8 @@ TEST_F(SyncedSessionTrackerTest, LookupAllForeignSessions) {
SessionTab* tab = tracker.GetTab("tag1", 15);
ASSERT_TRUE(tab);
tab->navigations.push_back(TabNavigation(
- 0, GURL("valid_url"), GURL("referrer"),
+ 0, GURL("valid_url"),
+ content::Referrer(GURL("referrer"), WebKit::WebReferrerPolicyDefault),
string16(ASCIIToUTF16("title")),
std::string("state"), content::PageTransitionFromInt(0)));
ASSERT_TRUE(tracker.LookupAllForeignSessions(&sessions));
diff --git a/chrome/browser/sync/profile_sync_service_session_unittest.cc b/chrome/browser/sync/profile_sync_service_session_unittest.cc
index 8a187e4..f703126 100644
--- a/chrome/browser/sync/profile_sync_service_session_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_session_unittest.cc
@@ -142,7 +142,7 @@ void VerifySyncedSession(
ASSERT_EQ(1U, tab->navigations.size());
ASSERT_EQ(12, tab->navigations[0].index());
ASSERT_EQ(tab->navigations[0].virtual_url(), GURL("http://foo/1"));
- ASSERT_EQ(tab->navigations[0].referrer(), GURL("referrer"));
+ ASSERT_EQ(tab->navigations[0].referrer().url, GURL("referrer"));
ASSERT_EQ(tab->navigations[0].title(), string16(ASCIIToUTF16("title")));
ASSERT_EQ(tab->navigations[0].transition(),
content::PAGE_TRANSITION_TYPED);
diff --git a/chrome/browser/sync/test/integration/sessions_helper.cc b/chrome/browser/sync/test/integration/sessions_helper.cc
index e05c6f5..374a08e 100644
--- a/chrome/browser/sync/test/integration/sessions_helper.cc
+++ b/chrome/browser/sync/test/integration/sessions_helper.cc
@@ -237,9 +237,9 @@ bool NavigationEquals(const TabNavigation& expected,
<< ", actual " << actual.virtual_url();
return false;
}
- if (expected.referrer() != actual.referrer()) {
- LOG(ERROR) << "Expected referrer " << expected.referrer()
- << ", actual " << actual.referrer();
+ if (expected.referrer().url != actual.referrer().url) {
+ LOG(ERROR) << "Expected referrer " << expected.referrer().url
+ << ", actual " << actual.referrer().url;
return false;
}
if (expected.title() != actual.title()) {
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 98b39e7..956f8fd 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -3388,7 +3388,7 @@ TabContents* Browser::OpenURLFromTab(TabContents* source,
nav_params.source_contents =
tabstrip_model()->GetTabContentsAt(
tabstrip_model()->GetWrapperIndex(source));
- nav_params.referrer = params.referrer.url;
+ nav_params.referrer = params.referrer;
nav_params.disposition = params.disposition;
nav_params.tabstrip_add_types = TabStripModel::ADD_NONE;
nav_params.window_action = browser::NavigateParams::SHOW_WINDOW;
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
index c3f9152..ab73fbc 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -249,19 +249,19 @@ void LoadURLInContents(TabContents* target_contents,
if (params->transferred_global_request_id != GlobalRequestID()) {
target_contents->controller().TransferURL(
url,
- content::Referrer(params->referrer, WebKit::WebReferrerPolicyDefault),
+ params->referrer,
params->transition, extra_headers,
params->transferred_global_request_id,
params->is_renderer_initiated);
} else if (params->is_renderer_initiated) {
target_contents->controller().LoadURLFromRenderer(
url,
- content::Referrer(params->referrer, WebKit::WebReferrerPolicyDefault),
+ params->referrer,
params->transition, extra_headers);
} else {
target_contents->controller().LoadURL(
url,
- content::Referrer(params->referrer, WebKit::WebReferrerPolicyDefault),
+ params->referrer,
params->transition, extra_headers);
}
@@ -422,7 +422,7 @@ void Navigate(NavigateParams* params) {
// A tab is being opened from a link from a different profile, we must reset
// source information that may cause state to be shared.
params->source_contents = NULL;
- params->referrer = GURL();
+ params->referrer = content::Referrer();
}
// Make sure the Browser is shown if params call for it.
diff --git a/chrome/browser/ui/browser_navigator.h b/chrome/browser/ui/browser_navigator.h
index 9f40509..026dd40 100644
--- a/chrome/browser/ui/browser_navigator.h
+++ b/chrome/browser/ui/browser_navigator.h
@@ -10,6 +10,7 @@
#include "content/browser/renderer_host/global_request_id.h"
#include "content/public/common/page_transition_types.h"
+#include "content/public/common/referrer.h"
#include "googleurl/src/gurl.h"
#include "ui/gfx/rect.h"
#include "webkit/glue/window_open_disposition.h"
@@ -50,7 +51,7 @@ struct NavigateParams {
// The URL/referrer to be loaded. Ignored if |target_contents| is non-NULL.
GURL url;
- GURL referrer;
+ content::Referrer referrer;
// [in] A TabContents to be navigated or inserted into the target Browser's
// tabstrip. If NULL, |url| or the homepage will be used instead. When
diff --git a/chrome/browser/ui/cocoa/history_menu_bridge_unittest.mm b/chrome/browser/ui/cocoa/history_menu_bridge_unittest.mm
index de14a16..d88f11e 100644
--- a/chrome/browser/ui/cocoa/history_menu_bridge_unittest.mm
+++ b/chrome/browser/ui/cocoa/history_menu_bridge_unittest.mm
@@ -93,7 +93,7 @@ class HistoryMenuBridgeTest : public CocoaProfileTest {
MockTRS::Tab tab;
tab.current_navigation_index = 0;
tab.navigations.push_back(
- TabNavigation(0, url, GURL(), title, std::string(),
+ TabNavigation(0, url, content::Referrer(), title, std::string(),
content::PAGE_TRANSITION_LINK));
return tab;
}
diff --git a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
index 228d618..c608471 100644
--- a/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
+++ b/chrome/browser/ui/webui/html_dialog_tab_contents_delegate.cc
@@ -36,7 +36,7 @@ TabContents* HtmlDialogTabContentsDelegate::OpenURLFromTab(
Browser* browser = NULL;
browser::NavigateParams nav_params(browser, params.url, params.transition);
nav_params.profile = profile_;
- nav_params.referrer = params.referrer.url;
+ nav_params.referrer = params.referrer;
if (source && source->is_crashed() &&
params.disposition == CURRENT_TAB &&
params.transition == content::PAGE_TRANSITION_LINK)
diff --git a/content/browser/site_instance_unittest.cc b/content/browser/site_instance_unittest.cc
index 1c8b47c..9e439b4 100644
--- a/content/browser/site_instance_unittest.cc
+++ b/content/browser/site_instance_unittest.cc
@@ -173,7 +173,8 @@ TEST_F(SiteInstanceTest, SiteInstanceDestructor) {
&browsingDeleteCounter);
EXPECT_EQ(0, siteDeleteCounter);
- NavigationEntry* e1 = new NavigationEntry(instance, 0, url, GURL(),
+ NavigationEntry* e1 = new NavigationEntry(instance, 0, url,
+ content::Referrer(),
string16(),
content::PAGE_TRANSITION_LINK,
false);
@@ -184,7 +185,7 @@ TEST_F(SiteInstanceTest, SiteInstanceDestructor) {
// Add a second reference
NavigationEntry* e2 = new NavigationEntry(instance, 0, url,
- GURL(), string16(),
+ content::Referrer(), string16(),
content::PAGE_TRANSITION_LINK,
false);
@@ -239,8 +240,8 @@ TEST_F(SiteInstanceTest, CloneNavigationEntry) {
TestSiteInstance::CreateTestSiteInstance(NULL, &siteDeleteCounter2,
&browsingDeleteCounter);
- NavigationEntry* e1 = new NavigationEntry(instance1, 0, url, GURL(),
- string16(),
+ NavigationEntry* e1 = new NavigationEntry(instance1, 0, url,
+ content::Referrer(), string16(),
content::PAGE_TRANSITION_LINK,
false);
// Clone the entry
diff --git a/content/browser/tab_contents/navigation_controller.cc b/content/browser/tab_contents/navigation_controller.cc
index 13a6766..a194a7e 100644
--- a/content/browser/tab_contents/navigation_controller.cc
+++ b/content/browser/tab_contents/navigation_controller.cc
@@ -223,7 +223,8 @@ bool NavigationController::IsInitialNavigation() {
// static
NavigationEntry* NavigationController::CreateNavigationEntry(
- const GURL& url, const GURL& referrer, content::PageTransition transition,
+ const GURL& url, const content::Referrer& referrer,
+ content::PageTransition transition,
bool is_renderer_initiated, const std::string& extra_headers,
content::BrowserContext* browser_context) {
// Allow the browser URL handler to rewrite the URL. This will, for example,
@@ -508,7 +509,7 @@ void NavigationController::TransferURL(
// The user initiated a load, we don't need to reload anymore.
needs_reload_ = false;
- NavigationEntry* entry = CreateNavigationEntry(url, referrer.url, transition,
+ NavigationEntry* entry = CreateNavigationEntry(url, referrer, transition,
is_renderer_initiated,
extra_headers,
browser_context_);
@@ -525,7 +526,7 @@ void NavigationController::LoadURL(
// The user initiated a load, we don't need to reload anymore.
needs_reload_ = false;
- NavigationEntry* entry = CreateNavigationEntry(url, referrer.url, transition,
+ NavigationEntry* entry = CreateNavigationEntry(url, referrer, transition,
false,
extra_headers,
browser_context_);
@@ -541,7 +542,7 @@ void NavigationController::LoadURLFromRenderer(
// The user initiated a load, we don't need to reload anymore.
needs_reload_ = false;
- NavigationEntry* entry = CreateNavigationEntry(url, referrer.url, transition,
+ NavigationEntry* entry = CreateNavigationEntry(url, referrer, transition,
true,
extra_headers,
browser_context_);
@@ -803,7 +804,7 @@ void NavigationController::RendererDidNavigateToNewPage(
new_entry->set_url(params.url);
if (update_virtual_url)
UpdateVirtualURLToURL(new_entry, params.url);
- new_entry->set_referrer(params.referrer.url);
+ new_entry->set_referrer(params.referrer);
new_entry->set_page_id(params.page_id);
new_entry->set_transition_type(params.transition);
new_entry->set_site_instance(tab_contents_->GetSiteInstance());
diff --git a/content/browser/tab_contents/navigation_controller.h b/content/browser/tab_contents/navigation_controller.h
index 710c33e..a5c5a9c 100644
--- a/content/browser/tab_contents/navigation_controller.h
+++ b/content/browser/tab_contents/navigation_controller.h
@@ -30,6 +30,7 @@ struct ViewHostMsg_FrameNavigate_Params;
namespace content {
class BrowserContext;
struct LoadCommittedDetails;
+struct Referrer;
}
// A NavigationController maintains the back-forward list for a single tab and
@@ -352,7 +353,7 @@ class CONTENT_EXPORT NavigationController {
// separated by \n.
static NavigationEntry* CreateNavigationEntry(
const GURL& url,
- const GURL& referrer,
+ const content::Referrer& referrer,
content::PageTransition transition,
bool is_renderer_initiated,
const std::string& extra_headers,
diff --git a/content/browser/tab_contents/navigation_controller_unittest.cc b/content/browser/tab_contents/navigation_controller_unittest.cc
index d9871d4..bcd87cb 100644
--- a/content/browser/tab_contents/navigation_controller_unittest.cc
+++ b/content/browser/tab_contents/navigation_controller_unittest.cc
@@ -1477,8 +1477,8 @@ TEST_F(NavigationControllerTest, RestoreNavigate) {
GURL url("http://foo");
std::vector<NavigationEntry*> entries;
NavigationEntry* entry = NavigationController::CreateNavigationEntry(
- url, GURL(), content::PAGE_TRANSITION_RELOAD, false, std::string(),
- browser_context());
+ url, content::Referrer(), content::PAGE_TRANSITION_RELOAD, false,
+ std::string(), browser_context());
entry->set_page_id(0);
entry->set_title(ASCIIToUTF16("Title"));
entry->set_content_state("state");
@@ -1537,8 +1537,8 @@ TEST_F(NavigationControllerTest, RestoreNavigateAfterFailure) {
GURL url("http://foo");
std::vector<NavigationEntry*> entries;
NavigationEntry* entry = NavigationController::CreateNavigationEntry(
- url, GURL(), content::PAGE_TRANSITION_RELOAD, false, std::string(),
- browser_context());
+ url, content::Referrer(), content::PAGE_TRANSITION_RELOAD, false,
+ std::string(), browser_context());
entry->set_page_id(0);
entry->set_title(ASCIIToUTF16("Title"));
entry->set_content_state("state");
diff --git a/content/browser/tab_contents/navigation_entry.cc b/content/browser/tab_contents/navigation_entry.cc
index b84050a..8efaab4 100644
--- a/content/browser/tab_contents/navigation_entry.cc
+++ b/content/browser/tab_contents/navigation_entry.cc
@@ -49,7 +49,7 @@ NavigationEntry::NavigationEntry()
NavigationEntry::NavigationEntry(SiteInstance* instance,
int page_id,
const GURL& url,
- const GURL& referrer,
+ const content::Referrer& referrer,
const string16& title,
content::PageTransition transition_type,
bool is_renderer_initiated)
diff --git a/content/browser/tab_contents/navigation_entry.h b/content/browser/tab_contents/navigation_entry.h
index 8648ebb..6b139a1 100644
--- a/content/browser/tab_contents/navigation_entry.h
+++ b/content/browser/tab_contents/navigation_entry.h
@@ -14,6 +14,7 @@
#include "content/common/content_export.h"
#include "content/public/common/page_transition_types.h"
#include "content/public/common/page_type.h"
+#include "content/public/common/referrer.h"
#include "content/public/common/security_style.h"
#include "googleurl/src/gurl.h"
#include "net/base/cert_status_flags.h"
@@ -185,7 +186,7 @@ class CONTENT_EXPORT NavigationEntry {
NavigationEntry(SiteInstance* instance,
int page_id,
const GURL& url,
- const GURL& referrer,
+ const content::Referrer& referrer,
const string16& title,
content::PageTransition transition_type,
bool is_renderer_initiated);
@@ -237,10 +238,10 @@ class CONTENT_EXPORT NavigationEntry {
}
// The referring URL. Can be empty.
- void set_referrer(const GURL& referrer) {
+ void set_referrer(const content::Referrer& referrer) {
referrer_ = referrer;
}
- const GURL& referrer() const {
+ const content::Referrer& referrer() const {
return referrer_;
}
@@ -434,7 +435,7 @@ class CONTENT_EXPORT NavigationEntry {
scoped_refptr<SiteInstance> site_instance_;
content::PageType page_type_;
GURL url_;
- GURL referrer_;
+ content::Referrer referrer_;
GURL virtual_url_;
bool update_virtual_url_with_url_;
string16 title_;
diff --git a/content/browser/tab_contents/navigation_entry_unittest.cc b/content/browser/tab_contents/navigation_entry_unittest.cc
index 2dbece97..4d394ef 100644
--- a/content/browser/tab_contents/navigation_entry_unittest.cc
+++ b/content/browser/tab_contents/navigation_entry_unittest.cc
@@ -18,12 +18,13 @@ class NavigationEntryTest : public testing::Test {
entry1_.reset(new NavigationEntry);
instance_ = SiteInstance::CreateSiteInstance(NULL);
- entry2_.reset(new NavigationEntry(instance_, 3,
- GURL("test:url"),
- GURL("from"),
- ASCIIToUTF16("title"),
- content::PAGE_TRANSITION_TYPED,
- false));
+ entry2_.reset(new NavigationEntry(
+ instance_, 3,
+ GURL("test:url"),
+ content::Referrer(GURL("from"), WebKit::WebReferrerPolicyDefault),
+ ASCIIToUTF16("title"),
+ content::PAGE_TRANSITION_TYPED,
+ false));
}
virtual void TearDown() {
@@ -151,10 +152,11 @@ TEST_F(NavigationEntryTest, NavigationEntryAccessors) {
EXPECT_EQ(content::PAGE_TYPE_INTERSTITIAL, entry2_.get()->page_type());
// Referrer
- EXPECT_EQ(GURL(), entry1_.get()->referrer());
- EXPECT_EQ(GURL("from"), entry2_.get()->referrer());
- entry2_.get()->set_referrer(GURL("from2"));
- EXPECT_EQ(GURL("from2"), entry2_.get()->referrer());
+ EXPECT_EQ(GURL(), entry1_.get()->referrer().url);
+ EXPECT_EQ(GURL("from"), entry2_.get()->referrer().url);
+ entry2_.get()->set_referrer(
+ content::Referrer(GURL("from2"), WebKit::WebReferrerPolicyDefault));
+ EXPECT_EQ(GURL("from2"), entry2_.get()->referrer().url);
// Title
EXPECT_EQ(string16(), entry1_.get()->title());
diff --git a/content/browser/tab_contents/render_view_host_manager_unittest.cc b/content/browser/tab_contents/render_view_host_manager_unittest.cc
index 0d0c02d..6d84a63 100644
--- a/content/browser/tab_contents/render_view_host_manager_unittest.cc
+++ b/content/browser/tab_contents/render_view_host_manager_unittest.cc
@@ -300,7 +300,7 @@ TEST_F(RenderViewHostManagerTest, Navigate) {
// 1) The first navigation. --------------------------
const GURL kUrl1("http://www.google.com/");
NavigationEntry entry1(NULL /* instance */, -1 /* page_id */, kUrl1,
- GURL() /* referrer */, string16() /* title */,
+ content::Referrer(), string16() /* title */,
content::PAGE_TRANSITION_TYPED,
false /* is_renderer_init */);
host = manager.Navigate(entry1);
@@ -319,10 +319,11 @@ TEST_F(RenderViewHostManagerTest, Navigate) {
// 2) Navigate to next site. -------------------------
const GURL kUrl2("http://www.google.com/foo");
- NavigationEntry entry2(NULL /* instance */, -1 /* page_id */, kUrl2,
- kUrl1 /* referrer */, string16() /* title */,
- content::PAGE_TRANSITION_LINK,
- true /* is_renderer_init */);
+ NavigationEntry entry2(
+ NULL /* instance */, -1 /* page_id */, kUrl2,
+ content::Referrer(kUrl1, WebKit::WebReferrerPolicyDefault),
+ string16() /* title */, content::PAGE_TRANSITION_LINK,
+ true /* is_renderer_init */);
host = manager.Navigate(entry2);
// The RenderViewHost created in Init will be reused.
@@ -337,10 +338,11 @@ TEST_F(RenderViewHostManagerTest, Navigate) {
// 3) Cross-site navigate to next site. --------------
const GURL kUrl3("http://webkit.org/");
- NavigationEntry entry3(NULL /* instance */, -1 /* page_id */, kUrl3,
- kUrl2 /* referrer */, string16() /* title */,
- content::PAGE_TRANSITION_LINK,
- false /* is_renderer_init */);
+ NavigationEntry entry3(
+ NULL /* instance */, -1 /* page_id */, kUrl3,
+ content::Referrer(kUrl2, WebKit::WebReferrerPolicyDefault),
+ string16() /* title */, content::PAGE_TRANSITION_LINK,
+ false /* is_renderer_init */);
host = manager.Navigate(entry3);
// A new RenderViewHost should be created.
@@ -384,7 +386,7 @@ TEST_F(RenderViewHostManagerTest, NavigateWithEarlyReNavigation) {
// 1) The first navigation. --------------------------
const GURL kUrl1("http://www.google.com/");
NavigationEntry entry1(NULL /* instance */, -1 /* page_id */, kUrl1,
- GURL() /* referrer */, string16() /* title */,
+ content::Referrer(), string16() /* title */,
content::PAGE_TRANSITION_TYPED,
false /* is_renderer_init */);
RenderViewHost* host = manager.Navigate(entry1);
@@ -410,7 +412,7 @@ TEST_F(RenderViewHostManagerTest, NavigateWithEarlyReNavigation) {
// 2) Cross-site navigate to next site. -------------------------
const GURL kUrl2("http://www.example.com");
NavigationEntry entry2(NULL /* instance */, -1 /* page_id */, kUrl2,
- GURL() /* referrer */, string16() /* title */,
+ content::Referrer(), string16() /* title */,
content::PAGE_TRANSITION_TYPED,
false /* is_renderer_init */);
RenderViewHost* host2 = manager.Navigate(entry2);
@@ -458,7 +460,7 @@ TEST_F(RenderViewHostManagerTest, NavigateWithEarlyReNavigation) {
// 3) Cross-site navigate to next site before 2) has committed. --------------
const GURL kUrl3("http://webkit.org/");
NavigationEntry entry3(NULL /* instance */, -1 /* page_id */, kUrl3,
- GURL() /* referrer */, string16() /* title */,
+ content::Referrer(), string16() /* title */,
content::PAGE_TRANSITION_TYPED,
false /* is_renderer_init */);
RenderViewHost* host3 = manager.Navigate(entry3);
@@ -510,7 +512,7 @@ TEST_F(RenderViewHostManagerTest, WebUI) {
const GURL kUrl(chrome::kTestNewTabURL);
NavigationEntry entry(NULL /* instance */, -1 /* page_id */, kUrl,
- GURL() /* referrer */, string16() /* title */,
+ content::Referrer(), string16() /* title */,
content::PAGE_TRANSITION_TYPED,
false /* is_renderer_init */);
RenderViewHost* host = manager.Navigate(entry);
@@ -549,14 +551,14 @@ TEST_F(RenderViewHostManagerTest, NonWebUIChromeURLs) {
// NTP is a Web UI page.
const GURL kNtpUrl(chrome::kTestNewTabURL);
NavigationEntry ntp_entry(NULL /* instance */, -1 /* page_id */, kNtpUrl,
- GURL() /* referrer */, string16() /* title */,
+ content::Referrer(), string16() /* title */,
content::PAGE_TRANSITION_TYPED,
false /* is_renderer_init */);
// A URL with the Chrome UI scheme, that isn't handled by Web UI.
GURL about_url(kChromeUISchemeButNotWebUIURL);
NavigationEntry about_entry(NULL /* instance */, -1 /* page_id */, about_url,
- GURL() /* referrer */, string16() /* title */,
+ content::Referrer(), string16() /* title */,
content::PAGE_TRANSITION_TYPED,
false /* is_renderer_init */);
diff --git a/content/browser/tab_contents/tab_contents.cc b/content/browser/tab_contents/tab_contents.cc
index 1e8881f..e716148 100644
--- a/content/browser/tab_contents/tab_contents.cc
+++ b/content/browser/tab_contents/tab_contents.cc
@@ -160,8 +160,7 @@ void MakeNavigateParams(const NavigationEntry& entry,
params->current_history_list_offset = controller.last_committed_entry_index();
params->current_history_list_length = controller.entry_count();
params->url = entry.url();
- params->referrer = content::Referrer(entry.referrer(),
- WebKit::WebReferrerPolicyDefault);
+ params->referrer = entry.referrer();
params->transition = entry.transition_type();
params->state = entry.content_state();
params->navigation_type =