| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/common/net/net_resource_provider.h" | 5 #include "chrome/common/net/net_resource_provider.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/string_piece.h" | 9 #include "base/string_piece.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "chrome/common/jstemplate_builder.h" | 11 #include "chrome/common/jstemplate_builder.h" |
| 12 #include "grit/chromium_strings.h" | 12 #include "grit/chromium_strings.h" |
| 13 #include "grit/generated_resources.h" | 13 #include "grit/generated_resources.h" |
| 14 #include "grit/net_resources.h" | 14 #include "grit/net_resources.h" |
| 15 #include "ui/base/l10n/l10n_util.h" | 15 #include "ui/base/l10n/l10n_util.h" |
| 16 #include "ui/base/layout.h" |
| 16 #include "ui/base/resource/resource_bundle.h" | 17 #include "ui/base/resource/resource_bundle.h" |
| 17 | 18 |
| 18 namespace { | 19 namespace { |
| 19 | 20 |
| 20 // The net module doesn't have access to this HTML or the strings that need to | 21 // The net module doesn't have access to this HTML or the strings that need to |
| 21 // be localized. The Chrome locale will never change while we're running, so | 22 // be localized. The Chrome locale will never change while we're running, so |
| 22 // it's safe to have a static string that we always return a pointer into. | 23 // it's safe to have a static string that we always return a pointer into. |
| 23 // This allows us to have the ResourceProvider return a pointer into the actual | 24 // This allows us to have the ResourceProvider return a pointer into the actual |
| 24 // resource (via a StringPiece), instead of always copying resources. | 25 // resource (via a StringPiece), instead of always copying resources. |
| 25 struct LazyDirectoryListerCacher { | 26 struct LazyDirectoryListerCacher { |
| 26 LazyDirectoryListerCacher() { | 27 LazyDirectoryListerCacher() { |
| 27 DictionaryValue value; | 28 DictionaryValue value; |
| 28 value.SetString("header", | 29 value.SetString("header", |
| 29 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_HEADER)); | 30 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_HEADER)); |
| 30 value.SetString("parentDirText", | 31 value.SetString("parentDirText", |
| 31 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_PARENT)); | 32 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_PARENT)); |
| 32 value.SetString("headerName", | 33 value.SetString("headerName", |
| 33 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_NAME)); | 34 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_NAME)); |
| 34 value.SetString("headerSize", | 35 value.SetString("headerSize", |
| 35 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_SIZE)); | 36 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_SIZE)); |
| 36 value.SetString("headerDateModified", | 37 value.SetString("headerDateModified", |
| 37 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_DATE_MODIFIED)); | 38 l10n_util::GetStringUTF16(IDS_DIRECTORY_LISTING_DATE_MODIFIED)); |
| 38 value.SetString("listingParsingErrorBoxText", | 39 value.SetString("listingParsingErrorBoxText", |
| 39 l10n_util::GetStringFUTF16(IDS_DIRECTORY_LISTING_PARSING_ERROR_BOX_TEXT, | 40 l10n_util::GetStringFUTF16(IDS_DIRECTORY_LISTING_PARSING_ERROR_BOX_TEXT, |
| 40 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); | 41 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
| 41 html_data = jstemplate_builder::GetI18nTemplateHtml( | 42 html_data = jstemplate_builder::GetI18nTemplateHtml( |
| 42 ResourceBundle::GetSharedInstance().GetRawDataResource( | 43 ResourceBundle::GetSharedInstance().GetRawDataResource( |
| 43 IDR_DIR_HEADER_HTML), | 44 IDR_DIR_HEADER_HTML, ui::SCALE_FACTOR_NONE), |
| 44 &value); | 45 &value); |
| 45 } | 46 } |
| 46 | 47 |
| 47 std::string html_data; | 48 std::string html_data; |
| 48 }; | 49 }; |
| 49 | 50 |
| 50 } // namespace | 51 } // namespace |
| 51 | 52 |
| 52 namespace chrome_common_net { | 53 namespace chrome_common_net { |
| 53 | 54 |
| 54 base::StringPiece NetResourceProvider(int key) { | 55 base::StringPiece NetResourceProvider(int key) { |
| 55 CR_DEFINE_STATIC_LOCAL(LazyDirectoryListerCacher, lazy_dir_lister, ()); | 56 CR_DEFINE_STATIC_LOCAL(LazyDirectoryListerCacher, lazy_dir_lister, ()); |
| 56 | 57 |
| 57 if (IDR_DIR_HEADER_HTML == key) | 58 if (IDR_DIR_HEADER_HTML == key) |
| 58 return base::StringPiece(lazy_dir_lister.html_data); | 59 return base::StringPiece(lazy_dir_lister.html_data); |
| 59 | 60 |
| 60 return ResourceBundle::GetSharedInstance().GetRawDataResource(key); | 61 return ResourceBundle::GetSharedInstance().GetRawDataResource( |
| 62 key, ui::SCALE_FACTOR_NONE); |
| 61 } | 63 } |
| 62 | 64 |
| 63 } // namespace chrome_common_net | 65 } // namespace chrome_common_net |
| OLD | NEW |