summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglen@chromium.org <glen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-01 22:57:52 +0000
committerglen@chromium.org <glen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-01 22:57:52 +0000
commit04c989443019bb446419ad28ba4d83c97b2cb7bf (patch)
treeb5176e0b1f5bf65074188e4f1f7fcb86e8f26206
parenta675e5364c7f5fea5d8b186d5f763e9132bd69ae (diff)
downloadchromium_src-04c989443019bb446419ad28ba4d83c97b2cb7bf.zip
chromium_src-04c989443019bb446419ad28ba4d83c97b2cb7bf.tar.gz
chromium_src-04c989443019bb446419ad28ba4d83c97b2cb7bf.tar.bz2
Unescape and use the filename when we have no title to display for a given entry (instead of displaying the whole path). This unifies the display of titles for local and remote files.
For anyone watching, this is how tab titles will change: 'http://blah.com/index.html' will be 'index.html' 'http://blah.com/meat%20pie.pdf' will be 'meat pie.pdf' 'file://C:/blah/blue%20cheese.txt' will be 'blue cheese.txt' (previously this sometimes changed between the URL and blue%20cheese.txt depending on how the file was opened). BUG=2529,2375 Review URL: http://codereview.chromium.org/8973 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4382 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/navigation_controller.cc4
-rw-r--r--chrome/browser/navigation_entry.cc10
-rw-r--r--chrome/browser/navigation_entry.h2
3 files changed, 8 insertions, 8 deletions
diff --git a/chrome/browser/navigation_controller.cc b/chrome/browser/navigation_controller.cc
index 77d5269..51beace 100644
--- a/chrome/browser/navigation_controller.cc
+++ b/chrome/browser/navigation_controller.cc
@@ -491,10 +491,6 @@ NavigationEntry* NavigationController::CreateNavigationEntry(
std::wstring(), transition);
entry->set_display_url(url);
entry->set_user_typed_url(url);
- if (url.SchemeIsFile()) {
- entry->set_title(file_util::GetFilenameFromPath(UTF8ToWide(url.host() +
- url.path())));
- }
return entry;
}
diff --git a/chrome/browser/navigation_entry.cc b/chrome/browser/navigation_entry.cc
index f7ed6c6..18992d6 100644
--- a/chrome/browser/navigation_entry.cc
+++ b/chrome/browser/navigation_entry.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/navigation_entry.h"
#include "chrome/common/resource_bundle.h"
+#include "net/base/escape.h"
// Use this to get a new unique ID for a NavigationEntry during construction.
// The returned ID is guaranteed to be nonzero (which is the "no ID" indicator).
@@ -58,7 +59,12 @@ NavigationEntry::NavigationEntry(TabContentsType type,
}
const std::wstring& NavigationEntry::GetTitleForDisplay() {
- if (title_.empty())
- return url_as_string_;
+ if (title_.empty()) {
+ std::string filename = url_.ExtractFileName();
+ title_ = UTF8ToWide(filename.empty() ?
+ url_.spec() :
+ UnescapeURLComponent(filename, UnescapeRule::SPACES |
+ UnescapeRule::URL_SPECIAL_CHARS));
+ }
return title_;
} \ No newline at end of file
diff --git a/chrome/browser/navigation_entry.h b/chrome/browser/navigation_entry.h
index f5ab7f6..4b21f9f 100644
--- a/chrome/browser/navigation_entry.h
+++ b/chrome/browser/navigation_entry.h
@@ -220,7 +220,6 @@ class NavigationEntry {
// the user.
void set_url(const GURL& url) {
url_ = url;
- url_as_string_ = UTF8ToWide(url_.spec());
}
const GURL& url() const {
return url_;
@@ -373,7 +372,6 @@ class NavigationEntry {
GURL url_;
GURL referrer_;
- std::wstring url_as_string_;
GURL display_url_;
std::wstring title_;
FaviconStatus favicon_;