cef/libcef/browser/path_util_impl.cc

58 lines
1.4 KiB
C++

// Copyright (c) 2012 The Chromium Embedded Framework 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 "include/cef_path_util.h"
#include "base/files/file_path.h"
#include "base/logging.h"
#include "base/notreached.h"
#include "base/path_service.h"
#include "chrome/common/chrome_paths.h"
bool CefGetPath(PathKey key, CefString& path) {
int pref_key = base::PATH_START;
switch (key) {
case PK_DIR_CURRENT:
pref_key = base::DIR_CURRENT;
break;
case PK_DIR_EXE:
pref_key = base::DIR_EXE;
break;
case PK_DIR_MODULE:
pref_key = base::DIR_MODULE;
break;
case PK_DIR_TEMP:
pref_key = base::DIR_TEMP;
break;
case PK_FILE_EXE:
pref_key = base::FILE_EXE;
break;
case PK_FILE_MODULE:
pref_key = base::FILE_MODULE;
break;
#if defined(OS_WIN)
case PK_LOCAL_APP_DATA:
pref_key = base::DIR_LOCAL_APP_DATA;
break;
#endif
case PK_USER_DATA:
pref_key = chrome::DIR_USER_DATA;
break;
case PK_DIR_RESOURCES:
pref_key = chrome::DIR_RESOURCES;
break;
default:
NOTREACHED() << "invalid argument";
return false;
}
base::FilePath file_path;
if (base::PathService::Get(pref_key, &file_path)) {
path = file_path.value();
return true;
}
return false;
}