summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/browser/tab_contents/navigation_controller.cc11
-rw-r--r--content/browser/tab_contents/navigation_entry.cc8
-rw-r--r--content/browser/tab_contents/navigation_entry_unittest.cc5
3 files changed, 11 insertions, 13 deletions
diff --git a/content/browser/tab_contents/navigation_controller.cc b/content/browser/tab_contents/navigation_controller.cc
index 9eec1ad..7601d23 100644
--- a/content/browser/tab_contents/navigation_controller.cc
+++ b/content/browser/tab_contents/navigation_controller.cc
@@ -243,6 +243,17 @@ NavigationEntry* NavigationController::CreateNavigationEntry(
entry->set_virtual_url(url);
entry->set_user_typed_url(url);
entry->set_update_virtual_url_with_url(reverse_on_redirect);
+ if (url.SchemeIsFile()) {
+ // Use the filename as the title, not the full path.
+ // We need to call FormatUrl() to perform URL de-escaping;
+ // it's a bit ugly to grab the filename out of the resulting string.
+ std::string languages =
+ profile->GetPrefs()->GetString(prefs::kAcceptLanguages);
+ std::wstring formatted = UTF16ToWideHack(net::FormatUrl(url, languages));
+ std::wstring filename =
+ FilePath::FromWStringHack(formatted).BaseName().ToWStringHack();
+ entry->set_title(WideToUTF16Hack(filename));
+ }
return entry;
}
diff --git a/content/browser/tab_contents/navigation_entry.cc b/content/browser/tab_contents/navigation_entry.cc
index 535f463..ec35a9f 100644
--- a/content/browser/tab_contents/navigation_entry.cc
+++ b/content/browser/tab_contents/navigation_entry.cc
@@ -94,14 +94,6 @@ const string16& NavigationEntry::GetTitleForDisplay(
} else if (!url_.is_empty()) {
title = net::FormatUrl(url_, languages);
}
-
- // For file:// URLs use the filename as the title, not the full path.
- if (url_.SchemeIsFile()) {
- string16::size_type slashpos = title.rfind('/');
- if (slashpos != string16::npos)
- title = title.substr(slashpos + 1);
- }
-
ui::ElideString(title, chrome::kMaxTitleChars, &cached_display_title_);
return cached_display_title_;
}
diff --git a/content/browser/tab_contents/navigation_entry_unittest.cc b/content/browser/tab_contents/navigation_entry_unittest.cc
index 9d5edc83..4b5bfb0 100644
--- a/content/browser/tab_contents/navigation_entry_unittest.cc
+++ b/content/browser/tab_contents/navigation_entry_unittest.cc
@@ -62,11 +62,6 @@ TEST_F(NavigationEntryTest, NavigationEntryURLs) {
EXPECT_EQ(ASCIIToUTF16("www.google.com"),
entry1_.get()->GetTitleForDisplay(""));
- // file:/// URLs should only show the filename.
- entry1_.get()->set_url(GURL("file:///foo/bar baz.txt"));
- EXPECT_EQ(ASCIIToUTF16("bar baz.txt"),
- entry1_.get()->GetTitleForDisplay(""));
-
// Title affects GetTitleForDisplay
entry1_.get()->set_title(ASCIIToUTF16("Google"));
EXPECT_EQ(ASCIIToUTF16("Google"), entry1_.get()->GetTitleForDisplay(""));