0

Port some files in chrome/common to Linux.

BUG=3649

Review URL: http://codereview.chromium.org/10255
Patch from Paweł Hajdan jr <phajdan.jr@gmail.com>.


git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5848 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
evanm@google.com
2008-11-21 20:50:39 +00:00
parent d232c09f25
commit 933cc00eb8
7 changed files with 31 additions and 36 deletions

@ -439,6 +439,12 @@ inline char_type* WriteInto(
return &((*str)[0]);
}
inline char16* WriteInto(string16* str, size_t length_including_null) {
str->reserve(length_including_null);
str->resize(length_including_null - 1);
return &((*str)[0]);
}
//-----------------------------------------------------------------------------
// Function objects to aid in comparing/searching strings.

@ -62,12 +62,14 @@ if env['PLATFORM'] in ('posix', 'win32'):
'notification_service.cc',
'pref_member.cc',
'pref_names.cc',
'pref_service.cc',
'slide_animation.cc',
'sqlite_compiled_statement.cc',
'sqlite_utils.cc',
'task_queue.cc',
'throb_animation.cc',
'thumbnail_score.cc',
'time_format.cc',
'visitedlink_common.cc',
])
@ -99,13 +101,11 @@ if env['PLATFORM'] == 'win32':
'net/url_request_intercept_job.cc',
'os_exchange_data.cc',
'plugin_messages.cc',
'pref_service.cc',
'process_watcher.cc',
'render_messages.cc',
'resource_bundle.cc',
'resource_dispatcher.cc',
'security_filter_peer.cc',
'time_format.cc',
'win_safe_util.cc',
'win_util.cc',
'worker_thread_ticker.cc',

@ -6,7 +6,7 @@
#include "base/path_service.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/resource_bundle.h"
#include "chrome/common/l10n_util.h"
#include "chrome/plugin/npobject_util.h"
#include "googleurl/src/url_util.h"
#include "webkit/glue/webkit_glue.h"
@ -39,7 +39,7 @@ std::wstring GetWebKitLocale() {
}
std::wstring GetLocalizedString(int message_id) {
return ResourceBundle::GetSharedInstance().GetLocalizedString(message_id);
return l10n_util::GetString(message_id);
}
} // namespace webkit_glue

@ -11,6 +11,9 @@
#if defined(OS_WIN)
typedef struct HFONT__* HFONT;
#else
// TODO(port): Make it more real.
typedef void* HFONT;
#endif
#include "base/basictypes.h"

@ -7,7 +7,6 @@
#include <unicode/coll.h>
#include <unicode/uchar.h>
#include <windows.h>
#include "base/basictypes.h"
#include "chrome/common/gfx/chrome_font.h"

