Merge pull request #89 from brightray/user-data-path

Use PathService to set and get DIR_USER_DATA
This commit is contained in:
Cheng Zhao 2015-01-18 18:03:56 -08:00
commit dc4ccfcbdc
4 changed files with 67 additions and 19 deletions

View file

@ -30,6 +30,7 @@
],
},
'sources': [
'browser/brightray_paths.h',
'browser/browser_client.cc',
'browser/browser_client.h',
'browser/browser_context.cc',

View file

@ -0,0 +1,34 @@
// Copyright 2015 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.
#ifndef BROWSER_BRIGHTRAY_PATHS_H_
#define BROWSER_BRIGHTRAY_PATHS_H_
#include "base/compiler_specific.h"
#if defined(OS_WIN)
#include "base/base_paths_win.h"
#elif defined(OS_MACOSX)
#include "base/base_paths_mac.h"
#endif
namespace brightray {
enum {
PATH_START = 1000,
DIR_USER_DATA = PATH_START, // Directory where user data can be written.
#if defined(OS_LINUX)
DIR_APP_DATA, // Application Data directory under the user profile.
#else
DIR_APP_DATA = base::DIR_APP_DATA,
#endif
PATH_END
};
} // namespace brightray
#endif // BROWSER_BRIGHTRAY_PATHS_H_

View file

@ -4,11 +4,11 @@
#include "browser/browser_context.h"
#include "browser/brightray_paths.h"
#include "browser/inspectable_web_contents_impl.h"
#include "browser/network_delegate.h"
#include "common/application_info.h"
#include "base/environment.h"
#include "base/files/file_path.h"
#include "base/path_service.h"
#include "base/prefs/json_pref_store.h"
@ -19,10 +19,6 @@
#include "content/public/browser/resource_context.h"
#include "content/public/browser/storage_partition.h"
#if defined(OS_LINUX)
#include "base/nix/xdg_util.h"
#endif
using content::BrowserThread;
namespace brightray {
@ -51,17 +47,11 @@ BrowserContext::BrowserContext() : resource_context_(new ResourceContext) {
}
void BrowserContext::Initialize() {
base::FilePath path;
#if defined(OS_LINUX)
scoped_ptr<base::Environment> env(base::Environment::Create());
path = base::nix::GetXDGDirectory(env.get(),
base::nix::kXdgConfigHomeEnvVar,
base::nix::kDotConfigDir);
#else
CHECK(PathService::Get(base::DIR_APP_DATA, &path));
#endif
path_ = path.Append(base::FilePath::FromUTF8Unsafe(GetApplicationName()));
if (!PathService::Get(DIR_USER_DATA, &path_)) {
PathService::Get(DIR_APP_DATA, &path_);
path_ = path_.Append(base::FilePath::FromUTF8Unsafe(GetApplicationName()));
PathService::Override(DIR_USER_DATA, path_);
}
auto prefs_path = GetPath().Append(FILE_PATH_LITERAL("Preferences"));
base::PrefServiceFactory prefs_factory;

View file

@ -26,6 +26,13 @@
#include "browser/views/views_delegate.h"
#endif
#if defined(OS_LINUX)
#include "base/environment.h"
#include "base/path_service.h"
#include "base/nix/xdg_util.h"
#include "browser/brightray_paths.h"
#endif
#if defined(OS_WIN)
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/l10n/l10n_util_win.h"
@ -34,9 +41,9 @@
namespace brightray {
#if defined(OS_WIN)
namespace {
#if defined(OS_WIN)
// gfx::Font callbacks
void AdjustUIFont(LOGFONT* logfont) {
l10n_util::AdjustUIFont(logfont);
@ -45,9 +52,22 @@ void AdjustUIFont(LOGFONT* logfont) {
int GetMinimumFontSize() {
return 10;
}
#endif
#if defined(OS_LINUX)
void OverrideLinuxAppDataPath() {
base::FilePath path;
if (PathService::Get(DIR_APP_DATA, &path))
return;
scoped_ptr<base::Environment> env(base::Environment::Create());
path = base::nix::GetXDGDirectory(env.get(),
base::nix::kXdgConfigHomeEnvVar,
base::nix::kDotConfigDir);
PathService::Override(DIR_APP_DATA, path);
}
#endif
} // namespace
#endif
BrowserMainParts::BrowserMainParts() {
}
@ -64,10 +84,13 @@ void BrowserMainParts::PreEarlyInitialization() {
views::LinuxUI::SetInstance(BuildGtk2UI());
#endif
#if defined(OS_LINUX)
OverrideLinuxAppDataPath();
#endif
InitProxyResolverV8();
}
void BrowserMainParts::ToolkitInitialized() {
#if defined(USE_AURA) && defined(USE_X11)
views::LinuxUI::instance()->Initialize();