// Copyright (c) 2013 The Chromium Embedded Framework Authors. // Portions copyright (c) 2011 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 "tests/shared/browser/resource_util.h" #import #include #include #include "include/base/cef_logging.h" namespace client { namespace { // Implementation adapted from Chromium's base/mac/foundation_util.mm bool UncachedAmIBundled() { return [[[NSBundle mainBundle] bundlePath] hasSuffix:@".app"]; } bool AmIBundled() { static bool am_i_bundled = UncachedAmIBundled(); return am_i_bundled; } } // namespace bool GetResourceDir(std::string& dir) { // Implementation adapted from Chromium's base/base_path_mac.mm if (AmIBundled()) { // Retrieve the executable directory. uint32_t pathSize = 0; _NSGetExecutablePath(NULL, &pathSize); if (pathSize > 0) { dir.resize(pathSize); _NSGetExecutablePath(const_cast(dir.c_str()), &pathSize); } // Trim executable name up to the last separator std::string::size_type last_separator = dir.find_last_of("/"); dir.resize(last_separator); dir.append("/../Resources"); return true; } else { // TODO: Provide unbundled path NOTIMPLEMENTED(); return false; } } } // namespace client