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

Unified Diff: app/resource_bundle_posix.cc

Issue 6263008: Move ResourceBundle, DataPack to ui/base (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « app/resource_bundle_mac.mm ('k') | app/resource_bundle_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: app/resource_bundle_posix.cc
===================================================================
--- app/resource_bundle_posix.cc (revision 72000)
+++ app/resource_bundle_posix.cc (working copy)
@@ -1,117 +0,0 @@
-// Copyright (c) 2010 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 "app/resource_bundle.h"
-
-#include "app/data_pack.h"
-#include "app/l10n_util.h"
-#include "base/lock.h"
-#include "base/logging.h"
-#include "base/stl_util-inl.h"
-#include "base/string16.h"
-#include "base/string_piece.h"
-#include "gfx/font.h"
-
-namespace {
-
-app::DataPack* LoadResourcesDataPak(FilePath resources_pak_path) {
- app::DataPack* resources_pak = new app::DataPack;
- bool success = resources_pak->Load(resources_pak_path);
- if (!success) {
- delete resources_pak;
- resources_pak = NULL;
- }
- return resources_pak;
-}
-
-} // namespace
-
-ResourceBundle::~ResourceBundle() {
- FreeImages();
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
- FreeGdkPixBufs();
-#endif
- UnloadLocaleResources();
- STLDeleteContainerPointers(data_packs_.begin(),
- data_packs_.end());
- delete resources_data_;
- resources_data_ = NULL;
-}
-
-void ResourceBundle::UnloadLocaleResources() {
- delete locale_resources_data_;
- locale_resources_data_ = NULL;
-}
-
-// static
-RefCountedStaticMemory* ResourceBundle::LoadResourceBytes(
- DataHandle module, int resource_id) {
- DCHECK(module);
- return module->GetStaticMemory(resource_id);
-}
-
-base::StringPiece ResourceBundle::GetRawDataResource(int resource_id) const {
- DCHECK(resources_data_);
- base::StringPiece data;
- if (!resources_data_->GetStringPiece(resource_id, &data)) {
- if (!locale_resources_data_->GetStringPiece(resource_id, &data)) {
- for (size_t i = 0; i < data_packs_.size(); ++i) {
- if (data_packs_[i]->GetStringPiece(resource_id, &data))
- return data;
- }
-
- return base::StringPiece();
- }
- }
- return data;
-}
-
-string16 ResourceBundle::GetLocalizedString(int message_id) {
- // If for some reason we were unable to load a resource pak, return an empty
- // string (better than crashing).
- if (!locale_resources_data_) {
- LOG(WARNING) << "locale resources are not loaded";
- return string16();
- }
-
- base::StringPiece data;
- if (!locale_resources_data_->GetStringPiece(message_id, &data)) {
- // Fall back on the main data pack (shouldn't be any strings here except in
- // unittests).
- data = GetRawDataResource(message_id);
- if (data.empty()) {
- NOTREACHED() << "unable to find resource: " << message_id;
- return string16();
- }
- }
-
- // Data pack encodes strings as UTF16.
- DCHECK_EQ(data.length() % 2, 0U);
- string16 msg(reinterpret_cast<const char16*>(data.data()),
- data.length() / 2);
- return msg;
-}
-
-void ResourceBundle::LoadCommonResources() {
- DCHECK(!resources_data_) << "chrome.pak already loaded";
- FilePath resources_file_path = GetResourcesFilePath();
- CHECK(!resources_file_path.empty()) << "chrome.pak not found";
- resources_data_ = LoadResourcesDataPak(resources_file_path);
- CHECK(resources_data_) << "failed to load chrome.pak";
-}
-
-std::string ResourceBundle::LoadLocaleResources(
- const std::string& pref_locale) {
- DCHECK(!locale_resources_data_) << "locale.pak already loaded";
- std::string app_locale = l10n_util::GetApplicationLocale(pref_locale);
- FilePath locale_file_path = GetLocaleFilePath(app_locale);
- if (locale_file_path.empty()) {
- // It's possible that there is no locale.pak.
- NOTREACHED();
- return std::string();
- }
- locale_resources_data_ = LoadResourcesDataPak(locale_file_path);
- CHECK(locale_resources_data_) << "failed to load locale.pak";
- return app_locale;
-}
« no previous file with comments | « app/resource_bundle_mac.mm ('k') | app/resource_bundle_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698