@ -4,6 +4,7 @@
#include "chrome/common/pref_service.h"
#include "base/compiler_specific.h"
#include "base/file_util.h"
#include "base/logging.h"
#include "base/message_loop.h"
@ -40,13 +41,10 @@ class SaveLaterTask : public Task {
int bytes_written = file_util::WriteFile(tmp_file_name, data_.c_str(),
static_cast<int>(data_.length()));
if (bytes_written != -1) {
if (!MoveFileEx(tmp_file_name.c_str(), file_name_.c_str(),
MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING)) {
if (!file_util::Move(tmp_file_name, file_name_)) {
// Rename failed. Try again on the off chance someone has locked either
// file and hope we're successful the second time through.
BOOL move_result =
MoveFileEx(tmp_file_name.c_str(), file_name_.c_str(),
MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING);
bool move_result = file_util::Move(tmp_file_name, file_name_);
DCHECK(move_result);
}
}
@ -56,7 +54,7 @@ class SaveLaterTask : public Task {
std::wstring file_name_;
std::string data_;
DISALLOW_EVIL_CONSTRUCTORS(SaveLaterTask);
DISALLOW_COPY_AND_ASSIGN(SaveLaterTask);
};
// A helper function for RegisterLocalized*Pref that creates a Value* based on
@ -75,23 +73,12 @@ Value* CreateLocaleDefaultValue(Value::ValueType type, int message_id) {
}
case Value::TYPE_INTEGER: {
int num_int = 0;
int parsed_values = swscanf_s(resource_string.c_str(), L"%d", &num_int);
// This is a trusted value (comes from our locale dll), so it should
// successfully parse.
DCHECK(parsed_values == 1);
return Value::CreateIntegerValue(num_int);
return Value::CreateIntegerValue(StringToInt(resource_string));
break;
}
case Value::TYPE_REAL: {
double num_double = 0.0;
int parsed_values = swscanf_s(resource_string.c_str(), L"%lf",
&num_double);
// This is a trusted value (comes from our locale dll), so it should
// successfully parse.
DCHECK(parsed_values == 1);
return Value::CreateRealValue(num_double);
return Value::CreateRealValue(StringToDouble(resource_string));
break;
}
@ -121,8 +108,7 @@ PrefService::PrefService(const std::wstring& pref_filename)
: persistent_(new DictionaryValue),
transient_(new DictionaryValue),
pref_filename_(pref_filename),
#pragma warning(suppress: 4355) // Okay to pass "this" here.
save_preferences_factory_(this) {
ALLOW_THIS_IN_INITIALIZER_LIST(save_preferences_factory_(this)) {
LoadPersistentPrefs(pref_filename_);
}
@ -434,7 +420,7 @@ void PrefService::AddPrefObserver(const wchar_t* path,
// Verify that this observer doesn't already exist.
NotificationObserverList::Iterator it(*observer_list);
NotificationObserver* existing_obs;
while (existing_obs = it.GetNext()) {
while ((existing_obs = it.GetNext()) != NULL) {
DCHECK(existing_obs != obs) << path << " observer already registered";
if (existing_obs == obs)
return;
@ -640,7 +626,7 @@ void PrefService::FireObservers(const wchar_t* path) {
NotificationObserverList::Iterator it(*(observer_iterator->second));
NotificationObserver* observer;
while (observer = it.GetNext()) {
while ((observer = it.GetNext()) != NULL) {
observer->Observe(NOTIFY_PREF_CHANGED,
Source<PrefService>(this),
Details<std::wstring>(&path_str));
@ -653,10 +639,10 @@ void PrefService::FireObservers(const wchar_t* path) {
PrefService::Preference::Preference(DictionaryValue* root_pref,
const wchar_t* name,
Value* default_value)
: root_pref_(root_pref),
: type_(Value::TYPE_NULL),
name_(name),
default_value_(default_value),
type_(Value::TYPE_NULL) {
root_pref_(root_pref) {
DCHECK(name);
if (default_value) {

@ -40,8 +40,8 @@ class TimeRemainingFormat {
STLDeleteContainerPointers(long_formatter_.begin(),
long_formatter_.end());
}
friend Singleton<TimeRemainingFormat>;
friend DefaultSingletonTraits<TimeRemainingFormat>;
friend class Singleton<TimeRemainingFormat>;
friend struct DefaultSingletonTraits<TimeRemainingFormat>;
std::vector<PluralFormat*> long_formatter_;
std::vector<PluralFormat*> short_formatter_;
@ -116,7 +116,7 @@ void TimeRemainingFormat::BuildFormats(
}
for (int i = 0; i < 4; ++i) {
UnicodeString pattern;
for (int j = 0; j < arraysize(kKeywords); ++j) {
for (size_t j = 0; j < arraysize(kKeywords); ++j) {
int msg_id = short_version ? kTimeMsgIds[i][j] : kTimeLeftMsgIds[i][j];
if (msg_id == kInvalidMsgId) continue;
std::string sub_pattern = WideToUTF8(l10n_util::GetString(msg_id));
@ -213,11 +213,12 @@ static std::wstring TimeRemainingImpl(const TimeDelta& delta,
// With the fallback added, this should never fail.
DCHECK(U_SUCCESS(error));
int capacity = time_string.length() + 1;
std::wstring formatted;
time_string.extract(static_cast<UChar*>(WriteInto(&formatted, capacity)),
string16 result_utf16;
time_string.extract(static_cast<UChar*>(
WriteInto(&result_utf16, capacity)),
capacity, error);
DCHECK(U_SUCCESS(error));
return formatted;
return UTF16ToWide(result_utf16);
}
// static