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 |