| 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, '=', '&', ¶meters)) {
|
| @@ -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);
|
|
|