summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/automation/automation_provider.cc3
-rw-r--r--chrome/browser/back_forward_menu_model.cc2
-rw-r--r--chrome/browser/browser.cc4
-rw-r--r--chrome/browser/debugger/debugger_host_impl.cpp6
-rw-r--r--chrome/browser/debugger/debugger_node.cc4
-rw-r--r--chrome/browser/memory_details.cc3
-rw-r--r--chrome/browser/navigation_entry_unittest.cc18
-rw-r--r--chrome/browser/printing/print_view_manager.cc2
-rw-r--r--chrome/browser/sessions/base_session_service.cc2
-rw-r--r--chrome/browser/site_instance_unittest.cc3
-rw-r--r--chrome/browser/tab_contents/interstitial_page.cc2
-rw-r--r--chrome/browser/tab_contents/navigation_controller.cc14
-rw-r--r--chrome/browser/tab_contents/navigation_controller.h3
-rw-r--r--chrome/browser/tab_contents/navigation_entry.cc36
-rw-r--r--chrome/browser/tab_contents/navigation_entry.h36
-rw-r--r--chrome/browser/tab_contents/tab_contents.cc8
-rw-r--r--chrome/browser/tab_contents/tab_contents.h2
-rw-r--r--chrome/browser/tab_contents/web_contents.cc2
-rw-r--r--chrome/browser/task_manager_resource_providers.cc2
-rw-r--r--chrome/browser/views/blocked_popup_container.cc8
-rw-r--r--chrome/browser/views/bug_report_view.cc2
-rw-r--r--chrome/browser/views/hung_renderer_view.cc2
-rw-r--r--chrome/browser/views/location_bar_view.cc2
-rw-r--r--chrome/browser/views/sad_tab_view.h3
-rw-r--r--chrome/browser/views/star_toggle.h7
-rw-r--r--chrome/browser/views/tab_icon_view.h9
-rw-r--r--chrome/browser/views/tabs/tab_renderer.cc2
-rw-r--r--chrome/browser/views/toolbar_view.cc3
-rw-r--r--chrome/common/temp_scaffolding_stubs.cc8
29 files changed, 117 insertions, 81 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index ce23441..72767c5 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -6,6 +6,7 @@
#include "base/message_loop.h"
#include "base/path_service.h"
+#include "base/string_util.h"
#include "base/thread.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/automation/automation_provider_list.h"
@@ -1608,7 +1609,7 @@ void AutomationProvider::GetTabTitle(int handle, int* title_string_size,
*title_string_size = -1; // -1 is the error code
if (tab_tracker_->ContainsHandle(handle)) {
NavigationController* tab = tab_tracker_->GetResource(handle);
- *title = tab->GetActiveEntry()->title();
+ *title = UTF16ToWideHack(tab->GetActiveEntry()->title());
*title_string_size = static_cast<int>(title->size());
}
}
diff --git a/chrome/browser/back_forward_menu_model.cc b/chrome/browser/back_forward_menu_model.cc
index d0e4ab3..f969364 100644
--- a/chrome/browser/back_forward_menu_model.cc
+++ b/chrome/browser/back_forward_menu_model.cc
@@ -222,7 +222,7 @@ std::wstring BackForwardMenuModel::GetItemLabel(int menu_id) const {
return L"";
NavigationEntry* entry = GetNavigationEntry(menu_id);
- return entry->title();
+ return UTF16ToWideHack(entry->title());
}
const SkBitmap& BackForwardMenuModel::GetItemIcon(int menu_id) const {
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
index 3b3851e..36aa430 100644
--- a/chrome/browser/browser.cc
+++ b/chrome/browser/browser.cc
@@ -398,7 +398,7 @@ std::wstring Browser::GetCurrentPageTitle() const {
// |contents| can be NULL because GetCurrentPageTitle is called by the window
// during the window's creation (before tabs have been added).
if (contents) {
- title = contents->GetTitle();
+ title = UTF16ToWideHack(contents->GetTitle());
FormatTitleForDisplay(&title);
}
if (title.empty())
@@ -738,7 +738,7 @@ void Browser::BookmarkCurrentPage() {
return;
bool was_bookmarked = model->IsBookmarked(url);
- model->SetURLStarred(url, entry->title(), true);
+ model->SetURLStarred(url, UTF16ToWideHack(entry->title()), true);
if (window_->IsActive()) {
// Only show the bubble if the window is active, otherwise we may get into
// weird situations were the bubble is deleted as soon as it is shown.
diff --git a/chrome/browser/debugger/debugger_host_impl.cpp b/chrome/browser/debugger/debugger_host_impl.cpp
index 04eba09..beeb398 100644
--- a/chrome/browser/debugger/debugger_host_impl.cpp
+++ b/chrome/browser/debugger/debugger_host_impl.cpp
@@ -65,7 +65,7 @@ class TabContentsReference : public NotificationObserver {
};
-DebuggerHostImpl::DebuggerHostImpl(DebuggerInputOutput* io)
+DebuggerHostImpl::DebuggerHostImpl(DebuggerInputOutput* io)
: io_(io),
debugger_ready_(true) {
}
@@ -98,7 +98,7 @@ void DebuggerHostImpl::OnDebugAttach() {
std::wstring title;
const TabContents* t = GetTabContentsBeingDebugged();
if (t) {
- title = t->GetTitle();
+ title = UTF16ToWideHack(t->GetTitle());
}
ListValue* argv = new ListValue;
@@ -178,7 +178,7 @@ void DebuggerHostImpl::OnDebuggerHostMsg(const ListValue* args) {
return;
}
io_->SetDebuggerBreak(brk == L"true");
- }
+ }
}
TabContents* DebuggerHostImpl::GetTabContentsBeingDebugged() const {
diff --git a/chrome/browser/debugger/debugger_node.cc b/chrome/browser/debugger/debugger_node.cc
index 4bfec06..31374c6 100644
--- a/chrome/browser/debugger/debugger_node.cc
+++ b/chrome/browser/debugger/debugger_node.cc
@@ -201,7 +201,7 @@ v8::Handle<v8::Value> BrowserNode::PropGetter(v8::Handle<v8::String> prop,
if (b != NULL) {
if (prop->Equals(v8::String::New("title"))) {
const TabContents *t = b->GetSelectedTabContents();
- std::wstring title = t->GetTitle();
+ std::wstring title = UTF16ToWideHack(t->GetTitle());
std::string title2 = WideToUTF8(title);
return v8::String::New(title2.c_str());
} else if (prop->Equals(v8::String::New("tab"))) {
@@ -359,7 +359,7 @@ v8::Handle<v8::Value> TabNode::PropGetter(v8::Handle<v8::String> prop,
if (t != NULL) {
WebContents* web = t->AsWebContents();
if (prop->Equals(v8::String::New("title"))) {
- std::wstring title = t->GetTitle();
+ std::wstring title = UTF16ToWideHack(t->GetTitle());
std::string title2 = WideToUTF8(title);
return v8::String::New(title2.c_str());
} else if (web) {
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc
index 79c6a07..b60a16c 100644
--- a/chrome/browser/memory_details.cc
+++ b/chrome/browser/memory_details.cc
@@ -6,6 +6,7 @@
#include <psapi.h>
#include "base/file_version_info.h"
+#include "base/string_util.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/renderer_host/render_process_host.h"
@@ -212,7 +213,7 @@ void MemoryDetails::CollectChildInfoOnUIThread() {
contents = host->delegate()->GetAsWebContents();
if (!contents)
continue;
- std::wstring title = contents->GetTitle();
+ std::wstring title = UTF16ToWideHack(contents->GetTitle());
if (!title.length())
title = L"Untitled";
process.titles.push_back(title);
diff --git a/chrome/browser/navigation_entry_unittest.cc b/chrome/browser/navigation_entry_unittest.cc
index a8c98d8..ebeeae8 100644
--- a/chrome/browser/navigation_entry_unittest.cc
+++ b/chrome/browser/navigation_entry_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/string16.h"
#include "chrome/browser/tab_contents/navigation_entry.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -17,7 +18,7 @@ class NavigationEntryTest : public testing::Test {
entry2_.reset(new NavigationEntry(TAB_CONTENTS_DOM_UI, instance_, 3,
GURL("test:url"),
GURL("from"),
- L"title",
+ ASCIIToUTF16("title"),
PageTransition::TYPED));
}
@@ -49,17 +50,18 @@ TEST_F(NavigationEntryTest, NavigationEntryURLs) {
EXPECT_EQ(GURL(), entry1_.get()->url());
EXPECT_EQ(GURL(), entry1_.get()->display_url());
- EXPECT_EQ(L"", entry1_.get()->GetTitleForDisplay());
+ EXPECT_TRUE(entry1_.get()->GetTitleForDisplay(NULL).empty());
// Setting URL affects display_url and GetTitleForDisplay
entry1_.get()->set_url(GURL("http://www.google.com"));
EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->url());
EXPECT_EQ(GURL("http://www.google.com/"), entry1_.get()->display_url());
- EXPECT_EQ(L"http://www.google.com/", entry1_.get()->GetTitleForDisplay());
+ EXPECT_EQ(ASCIIToUTF16("http://www.google.com/"),
+ entry1_.get()->GetTitleForDisplay(NULL));
// Title affects GetTitleForDisplay
- entry1_.get()->set_title(L"Google");
- EXPECT_EQ(L"Google", entry1_.get()->GetTitleForDisplay());
+ entry1_.get()->set_title(ASCIIToWide("Google"));
+ EXPECT_EQ(ASCIIToUTF16("Google"), entry1_.get()->GetTitleForDisplay(NULL));
// Setting display_url doesn't affect URL
entry2_.get()->set_display_url(GURL("display:url"));
@@ -68,7 +70,7 @@ TEST_F(NavigationEntryTest, NavigationEntryURLs) {
EXPECT_EQ(GURL("display:url"), entry2_.get()->display_url());
// Having a title set in constructor overrides display URL
- EXPECT_EQ(L"title", entry2_.get()->GetTitleForDisplay());
+ EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->GetTitleForDisplay(NULL));
// User typed URL is independent of the others
EXPECT_EQ(GURL(), entry1_.get()->user_typed_url());
@@ -146,8 +148,8 @@ TEST_F(NavigationEntryTest, NavigationEntryAccessors) {
// Title
EXPECT_EQ(std::wstring(), entry1_.get()->title());
EXPECT_EQ(L"title", entry2_.get()->title());
- entry2_.get()->set_title(L"title2");
- EXPECT_EQ(L"title2", entry2_.get()->title());
+ entry2_.get()->set_title(ASCIIToUTF16("title2"));
+ EXPECT_EQ(ASCIIToUTF16("title2"), entry2_.get()->title());
// State
EXPECT_EQ(std::string(), entry1_.get()->content_state());
diff --git a/chrome/browser/printing/print_view_manager.cc b/chrome/browser/printing/print_view_manager.cc
index c448dbb..1491bf0 100644
--- a/chrome/browser/printing/print_view_manager.cc
+++ b/chrome/browser/printing/print_view_manager.cc
@@ -118,7 +118,7 @@ void PrintViewManager::DidPrintPage(
}
std::wstring PrintViewManager::RenderSourceName() {
- std::wstring name(owner_.GetTitle());
+ std::wstring name(UTF16ToWideHack(owner_.GetTitle()));
if (name.empty())
name = l10n_util::GetString(IDS_DEFAULT_PRINT_DOCUMENT_TITLE);
return name;
diff --git a/chrome/browser/sessions/base_session_service.cc b/chrome/browser/sessions/base_session_service.cc
index 33db25d..29bbf7b 100644
--- a/chrome/browser/sessions/base_session_service.cc
+++ b/chrome/browser/sessions/base_session_service.cc
@@ -158,7 +158,7 @@ SessionCommand* BaseSessionService::CreateUpdateTabNavigationCommand(
entry.display_url().spec());
WriteWStringToPickle(pickle, &bytes_written, max_state_size,
- entry.title());
+ UTF16ToWideHack(entry.title()));
WriteStringToPickle(pickle, &bytes_written, max_state_size,
entry.content_state());
diff --git a/chrome/browser/site_instance_unittest.cc b/chrome/browser/site_instance_unittest.cc
index 8f6b186..cbe50dd 100644
--- a/chrome/browser/site_instance_unittest.cc
+++ b/chrome/browser/site_instance_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/string16.h"
#include "chrome/browser/renderer_host/browser_render_process_host.h"
#include "chrome/browser/renderer_host/render_view_host.h"
#include "chrome/browser/tab_contents/navigation_entry.h"
@@ -79,7 +80,7 @@ TEST_F(SiteInstanceTest, SiteInstanceDestructor) {
NavigationEntry* e1 = new NavigationEntry(TAB_CONTENTS_WEB, instance, 0, url,
GURL(),
- std::wstring(),
+ string16(),
PageTransition::LINK);
// Redundantly setting e1's SiteInstance shouldn't affect the ref count.
diff --git a/chrome/browser/tab_contents/interstitial_page.cc b/chrome/browser/tab_contents/interstitial_page.cc
index 688c6f1..fad7d21 100644
--- a/chrome/browser/tab_contents/interstitial_page.cc
+++ b/chrome/browser/tab_contents/interstitial_page.cc
@@ -392,7 +392,7 @@ void InterstitialPage::UpdateTitle(RenderViewHost* render_view_host,
// If this interstitial is shown on an existing navigation entry, we'll need
// to remember its title so we can revert to it when hidden.
if (!new_navigation_ && !should_revert_tab_title_) {
- original_tab_title_ = entry->title();
+ original_tab_title_ = UTF16ToWideHack(entry->title());
should_revert_tab_title_ = true;
}
entry->set_title(title);
diff --git a/chrome/browser/tab_contents/navigation_controller.cc b/chrome/browser/tab_contents/navigation_controller.cc
index eb7b613..374b1804 100644
--- a/chrome/browser/tab_contents/navigation_controller.cc
+++ b/chrome/browser/tab_contents/navigation_controller.cc
@@ -476,12 +476,12 @@ NavigationEntry* NavigationController::CreateNavigationEntry(
NavigationEntry* entry = new NavigationEntry(type, NULL, -1, real_url,
referrer,
- std::wstring(), transition);
+ string16(), 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())));
+ entry->set_title(WideToUTF16Hack(
+ file_util::GetFilenameFromPath(UTF8ToWide(url.host() + url.path()))));
}
return entry;
}
@@ -514,7 +514,7 @@ void NavigationController::LoadURLLazily(const GURL& url,
const std::wstring& title,
SkBitmap* icon) {
NavigationEntry* entry = CreateNavigationEntry(url, referrer, type);
- entry->set_title(title);
+ entry->set_title(WideToUTF16Hack(title));
if (icon)
entry->favicon().set_bitmap(*icon);
@@ -527,11 +527,11 @@ bool NavigationController::LoadingURLLazily() {
return load_pending_entry_when_active_;
}
-const std::wstring& NavigationController::GetLazyTitle() const {
+const string16& NavigationController::GetLazyTitle() const {
if (pending_entry_)
- return pending_entry_->GetTitleForDisplay();
+ return pending_entry_->GetTitleForDisplay(this);
else
- return EmptyWString();
+ return EmptyString16();
}
const SkBitmap& NavigationController::GetLazyFavIcon() const {
diff --git a/chrome/browser/tab_contents/navigation_controller.h b/chrome/browser/tab_contents/navigation_controller.h
index 00b6b0f..3de03e5 100644
--- a/chrome/browser/tab_contents/navigation_controller.h
+++ b/chrome/browser/tab_contents/navigation_controller.h
@@ -11,6 +11,7 @@
#include "base/linked_ptr.h"
#include "base/ref_counted.h"
+#include "base/string16.h"
#include "googleurl/src/gurl.h"
#include "chrome/browser/sessions/session_id.h"
#include "chrome/browser/ssl/ssl_manager.h"
@@ -360,7 +361,7 @@ class NavigationController {
// titles and favicons. Since no request was made, this is the only info
// we have about this page. This feature is used by web application clusters.
bool LoadingURLLazily();
- const std::wstring& GetLazyTitle() const;
+ const string16& GetLazyTitle() const;
const SkBitmap& GetLazyFavIcon() const;
// Returns the identifier used by session restore.
diff --git a/chrome/browser/tab_contents/navigation_entry.cc b/chrome/browser/tab_contents/navigation_entry.cc
index e243f8a..010c94a 100644
--- a/chrome/browser/tab_contents/navigation_entry.cc
+++ b/chrome/browser/tab_contents/navigation_entry.cc
@@ -4,6 +4,10 @@
#include "chrome/browser/tab_contents/navigation_entry.h"
+#include "chrome/browser/tab_contents/navigation_controller.h"
+#include "chrome/common/gfx/text_elider.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/common/pref_service.h"
#include "chrome/common/url_constants.h"
#include "chrome/common/resource_bundle.h"
@@ -43,7 +47,7 @@ NavigationEntry::NavigationEntry(TabContentsType type,
int page_id,
const GURL& url,
const GURL& referrer,
- const std::wstring& title,
+ const string16& title,
PageTransition::Type transition_type)
: unique_id_(GetUniqueID()),
tab_type_(type),
@@ -58,10 +62,32 @@ NavigationEntry::NavigationEntry(TabContentsType type,
restored_(false) {
}
-const std::wstring& NavigationEntry::GetTitleForDisplay() {
- if (title_.empty())
- return display_url_as_string_;
- return title_;
+const string16& NavigationEntry::GetTitleForDisplay(
+ const NavigationController* navigation_controller) {
+ // Most pages have real titles. Don't even bother caching anything if this is
+ // the case.
+ if (!title_.empty())
+ return title_;
+
+ // More complicated cases will use the URLs as the title. This result we will
+ // cache since it's more complicated to compute.
+ if (!cached_display_title_.empty())
+ return cached_display_title_;
+
+ // Use the display URL first if any, and fall back on using the real URL.
+ std::wstring languages;
+ if (navigation_controller) {
+ languages = navigation_controller->profile()->GetPrefs()->GetString(
+ prefs::kAcceptLanguages);
+ }
+ if (!display_url_.is_empty()) {
+ cached_display_title_ = WideToUTF16Hack(gfx::GetCleanStringFromUrl(
+ display_url_, languages, NULL, NULL));
+ } else if (!url_.is_empty()) {
+ cached_display_title_ = WideToUTF16Hack(gfx::GetCleanStringFromUrl(
+ display_url_, languages, NULL, NULL));
+ }
+ return cached_display_title_;
}
bool NavigationEntry::IsViewSourceMode() const {
diff --git a/chrome/browser/tab_contents/navigation_entry.h b/chrome/browser/tab_contents/navigation_entry.h
index 20d3fd4..9cad672 100644
--- a/chrome/browser/tab_contents/navigation_entry.h
+++ b/chrome/browser/tab_contents/navigation_entry.h
@@ -16,6 +16,8 @@
#include "grit/theme_resources.h"
#include "skia/include/SkBitmap.h"
+class NavigationController;
+
////////////////////////////////////////////////////////////////////////////////
//
// NavigationEntry class
@@ -169,7 +171,7 @@ class NavigationEntry {
int page_id,
const GURL& url,
const GURL& referrer,
- const std::wstring& title,
+ const string16& title,
PageTransition::Type transition_type);
~NavigationEntry() {
}
@@ -221,10 +223,7 @@ class NavigationEntry {
// the user.
void set_url(const GURL& url) {
url_ = url;
- if (display_url_.is_empty()) {
- // If there is no explicit display URL, then we'll display this URL.
- display_url_as_string_ = UTF8ToWide(url_.spec());
- }
+ cached_display_title_.clear();
}
const GURL& url() const {
return url_;
@@ -247,7 +246,7 @@ class NavigationEntry {
// if there is no overridden display URL, it will return the actual one.
void set_display_url(const GURL& url) {
display_url_ = (url == url_) ? GURL() : url;
- display_url_as_string_ = UTF8ToWide(url.spec());
+ cached_display_title_.clear();
}
bool has_display_url() const {
return !display_url_.is_empty();
@@ -260,10 +259,11 @@ class NavigationEntry {
// The caller is responsible for detecting when there is no title and
// displaying the appropriate "Untitled" label if this is being displayed to
// the user.
- void set_title(const std::wstring& title) {
+ void set_title(const string16& title) {
title_ = title;
+ cached_display_title_.clear();
}
- const std::wstring& title() const {
+ const string16& title() const {
return title_;
}
@@ -313,7 +313,11 @@ class NavigationEntry {
// Returns the title to be displayed on the tab. This could be the title of
// the page if it is available or the URL.
- const std::wstring& GetTitleForDisplay();
+ //
+ // The NavigationController corresponding to this entry must be given so we
+ // can get the preferences so we can optionally format a URL for display. It
+ // may be NULL if you don't need proper URL formatting (e.g. unit tests).
+ const string16& GetTitleForDisplay(const NavigationController* controller);
// Returns true if the current tab is in view source mode. This will be false
// if there is no navigation.
@@ -383,14 +387,8 @@ class NavigationEntry {
PageType page_type_;
GURL url_;
GURL referrer_;
-
GURL display_url_;
-
- // We cache a copy of the display URL as a string so we don't have to
- // convert the display URL to a wide string every time we paint.
- std::wstring display_url_as_string_;
-
- std::wstring title_;
+ string16 title_;
FaviconStatus favicon_;
std::string content_state_;
int32 page_id_;
@@ -400,6 +398,12 @@ class NavigationEntry {
bool has_post_data_;
bool restored_;
+ // This is a cached version of the result of GetTitleForDisplay. It prevents
+ // us from having to do URL formatting on the URL evey time the title is
+ // displayed. When the URL, display URL, or title is set, this should be
+ // cleared to force a refresh.
+ string16 cached_display_title_;
+
// Copy and assignment is explicitly allowed for this class.
};
diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc
index 39ea878..7905364 100644
--- a/chrome/browser/tab_contents/tab_contents.cc
+++ b/chrome/browser/tab_contents/tab_contents.cc
@@ -149,7 +149,7 @@ const GURL& TabContents::GetURL() const {
return entry ? entry->display_url() : GURL::EmptyGURL();
}
-const std::wstring& TabContents::GetTitle() const {
+const string16& TabContents::GetTitle() const {
// We use the title for the last committed entry rather than a pending
// navigation entry. For example, when the user types in a URL, we want to
// keep the old page's title until the new load has committed and we get a new
@@ -158,14 +158,14 @@ const std::wstring& TabContents::GetTitle() const {
// their title, as they are not committed.
NavigationEntry* entry = controller_->GetTransientEntry();
if (entry)
- return entry->GetTitleForDisplay();
+ return entry->GetTitleForDisplay(controller_);
entry = controller_->GetLastCommittedEntry();
if (entry)
- return entry->GetTitleForDisplay();
+ return entry->GetTitleForDisplay(controller_);
else if (controller_->LoadingURLLazily())
return controller_->GetLazyTitle();
- return EmptyWString();
+ return EmptyString16();
}
int32 TabContents::GetMaxPageID() {
diff --git a/chrome/browser/tab_contents/tab_contents.h b/chrome/browser/tab_contents/tab_contents.h
index 41b47bf..e0ea375 100644
--- a/chrome/browser/tab_contents/tab_contents.h
+++ b/chrome/browser/tab_contents/tab_contents.h
@@ -180,7 +180,7 @@ class TabContents : public PageNavigator,
// pending may be provisional (e.g., the navigation could result in a
// download, in which case the URL would revert to what it was previously).
const GURL& GetURL() const;
- virtual const std::wstring& GetTitle() const;
+ virtual const string16& GetTitle() const; // Overridden by DOMUIContents.
// The max PageID of any page that this TabContents has loaded. PageIDs
// increase with each new page that is loaded by a tab. If this is a
diff --git a/chrome/browser/tab_contents/web_contents.cc b/chrome/browser/tab_contents/web_contents.cc
index 1337b51..15b55e4 100644
--- a/chrome/browser/tab_contents/web_contents.cc
+++ b/chrome/browser/tab_contents/web_contents.cc
@@ -523,7 +523,7 @@ void WebContents::CreateShortcut() {
// effectively cancel the pending install request.
pending_install_.page_id = entry->page_id();
pending_install_.icon = GetFavIcon();
- pending_install_.title = GetTitle();
+ pending_install_.title = UTF16ToWideHack(GetTitle());
pending_install_.url = GetURL();
if (pending_install_.callback_functor) {
pending_install_.callback_functor->Cancel();
diff --git a/chrome/browser/task_manager_resource_providers.cc b/chrome/browser/task_manager_resource_providers.cc
index 47ff2b4..1b68194 100644
--- a/chrome/browser/task_manager_resource_providers.cc
+++ b/chrome/browser/task_manager_resource_providers.cc
@@ -46,7 +46,7 @@ std::wstring TaskManagerWebContentsResource::GetTitle() const {
return std::wstring();
// Fall back on the URL if there's no title.
- std::wstring tab_title(web_contents_->GetTitle());
+ std::wstring tab_title(UTF16ToWideHack(web_contents_->GetTitle()));
if (tab_title.empty()) {
tab_title = UTF8ToWide(web_contents_->GetURL().spec());
// Force URL to be LTR.
diff --git a/chrome/browser/views/blocked_popup_container.cc b/chrome/browser/views/blocked_popup_container.cc
index 8dc96d6..8edf71e 100644
--- a/chrome/browser/views/blocked_popup_container.cc
+++ b/chrome/browser/views/blocked_popup_container.cc
@@ -298,10 +298,10 @@ int BlockedPopupContainer::GetTabContentsCount() const {
std::wstring BlockedPopupContainer::GetDisplayStringForItem(int index) {
const GURL& url = blocked_popups_[index].first->GetURL().GetOrigin();
- std::wstring label =
- l10n_util::GetStringF(IDS_POPUP_TITLE_FORMAT,
- UTF8ToWide(url.possibly_invalid_spec()),
- blocked_popups_[index].first->GetTitle());
+ std::wstring label = l10n_util::GetStringF(
+ IDS_POPUP_TITLE_FORMAT,
+ UTF8ToWide(url.possibly_invalid_spec()),
+ UTF16ToWideHack(blocked_popups_[index].first->GetTitle()));
return label;
}
diff --git a/chrome/browser/views/bug_report_view.cc b/chrome/browser/views/bug_report_view.cc
index 4b3a5fa..e1375f9 100644
--- a/chrome/browser/views/bug_report_view.cc
+++ b/chrome/browser/views/bug_report_view.cc
@@ -154,7 +154,7 @@ void BugReportView::SetupControl() {
page_title_label_ = new views::Label(
l10n_util::GetString(IDS_BUGREPORT_REPORT_PAGE_TITLE));
- page_title_text_ = new views::Label(tab_->GetTitle());
+ page_title_text_ = new views::Label(UTF16ToWideHack(tab_->GetTitle()));
page_url_label_ = new views::Label(
l10n_util::GetString(IDS_BUGREPORT_REPORT_URL_LABEL));
// page_url_text_'s text (if any) is filled in after dialog creation
diff --git a/chrome/browser/views/hung_renderer_view.cc b/chrome/browser/views/hung_renderer_view.cc
index da026f9..590e8a8 100644
--- a/chrome/browser/views/hung_renderer_view.cc
+++ b/chrome/browser/views/hung_renderer_view.cc
@@ -82,7 +82,7 @@ int HungPagesTableModel::RowCount() {
std::wstring HungPagesTableModel::GetText(int row, int column_id) {
DCHECK(row >= 0 && row < RowCount());
- std::wstring title = webcontentses_.at(row)->GetTitle();
+ std::wstring title = UTF16ToWideHack(webcontentses_.at(row)->GetTitle());
if (title.empty())
title = l10n_util::GetString(IDS_TAB_UNTITLED_TITLE);
// TODO(xji): Consider adding a special case if the title text is a URL,
diff --git a/chrome/browser/views/location_bar_view.cc b/chrome/browser/views/location_bar_view.cc
index 8290b01..e12f4e2 100644
--- a/chrome/browser/views/location_bar_view.cc
+++ b/chrome/browser/views/location_bar_view.cc
@@ -322,7 +322,7 @@ SkBitmap LocationBarView::GetFavIcon() const {
std::wstring LocationBarView::GetTitle() const {
DCHECK(delegate_);
DCHECK(delegate_->GetTabContents());
- return delegate_->GetTabContents()->GetTitle();
+ return UTF16ToWideHack(delegate_->GetTabContents()->GetTitle());
}
void LocationBarView::DoLayout(const bool force_layout) {
diff --git a/chrome/browser/views/sad_tab_view.h b/chrome/browser/views/sad_tab_view.h
index 15e7afe..be33df1 100644
--- a/chrome/browser/views/sad_tab_view.h
+++ b/chrome/browser/views/sad_tab_view.h
@@ -54,4 +54,5 @@ class SadTabView : public views::View {
DISALLOW_EVIL_CONSTRUCTORS(SadTabView);
};
-#endif // #ifndef CHROME_BROWSER_VIEWS_SAD_TAB_H_
+#endif // CHROME_BROWSER_VIEWS_SAD_TAB_H__
+
diff --git a/chrome/browser/views/star_toggle.h b/chrome/browser/views/star_toggle.h
index 95f64db..1475ab4 100644
--- a/chrome/browser/views/star_toggle.h
+++ b/chrome/browser/views/star_toggle.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_VIEWS_STAR_TOGGLE_H__
-#define CHROME_BROWSER_VIEWS_STAR_TOGGLE_H__
+#ifndef CHROME_BROWSER_VIEWS_STAR_TOGGLE_H_
+#define CHROME_BROWSER_VIEWS_STAR_TOGGLE_H_
#include "chrome/views/view.h"
#include "chrome/views/event.h"
@@ -66,5 +66,4 @@ class StarToggle : public views::View {
DISALLOW_EVIL_CONSTRUCTORS(StarToggle);
};
-#endif // CHROME_BROWSER_VIEWS_STAR_TOGGLE_H__
-
+#endif // CHROME_BROWSER_VIEWS_STAR_TOGGLE_H_
diff --git a/chrome/browser/views/tab_icon_view.h b/chrome/browser/views/tab_icon_view.h
index 3a731fc..d210ba4 100644
--- a/chrome/browser/views/tab_icon_view.h
+++ b/chrome/browser/views/tab_icon_view.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_VIEW_TAB_ICON_VIEW_H__
-#define CHROME_BROWSER_VIEW_TAB_ICON_VIEW_H__
+#ifndef CHROME_BROWSER_VIEW_TAB_ICON_VIEW_H_
+#define CHROME_BROWSER_VIEW_TAB_ICON_VIEW_H_
#include "chrome/views/view.h"
@@ -66,8 +66,7 @@ class TabIconView : public views::View {
// throbber_running_ is true.
int throbber_frame_;
- DISALLOW_EVIL_CONSTRUCTORS(TabIconView);
+ DISALLOW_COPY_AND_ASSIGN(TabIconView);
};
-#endif // CHROME_BROWSER_VIEW_TAB_ICON_VIEW_H__
-
+#endif // CHROME_BROWSER_VIEW_TAB_ICON_VIEW_H_
diff --git a/chrome/browser/views/tabs/tab_renderer.cc b/chrome/browser/views/tabs/tab_renderer.cc
index 1580d05..ede0848 100644
--- a/chrome/browser/views/tabs/tab_renderer.cc
+++ b/chrome/browser/views/tabs/tab_renderer.cc
@@ -281,7 +281,7 @@ TabRenderer::~TabRenderer() {
void TabRenderer::UpdateData(TabContents* contents) {
DCHECK(contents);
data_.favicon = contents->GetFavIcon();
- data_.title = contents->GetTitle();
+ data_.title = UTF16ToWideHack(contents->GetTitle());
data_.loading = contents->is_loading();
data_.off_the_record = contents->profile()->IsOffTheRecord();
data_.show_icon = contents->ShouldDisplayFavIcon();
diff --git a/chrome/browser/views/toolbar_view.cc b/chrome/browser/views/toolbar_view.cc
index 25c7161..f060135 100644
--- a/chrome/browser/views/toolbar_view.cc
+++ b/chrome/browser/views/toolbar_view.cc
@@ -770,7 +770,8 @@ void BrowserToolbarView::WriteDragData(views::View* sender,
}
}
- drag_utils::SetURLAndDragImage(tab_->GetURL(), tab_->GetTitle(),
+ drag_utils::SetURLAndDragImage(tab_->GetURL(),
+ UTF16ToWideHack(tab_->GetTitle()),
tab_->GetFavIcon(), data);
}
diff --git a/chrome/common/temp_scaffolding_stubs.cc b/chrome/common/temp_scaffolding_stubs.cc
index cd053ff..c8f570b 100644
--- a/chrome/common/temp_scaffolding_stubs.cc
+++ b/chrome/common/temp_scaffolding_stubs.cc
@@ -285,7 +285,7 @@ const GURL& TabContents::GetURL() const {
return entry ? entry->display_url() : GURL::EmptyGURL();
}
-const std::wstring& TabContents::GetTitle() const {
+const string16& TabContents::GetTitle() const {
// We use the title for the last committed entry rather than a pending
// navigation entry. For example, when the user types in a URL, we want to
// keep the old page's title until the new load has committed and we get a new
@@ -294,14 +294,14 @@ const std::wstring& TabContents::GetTitle() const {
// their title, as they are not committed.
NavigationEntry* entry = controller_->GetTransientEntry();
if (entry)
- return entry->GetTitleForDisplay();
+ return entry->GetTitleForDisplay(controller_);
entry = controller_->GetLastCommittedEntry();
if (entry)
- return entry->GetTitleForDisplay();
+ return entry->GetTitleForDisplay(controller_);
else if (controller_->LoadingURLLazily())
return controller_->GetLazyTitle();
- return EmptyWString();
+ return EmptyString16();
}
void TabContents::NotifyNavigationStateChanged(unsigned changed_flags) {