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

Side by Side Diff: chrome/browser/chromeos/system/timezone_util.cc

Issue 2740673002: Prepare Chromium and Blink for ICU 59 (Closed)
Patch Set: revert accidental revert of sftnly roll during rebase Created 3 years, 9 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/browser/chromeos/system/timezone_util.h" 5 #include "chrome/browser/chromeos/system/timezone_util.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/i18n/rtl.h" 13 #include "base/i18n/rtl.h"
14 #include "base/i18n/unicodestring.h"
14 #include "base/lazy_instance.h" 15 #include "base/lazy_instance.h"
15 #include "base/memory/ptr_util.h" 16 #include "base/memory/ptr_util.h"
16 #include "base/strings/string_util.h" 17 #include "base/strings/string_util.h"
17 #include "base/strings/stringprintf.h" 18 #include "base/strings/stringprintf.h"
18 #include "base/strings/utf_string_conversions.h" 19 #include "base/strings/utf_string_conversions.h"
19 #include "base/synchronization/lock.h" 20 #include "base/synchronization/lock.h"
20 #include "base/values.h" 21 #include "base/values.h"
21 #include "chrome/browser/browser_process.h" 22 #include "chrome/browser/browser_process.h"
22 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 23 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
23 #include "chrome/browser/chromeos/profiles/profile_helper.h" 24 #include "chrome/browser/chromeos/profiles/profile_helper.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 zone_id.toUTF8String(zone_id_str); 71 zone_id.toUTF8String(zone_id_str);
71 72
72 // Resource keys for timezones use ':' in place of '/'. 73 // Resource keys for timezones use ':' in place of '/'.
73 base::ReplaceSubstringsAfterOffset(&zone_id_str, 0, "/", ":"); 74 base::ReplaceSubstringsAfterOffset(&zone_id_str, 0, "/", ":");
74 std::unique_ptr<UResourceBundle, UResClose> zone_item( 75 std::unique_ptr<UResourceBundle, UResClose> zone_item(
75 ures_getByKey(zone_strings, zone_id_str.c_str(), NULL, &status)); 76 ures_getByKey(zone_strings, zone_id_str.c_str(), NULL, &status));
76 icu::UnicodeString city; 77 icu::UnicodeString city;
77 if (!U_FAILURE(status)) { 78 if (!U_FAILURE(status)) {
78 city = icu::ures_getUnicodeStringByKey(zone_item.get(), "ec", &status); 79 city = icu::ures_getUnicodeStringByKey(zone_item.get(), "ec", &status);
79 if (U_SUCCESS(status)) 80 if (U_SUCCESS(status))
80 return base::string16(city.getBuffer(), city.length()); 81 return base::i18n::UnicodeStringToString16(city);
81 } 82 }
82 83
83 // Fallback case in case of failure. 84 // Fallback case in case of failure.
84 base::ReplaceSubstringsAfterOffset(&zone_id_str, 0, ":", "/"); 85 base::ReplaceSubstringsAfterOffset(&zone_id_str, 0, ":", "/");
85 // Take the last component of a timezone id (e.g. 'Baz' in 'Foo/Bar/Baz'). 86 // Take the last component of a timezone id (e.g. 'Baz' in 'Foo/Bar/Baz').
86 // Depending on timezones, keeping all but the 1st component 87 // Depending on timezones, keeping all but the 1st component
87 // (e.g. Bar/Baz) may be better, but our current list does not have 88 // (e.g. Bar/Baz) may be better, but our current list does not have
88 // any timezone for which that's the case. 89 // any timezone for which that's the case.
89 std::string::size_type slash_pos = zone_id_str.rfind('/'); 90 std::string::size_type slash_pos = zone_id_str.rfind('/');
90 if (slash_pos != std::string::npos && slash_pos < zone_id_str.size()) 91 if (slash_pos != std::string::npos && slash_pos < zone_id_str.size())
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 timezone.getID(id); 129 timezone.getID(id);
129 if (id == icu::UnicodeString(chromeos::system::kUTCTimezoneName)) { 130 if (id == icu::UnicodeString(chromeos::system::kUTCTimezoneName)) {
130 name = icu::UnicodeString( 131 name = icu::UnicodeString(
131 l10n_util::GetStringUTF8(IDS_OPTIONS_SETTINGS_TIMEZONE_DISPLAY_NAME_UTC) 132 l10n_util::GetStringUTF8(IDS_OPTIONS_SETTINGS_TIMEZONE_DISPLAY_NAME_UTC)
132 .c_str()); 133 .c_str());
133 } else { 134 } else {
134 timezone.getDisplayName(dst_offset != 0, icu::TimeZone::LONG, name); 135 timezone.getDisplayName(dst_offset != 0, icu::TimeZone::LONG, name);
135 } 136 }
136 base::string16 result(l10n_util::GetStringFUTF16( 137 base::string16 result(l10n_util::GetStringFUTF16(
137 IDS_OPTIONS_SETTINGS_TIMEZONE_DISPLAY_TEMPLATE, 138 IDS_OPTIONS_SETTINGS_TIMEZONE_DISPLAY_TEMPLATE,
138 base::ASCIIToUTF16(offset_str), 139 base::ASCIIToUTF16(offset_str), base::i18n::UnicodeStringToString16(name),
139 base::string16(name.getBuffer(), name.length()),
140 GetExemplarCity(timezone))); 140 GetExemplarCity(timezone)));
141 base::i18n::AdjustStringForLocaleDirection(&result); 141 base::i18n::AdjustStringForLocaleDirection(&result);
142 return result; 142 return result;
143 } 143 }
144 144
145 } // namespace 145 } // namespace
146 146
147 namespace chromeos { 147 namespace chromeos {
148 namespace system { 148 namespace system {
149 149
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 VLOG(1) << "Refresh TimeZone: setting timezone to '" << timezone->timeZoneId 195 VLOG(1) << "Refresh TimeZone: setting timezone to '" << timezone->timeZoneId
196 << "'"; 196 << "'";
197 197
198 chromeos::system::TimezoneSettings::GetInstance()->SetTimezoneFromID( 198 chromeos::system::TimezoneSettings::GetInstance()->SetTimezoneFromID(
199 base::UTF8ToUTF16(timezone->timeZoneId)); 199 base::UTF8ToUTF16(timezone->timeZoneId));
200 } 200 }
201 } 201 }
202 202
203 } // namespace system 203 } // namespace system
204 } // namespace chromeos 204 } // namespace chromeos
OLDNEW
« no previous file with comments | « base/i18n/unicodestring.h ('k') | chrome/browser/ui/webui/md_downloads/downloads_list_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698