Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Unified Diff: chrome/browser/ui/webui/fileicon_source_chromeos.cc

Issue 8480033: CrOs: Remove 29 exit time destructors and 8 static initializers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: reupload 2 Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/web_socket_proxy.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/fileicon_source_chromeos.cc
diff --git a/chrome/browser/ui/webui/fileicon_source_chromeos.cc b/chrome/browser/ui/webui/fileicon_source_chromeos.cc
index f9a24d5dced63ef653803850731c440cc6025583..d0dc1d5ddd571d22aeefa4ddaf9085021420c969 100644
--- a/chrome/browser/ui/webui/fileicon_source_chromeos.cc
+++ b/chrome/browser/ui/webui/fileicon_source_chromeos.cc
@@ -40,12 +40,6 @@ typedef std::map<std::string, IdrBySize> ExtensionIconSizeMap;
const char *kIconSize = "iconsize";
-QueryIconSizeMap::value_type kQueryIconSizeData[] = {
- std::make_pair("small", IconLoader::SMALL),
- std::make_pair("normal", IconLoader::NORMAL),
- std::make_pair("large", IconLoader::LARGE)
-};
-
const IdrBySize kAudioIdrs = {
IDR_FILE_MANAGER_IMG_FILETYPE_AUDIO,
IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_AUDIO,
@@ -112,6 +106,18 @@ const IdrBySize kVideoIdrs = {
IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_VIDEO
};
+QueryIconSizeMap BuildQueryIconSizeMap() {
+ QueryIconSizeMap::value_type kQueryIconSizeData[] = {
+ std::make_pair("small", IconLoader::SMALL),
+ std::make_pair("normal", IconLoader::NORMAL),
+ std::make_pair("large", IconLoader::LARGE)
+ };
+
+ size_t kQSize = arraysize(kQueryIconSizeData);
+ return QueryIconSizeMap(&kQueryIconSizeData[0],
+ &kQueryIconSizeData[kQSize]);
+}
+
// The code below should match translation in
// chrome/browser/resources/file_manager/js/file_manager.js
// chrome/browser/resources/file_manager/css/file_manager.css
@@ -122,54 +128,49 @@ const IdrBySize kVideoIdrs = {
// 'text': /\.(pod|rst|txt|log)$/i,
// 'video': /\.(mov|mp4|m4v|mpe?g4?|ogm|ogv|ogx|webm)$/i
-const ExtensionIconSizeMap::value_type kExtensionIdrBySizeData[] = {
+ExtensionIconSizeMap BuildExtensionIdrSizeMap() {
+ const ExtensionIconSizeMap::value_type kExtensionIdrBySizeData[] = {
#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS)
- std::make_pair(".m4a", kAudioIdrs),
- std::make_pair(".mp3", kAudioIdrs),
- std::make_pair(".pdf", kPdfIdrs),
- std::make_pair(".3gp", kVideoIdrs),
- std::make_pair(".avi", kVideoIdrs),
- std::make_pair(".m4v", kVideoIdrs),
- std::make_pair(".mov", kVideoIdrs),
- std::make_pair(".mp4", kVideoIdrs),
- std::make_pair(".mpeg", kVideoIdrs),
- std::make_pair(".mpg", kVideoIdrs),
- std::make_pair(".mpeg4", kVideoIdrs),
- std::make_pair(".mpg4", kVideoIdrs),
+ std::make_pair(".m4a", kAudioIdrs),
+ std::make_pair(".mp3", kAudioIdrs),
+ std::make_pair(".pdf", kPdfIdrs),
+ std::make_pair(".3gp", kVideoIdrs),
+ std::make_pair(".avi", kVideoIdrs),
+ std::make_pair(".m4v", kVideoIdrs),
+ std::make_pair(".mov", kVideoIdrs),
+ std::make_pair(".mp4", kVideoIdrs),
+ std::make_pair(".mpeg", kVideoIdrs),
+ std::make_pair(".mpg", kVideoIdrs),
+ std::make_pair(".mpeg4", kVideoIdrs),
+ std::make_pair(".mpg4", kVideoIdrs),
#endif
- std::make_pair(".flac", kAudioIdrs),
- std::make_pair(".oga", kAudioIdrs),
- std::make_pair(".ogg", kAudioIdrs),
- std::make_pair(".wav", kAudioIdrs),
- std::make_pair(".htm", kHtmlIdrs),
- std::make_pair(".html", kHtmlIdrs),
- std::make_pair(".bmp", kImageIdrs),
- std::make_pair(".gif", kImageIdrs),
- std::make_pair(".ico", kImageIdrs),
- std::make_pair(".jpeg", kImageIdrs),
- std::make_pair(".jpg", kImageIdrs),
- std::make_pair(".png", kImageIdrs),
- std::make_pair(".webp", kImageIdrs),
- std::make_pair(".log", kTextIdrs),
- std::make_pair(".pod", kTextIdrs),
- std::make_pair(".rst", kTextIdrs),
- std::make_pair(".txt", kTextIdrs),
- std::make_pair(".ogm", kVideoIdrs),
- std::make_pair(".ogv", kVideoIdrs),
- std::make_pair(".ogx", kVideoIdrs),
- std::make_pair(".webm", kVideoIdrs),
-};
-
-const size_t kQSize = arraysize(kQueryIconSizeData);
-
-const QueryIconSizeMap kQueryIconSizeMap(&kQueryIconSizeData[0],
- &kQueryIconSizeData[kQSize]);
+ std::make_pair(".flac", kAudioIdrs),
+ std::make_pair(".oga", kAudioIdrs),
+ std::make_pair(".ogg", kAudioIdrs),
+ std::make_pair(".wav", kAudioIdrs),
+ std::make_pair(".htm", kHtmlIdrs),
+ std::make_pair(".html", kHtmlIdrs),
+ std::make_pair(".bmp", kImageIdrs),
+ std::make_pair(".gif", kImageIdrs),
+ std::make_pair(".ico", kImageIdrs),
+ std::make_pair(".jpeg", kImageIdrs),
+ std::make_pair(".jpg", kImageIdrs),
+ std::make_pair(".png", kImageIdrs),
+ std::make_pair(".webp", kImageIdrs),
+ std::make_pair(".log", kTextIdrs),
+ std::make_pair(".pod", kTextIdrs),
+ std::make_pair(".rst", kTextIdrs),
+ std::make_pair(".txt", kTextIdrs),
+ std::make_pair(".ogm", kVideoIdrs),
+ std::make_pair(".ogv", kVideoIdrs),
+ std::make_pair(".ogx", kVideoIdrs),
+ std::make_pair(".webm", kVideoIdrs),
+ };
-const size_t kESize = arraysize(kExtensionIdrBySizeData);
-
-const ExtensionIconSizeMap kExtensionIdrSizeMap(
- &kExtensionIdrBySizeData[0],
- &kExtensionIdrBySizeData[kESize]);
+ const size_t kESize = arraysize(kExtensionIdrBySizeData);
+ return ExtensionIconSizeMap(&kExtensionIdrBySizeData[0],
+ &kExtensionIdrBySizeData[kESize]);
+}
// Split on the very first &. The first part is path, the rest query.
void GetExtensionAndQuery(const std::string& url,
@@ -184,6 +185,8 @@ void GetExtensionAndQuery(const std::string& url,
// Simple parser for data on the query.
IconLoader::IconSize QueryToIconSize(const std::string& query) {
+ CR_DEFINE_STATIC_LOCAL(
+ QueryIconSizeMap, kQueryIconSizeMap, (BuildQueryIconSizeMap()));
typedef std::pair<std::string, std::string> KVPair;
std::vector<KVPair> parameters;
if (base::SplitStringIntoKeyValuePairs(query, '=', '&', &parameters)) {
@@ -202,6 +205,8 @@ IconLoader::IconSize QueryToIconSize(const std::string& query) {
// Finds matching resource of proper size. Fallback to generic.
int UrlToIDR(const std::string& url) {
+ CR_DEFINE_STATIC_LOCAL(
+ ExtensionIconSizeMap, kExtensionIdrSizeMap, (BuildExtensionIdrSizeMap()));
std::string extension, query;
int idr = -1;
GetExtensionAndQuery(url, &extension, &query);
« no previous file with comments | « chrome/browser/chromeos/web_socket_proxy.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698