| 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
|
| deleted file mode 100644
|
| index d0dc1d5ddd571d22aeefa4ddaf9085021420c969..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/webui/fileicon_source_chromeos.cc
|
| +++ /dev/null
|
| @@ -1,259 +0,0 @@
|
| -// 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.
|
| -
|
| -#include "chrome/browser/ui/webui/fileicon_source_chromeos.h"
|
| -
|
| -#include <map>
|
| -#include <utility>
|
| -#include <vector>
|
| -
|
| -#include "base/file_util.h"
|
| -#include "base/memory/singleton.h"
|
| -#include "base/string_split.h"
|
| -#include "base/string_util.h"
|
| -#include "base/threading/thread_restrictions.h"
|
| -#include "chrome/browser/icon_loader.h"
|
| -#include "chrome/browser/io_thread.h"
|
| -#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
|
| -#include "chrome/common/url_constants.h"
|
| -#include "googleurl/src/gurl.h"
|
| -#include "grit/component_extension_resources.h"
|
| -#include "grit/component_extension_resources_map.h"
|
| -#include "grit/generated_resources.h"
|
| -#include "grit/theme_resources.h"
|
| -#include "grit/ui_resources.h"
|
| -#include "net/base/escape.h"
|
| -#include "net/base/mime_util.h"
|
| -#include "ui/base/resource/resource_bundle.h"
|
| -
|
| -namespace {
|
| -
|
| -struct IdrBySize {
|
| - int idr_small_;
|
| - int idr_normal_;
|
| - int idr_large_;
|
| -};
|
| -
|
| -typedef std::map<std::string, IconLoader::IconSize> QueryIconSizeMap;
|
| -typedef std::map<std::string, IdrBySize> ExtensionIconSizeMap;
|
| -
|
| -const char *kIconSize = "iconsize";
|
| -
|
| -const IdrBySize kAudioIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_AUDIO,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_AUDIO,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_AUDIO
|
| -};
|
| -const IdrBySize kDeviceIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_DEVICE,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_DEVICE,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_DEVICE
|
| -};
|
| -const IdrBySize kDocIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_DOC,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_DOC,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_DOC
|
| -};
|
| -const IdrBySize kFolderIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_FOLDER,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_FOLDER,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_FOLDER
|
| -};
|
| -const IdrBySize kGenericIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_GENERIC,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_GENERIC,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_GENERIC
|
| -};
|
| -const IdrBySize kHtmlIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_HTML,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_HTML,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_HTML
|
| -};
|
| -const IdrBySize kImageIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_IMAGE,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_IMAGE,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_IMAGE
|
| -};
|
| -const IdrBySize kPdfIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_PDF,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_PDF,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_PDF
|
| -};
|
| -const IdrBySize kPresentationIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_PRESENTATION,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_PRESENTATION,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_PRESENTATION
|
| -};
|
| -const IdrBySize kSpreadsheetIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_SPREADSHEET,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_SPREADSHEET,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_SPREADSHEET
|
| -};
|
| -const IdrBySize kUnreadableDeviceIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_UNREADABLE_DEVICE,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_UNREADABLE_DEVICE,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_UNREADABLE_DEVICE
|
| -};
|
| -const IdrBySize kTextIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_TEXT,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_TEXT,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_TEXT
|
| -};
|
| -const IdrBySize kVideoIdrs = {
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_VIDEO,
|
| - IDR_FILE_MANAGER_IMG_FILETYPE_LARGE_VIDEO,
|
| - 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
|
| -// 'audio': /\.(mp3|m4a|oga|ogg|wav)$/i,
|
| -// 'html': /\.(html?)$/i,
|
| -// 'image': /\.(bmp|gif|jpe?g|ico|png|webp)$/i,
|
| -// 'pdf' : /\.(pdf)$/i,
|
| -// 'text': /\.(pod|rst|txt|log)$/i,
|
| -// 'video': /\.(mov|mp4|m4v|mpe?g4?|ogm|ogv|ogx|webm)$/i
|
| -
|
| -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),
|
| -#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 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,
|
| - std::string* extension,
|
| - std::string* query) {
|
| - // We receive the url with chrome://fileicon/ stripped but GURL expects it.
|
| - const GURL gurl("chrome://fileicon/" + net::EscapePath(url));
|
| - const std::string path = gurl.path();
|
| - *extension = StringToLowerASCII(FilePath(path).Extension());
|
| - *query = gurl.query();
|
| -}
|
| -
|
| -// 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)) {
|
| - for (std::vector<KVPair>::const_iterator itk = parameters.begin();
|
| - itk != parameters.end(); ++itk) {
|
| - if (itk->first == kIconSize) {
|
| - QueryIconSizeMap::const_iterator itq(
|
| - kQueryIconSizeMap.find(itk->second));
|
| - if (itq != kQueryIconSizeMap.end())
|
| - return itq->second;
|
| - }
|
| - }
|
| - }
|
| - return IconLoader::NORMAL;
|
| -}
|
| -
|
| -// 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);
|
| - const IconLoader::IconSize size = QueryToIconSize(query);
|
| - ExtensionIconSizeMap::const_iterator it =
|
| - kExtensionIdrSizeMap.find(extension);
|
| - if (it != kExtensionIdrSizeMap.end()) {
|
| - IdrBySize idrbysize = it->second;
|
| - if (size == IconLoader::SMALL) {
|
| - idr = idrbysize.idr_small_;
|
| - } else if (size == IconLoader::NORMAL) {
|
| - idr = idrbysize.idr_normal_;
|
| - } else if (size == IconLoader::LARGE) {
|
| - idr = idrbysize.idr_large_;
|
| - }
|
| - }
|
| - if (idr == -1) {
|
| - if (size == IconLoader::SMALL) {
|
| - idr = kGenericIdrs.idr_small_;
|
| - } else if (size == IconLoader::NORMAL) {
|
| - idr = kGenericIdrs.idr_normal_;
|
| - } else {
|
| - idr = kGenericIdrs.idr_large_;
|
| - }
|
| - }
|
| - return idr;
|
| -}
|
| -} // namespace
|
| -
|
| -FileIconSourceCros::FileIconSourceCros()
|
| - : DataSource("fileicon", NULL) {
|
| -}
|
| -
|
| -FileIconSourceCros::~FileIconSourceCros() {
|
| -}
|
| -
|
| -void FileIconSourceCros::StartDataRequest(const std::string& url,
|
| - bool is_incognito,
|
| - int request_id) {
|
| - int idr = UrlToIDR(url);
|
| - const ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
| - scoped_refptr<RefCountedStaticMemory> bytes(rb.LoadDataResourceBytes(idr));
|
| - SendResponse(request_id, bytes);
|
| -}
|
| -
|
| -// The mime type refers to the type of the response/icon served.
|
| -std::string FileIconSourceCros::GetMimeType(
|
| - const std::string& url) const {
|
| - return "image/png";
|
| -}
|
|
|