Chromium Code Reviews| Index: extensions/shell/app/paths_mac.mm |
| diff --git a/extensions/shell/app/paths_mac.mm b/extensions/shell/app/paths_mac.mm |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d10c3c87532905b371d83226988e2d22691b135a |
| --- /dev/null |
| +++ b/extensions/shell/app/paths_mac.mm |
| @@ -0,0 +1,52 @@ |
| +// Copyright 2014 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 "extensions/shell/app/paths_mac.h" |
| + |
| +#include "base/files/file_path.h" |
| +#include "base/logging.h" |
| +#include "base/path_service.h" |
| +#include "base/mac/bundle_locations.h" |
|
tapted
2014/12/17 08:05:15
nit: import. Alternatively, as it is, paths_mac.mm
Yoyo Zhou
2014/12/18 02:38:33
These files are only #included in the chromium cod
tapted
2014/12/18 03:30:54
style guide says "When including a header that use
|
| +#include "base/mac/foundation_util.h" |
|
tapted
2014/12/17 08:05:15
nit: import
|
| +#include "content/public/common/content_paths.h" |
| + |
| +namespace extensions { |
| + |
| +namespace { |
| + |
| +base::FilePath GetFrameworksPath() { |
| + base::FilePath path; |
| + PathService::Get(base::FILE_EXE, &path); |
| + // We now have a path .../App Shell.app/Contents/MacOS/App Shell, and want to |
| + // transform it into |
| + // .../App Shell.app/Contents/Frameworks/App Shell Framework.framework. |
| + // But if it's App Shell Helper.app (inside Frameworks), we must go deeper. |
| + if (base::mac::IsBackgroundOnlyProcess()) { |
| + path = path.DirName().DirName().DirName().DirName().DirName(); |
| + } else { |
| + path = path.DirName().DirName(); |
| + } |
| + DCHECK_EQ("Contents", path.BaseName().value()); |
| + path = path.Append("Frameworks"); |
| + return path; |
| +} |
| + |
| +} // namespace |
| + |
| +void OverrideFrameworkBundlePath() { |
| + base::FilePath path = |
| + GetFrameworksPath().Append("App Shell Framework.framework"); |
| + base::mac::SetOverrideFrameworkBundlePath(path); |
| +} |
| + |
| +void OverrideChildProcessFilePath() { |
| + base::FilePath path = GetFrameworksPath() |
| + .Append("App Shell Helper.app") |
| + .Append("Contents") |
| + .Append("MacOS") |
| + .Append("App Shell Helper"); |
| + PathService::Override(content::CHILD_PROCESS_EXE, path); |
| +} |
| + |
| +} // namespace extensions |