summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authortony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-01 05:40:30 +0000
committertony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-01 05:40:30 +0000
commit47a0b0018dd5d400d9eba166c61582fb38eae807 (patch)
tree280f2843606af0be636ea14dcf309f2b7634807f /chrome/browser
parentb7bb44fe6107abbca930f3db19540d4ce3dbf6dc (diff)
downloadchromium_src-47a0b0018dd5d400d9eba166c61582fb38eae807.zip
chromium_src-47a0b0018dd5d400d9eba166c61582fb38eae807.tar.gz
chromium_src-47a0b0018dd5d400d9eba166c61582fb38eae807.tar.bz2
Remove static initializer in character_encoding.cc.
Also fix the naming of const literals. BUG=94925 Review URL: http://codereview.chromium.org/7816001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99134 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/character_encoding.cc99
-rw-r--r--chrome/browser/ui/toolbar/encoding_menu_controller_unittest.cc8
2 files changed, 55 insertions, 52 deletions
diff --git a/chrome/browser/character_encoding.cc b/chrome/browser/character_encoding.cc
index f6d625b..1c643fe 100644
--- a/chrome/browser/character_encoding.cc
+++ b/chrome/browser/character_encoding.cc
@@ -13,6 +13,7 @@
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
+#include "content/browser/browser_thread.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/l10n/l10n_util_collator.h"
@@ -30,7 +31,7 @@ typedef struct {
} CanonicalEncodingData;
// An array of all supported canonical encoding names.
-static CanonicalEncodingData canonical_encoding_names[] = {
+const CanonicalEncodingData kCanonicalEncodingNames[] = {
{ IDC_ENCODING_UTF8, "UTF-8", IDS_ENCODING_UNICODE },
{ IDC_ENCODING_UTF16LE, "UTF-16LE", IDS_ENCODING_UNICODE },
{ IDC_ENCODING_ISO88591, "ISO-8859-1", IDS_ENCODING_WESTERN },
@@ -70,8 +71,7 @@ static CanonicalEncodingData canonical_encoding_names[] = {
{ IDC_ENCODING_ISO885916, "ISO-8859-16", IDS_ENCODING_ROMANIAN },
};
-static const int canonical_encoding_names_length =
- arraysize(canonical_encoding_names);
+const int kCanonicalEncodingNamesLength = arraysize(kCanonicalEncodingNames);
typedef std::map<int, std::pair<const char*, int> >
IdToCanonicalEncodingNameMapType;
@@ -82,7 +82,7 @@ typedef struct {
const char* display_form;
} CanonicalEncodingDisplayNamePair;
-static CanonicalEncodingDisplayNamePair canonical_display_name_overrides[] = {
+const CanonicalEncodingDisplayNamePair kCanonicalDisplayNameOverrides[] = {
// Only lists the canonical names where we want a different form for display.
{ "macintosh", "Macintosh" },
{ "windows-874", "Windows-874" },
@@ -98,11 +98,10 @@ static CanonicalEncodingDisplayNamePair canonical_display_name_overrides[] = {
{ "windows-1258", "Windows-1258" },
};
-static const int canonical_display_name_overrides_length =
- arraysize(canonical_display_name_overrides);
+const int kCanonicalDisplayNameOverridesLength =
+ arraysize(kCanonicalDisplayNameOverrides);
-typedef std::map<std::string, const char*>
- CanonicalNameDisplayNameMapType;
+typedef std::map<std::string, const char*> CanonicalNameDisplayNameMapType;
class CanonicalEncodingMap {
public:
@@ -139,11 +138,11 @@ const IdToCanonicalEncodingNameMapType*
// thread safe.
if (!id_to_encoding_name_map_.get()) {
id_to_encoding_name_map_.reset(new IdToCanonicalEncodingNameMapType);
- for (int i = 0; i < canonical_encoding_names_length; ++i) {
- int resource_id = canonical_encoding_names[i].resource_id;
+ for (int i = 0; i < kCanonicalEncodingNamesLength; ++i) {
+ int resource_id = kCanonicalEncodingNames[i].resource_id;
(*id_to_encoding_name_map_)[resource_id] =
- std::make_pair(canonical_encoding_names[i].name,
- canonical_encoding_names[i].category_string_id);
+ std::make_pair(kCanonicalEncodingNames[i].name,
+ kCanonicalEncodingNames[i].category_string_id);
}
}
return id_to_encoding_name_map_.get();
@@ -153,9 +152,9 @@ const CanonicalEncodingNameToIdMapType*
CanonicalEncodingMap::GetCanonicalEncodingNameToIdMapData() {
if (!encoding_name_to_id_map_.get()) {
encoding_name_to_id_map_.reset(new CanonicalEncodingNameToIdMapType);
- for (int i = 0; i < canonical_encoding_names_length; ++i) {
- (*encoding_name_to_id_map_)[canonical_encoding_names[i].name] =
- canonical_encoding_names[i].resource_id;
+ for (int i = 0; i < kCanonicalEncodingNamesLength; ++i) {
+ (*encoding_name_to_id_map_)[kCanonicalEncodingNames[i].name] =
+ kCanonicalEncodingNames[i].resource_id;
}
}
return encoding_name_to_id_map_.get();
@@ -166,19 +165,19 @@ const CanonicalNameDisplayNameMapType*
if (!encoding_name_to_display_name_map_.get()) {
encoding_name_to_display_name_map_.reset(
new CanonicalNameDisplayNameMapType);
- // First store the names in the canonical_encoding_names list.
- for (int i = 0; i < canonical_encoding_names_length; ++i) {
- (*encoding_name_to_display_name_map_)[canonical_encoding_names[i].name] =
- canonical_encoding_names[i].name;
+ // First store the names in the kCanonicalEncodingNames list.
+ for (int i = 0; i < kCanonicalEncodingNamesLength; ++i) {
+ (*encoding_name_to_display_name_map_)[kCanonicalEncodingNames[i].name] =
+ kCanonicalEncodingNames[i].name;
}
// Then save in the overrides.
- for (int i = 0; i < canonical_display_name_overrides_length; ++i) {
+ for (int i = 0; i < kCanonicalDisplayNameOverridesLength; ++i) {
(*encoding_name_to_display_name_map_)
- [canonical_display_name_overrides[i].canonical_form] =
- canonical_display_name_overrides[i].display_form;
+ [kCanonicalDisplayNameOverrides[i].canonical_form] =
+ kCanonicalDisplayNameOverrides[i].display_form;
}
DCHECK(static_cast<int>(encoding_name_to_display_name_map_->size()) ==
- canonical_encoding_names_length)
+ kCanonicalEncodingNamesLength)
<< "Got an override that wasn't in the encoding list";
}
return encoding_name_to_display_name_map_.get();
@@ -186,9 +185,13 @@ const CanonicalNameDisplayNameMapType*
// A static map object which contains all resourceid-nonsequenced canonical
// encoding names.
-static CanonicalEncodingMap canonical_encoding_name_map_singleton;
+CanonicalEncodingMap* CanonicalEncodingMapSingleton() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ static CanonicalEncodingMap* singleton = new CanonicalEncodingMap;
+ return singleton;
+}
-const int default_encoding_menus[] = {
+const int kDefaultEncodingMenus[] = {
IDC_ENCODING_UTF16LE,
IDC_ENCODING_ISO88591,
IDC_ENCODING_WINDOWS1252,
@@ -227,7 +230,7 @@ const int default_encoding_menus[] = {
IDC_ENCODING_ISO885916,
};
-const int default_encoding_menus_length = arraysize(default_encoding_menus);
+const int kDefaultEncodingMenusLength = arraysize(kDefaultEncodingMenus);
// Parse the input |encoding_list| which is a encoding list separated with
// comma, get available encoding ids and save them to |available_list|.
@@ -256,8 +259,7 @@ string16 GetEncodingDisplayName(std::string encoding_name,
category_string_id != IDS_ENCODING_THAI &&
category_string_id != IDS_ENCODING_TURKISH) {
const CanonicalNameDisplayNameMapType* map =
- canonical_encoding_name_map_singleton.
- GetCanonicalNameDisplayNameMapData();
+ CanonicalEncodingMapSingleton()->GetCanonicalNameDisplayNameMapData();
DCHECK(map);
CanonicalNameDisplayNameMapType::const_iterator found_name =
@@ -272,8 +274,7 @@ string16 GetEncodingDisplayName(std::string encoding_name,
int GetEncodingCategoryStringIdByCommandId(int id) {
const IdToCanonicalEncodingNameMapType* map =
- canonical_encoding_name_map_singleton.
- GetIdToCanonicalEncodingNameMapData();
+ CanonicalEncodingMapSingleton()->GetIdToCanonicalEncodingNameMapData();
DCHECK(map);
IdToCanonicalEncodingNameMapType::const_iterator found_name = map->find(id);
@@ -302,8 +303,7 @@ CharacterEncoding::EncodingInfo::EncodingInfo(int id)
int CharacterEncoding::GetCommandIdByCanonicalEncodingName(
const std::string& encoding_name) {
const CanonicalEncodingNameToIdMapType* map =
- canonical_encoding_name_map_singleton.
- GetCanonicalEncodingNameToIdMapData();
+ CanonicalEncodingMapSingleton()->GetCanonicalEncodingNameToIdMapData();
DCHECK(map);
CanonicalEncodingNameToIdMapType::const_iterator found_id =
@@ -316,8 +316,7 @@ int CharacterEncoding::GetCommandIdByCanonicalEncodingName(
// Static.
std::string CharacterEncoding::GetCanonicalEncodingNameByCommandId(int id) {
const IdToCanonicalEncodingNameMapType* map =
- canonical_encoding_name_map_singleton.
- GetIdToCanonicalEncodingNameMapData();
+ CanonicalEncodingMapSingleton()->GetIdToCanonicalEncodingNameMapData();
DCHECK(map);
IdToCanonicalEncodingNameMapType::const_iterator found_name = map->find(id);
@@ -330,8 +329,7 @@ std::string CharacterEncoding::GetCanonicalEncodingNameByCommandId(int id) {
string16 CharacterEncoding::GetCanonicalEncodingDisplayNameByCommandId(
int id) {
const IdToCanonicalEncodingNameMapType* map =
- canonical_encoding_name_map_singleton.
- GetIdToCanonicalEncodingNameMapData();
+ CanonicalEncodingMapSingleton()->GetIdToCanonicalEncodingNameMapData();
DCHECK(map);
IdToCanonicalEncodingNameMapType::const_iterator found_name = map->find(id);
@@ -344,29 +342,29 @@ string16 CharacterEncoding::GetCanonicalEncodingDisplayNameByCommandId(
// Static.
// Return count number of all supported canonical encoding.
int CharacterEncoding::GetSupportCanonicalEncodingCount() {
- return canonical_encoding_names_length;
+ return kCanonicalEncodingNamesLength;
}
// Static.
std::string CharacterEncoding::GetCanonicalEncodingNameByIndex(int index) {
- if (index < canonical_encoding_names_length)
- return canonical_encoding_names[index].name;
+ if (index < kCanonicalEncodingNamesLength)
+ return kCanonicalEncodingNames[index].name;
return std::string();
}
// Static.
string16 CharacterEncoding::GetCanonicalEncodingDisplayNameByIndex(
int index) {
- if (index < canonical_encoding_names_length)
- return GetEncodingDisplayName(canonical_encoding_names[index].name,
- canonical_encoding_names[index].category_string_id);
+ if (index < kCanonicalEncodingNamesLength)
+ return GetEncodingDisplayName(kCanonicalEncodingNames[index].name,
+ kCanonicalEncodingNames[index].category_string_id);
return string16();
}
// Static.
int CharacterEncoding::GetEncodingCommandIdByIndex(int index) {
- if (index < canonical_encoding_names_length)
- return canonical_encoding_names[index].resource_id;
+ if (index < kCanonicalEncodingNamesLength)
+ return kCanonicalEncodingNames[index].resource_id;
return 0;
}
@@ -375,8 +373,7 @@ std::string CharacterEncoding::GetCanonicalEncodingNameByAliasName(
const std::string& alias_name) {
// If the input alias_name is already canonical encoding name, just return it.
const CanonicalEncodingNameToIdMapType* map =
- canonical_encoding_name_map_singleton.
- GetCanonicalEncodingNameToIdMapData();
+ CanonicalEncodingMapSingleton()->GetCanonicalEncodingNameToIdMapData();
DCHECK(map);
CanonicalEncodingNameToIdMapType::const_iterator found_id =
@@ -420,9 +417,9 @@ const std::vector<CharacterEncoding::EncodingInfo>*
const std::string& locale_encodings,
const std::string& recently_select_encodings) {
std::vector<int>* const locale_dependent_encoding_list =
- canonical_encoding_name_map_singleton.locale_dependent_encoding_ids();
+ CanonicalEncodingMapSingleton()->locale_dependent_encoding_ids();
std::vector<CharacterEncoding::EncodingInfo>* const encoding_list =
- canonical_encoding_name_map_singleton.current_display_encodings();
+ CanonicalEncodingMapSingleton()->current_display_encodings();
// Initialize locale dependent static encoding list.
if (locale_dependent_encoding_list->empty() && !locale_encodings.empty())
@@ -483,8 +480,8 @@ const std::vector<CharacterEncoding::EncodingInfo>*
// Add the rest of encodings that are neither in the static encoding list
// nor in the list of recently selected encodings.
// Build the encoding list sorted in the current locale sorting order.
- for (int i = 0; i < default_encoding_menus_length; ++i) {
- int id = default_encoding_menus[i];
+ for (int i = 0; i < kDefaultEncodingMenusLength; ++i) {
+ int id = kDefaultEncodingMenus[i];
// We have inserted this encoding, skip it.
if (inserted_encoding.find(id) != inserted_encoding.end())
continue;
@@ -513,7 +510,7 @@ bool CharacterEncoding::UpdateRecentlySelectedEncoding(
// Check whether the new encoding is in local dependent encodings or original
// recently selected encodings. If yes, do not add it.
std::vector<int>* locale_dependent_encoding_list =
- canonical_encoding_name_map_singleton.locale_dependent_encoding_ids();
+ CanonicalEncodingMapSingleton()->locale_dependent_encoding_ids();
DCHECK(locale_dependent_encoding_list);
std::vector<int> selected_encoding_list;
ParseEncodingListSeparatedWithComma(original_selected_encodings,
diff --git a/chrome/browser/ui/toolbar/encoding_menu_controller_unittest.cc b/chrome/browser/ui/toolbar/encoding_menu_controller_unittest.cc
index 0dc0216..a3379ad 100644
--- a/chrome/browser/ui/toolbar/encoding_menu_controller_unittest.cc
+++ b/chrome/browser/ui/toolbar/encoding_menu_controller_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -15,6 +15,12 @@
#include "testing/gtest/include/gtest/gtest.h"
class EncodingMenuControllerTest : public testing::Test {
+ public:
+ EncodingMenuControllerTest()
+ : ui_thread_(BrowserThread::UI, &message_loop_) {}
+ private:
+ MessageLoop message_loop_;
+ BrowserThread ui_thread_;
};
TEST_F(EncodingMenuControllerTest, EncodingIDsBelongTest) {