| 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"
 | 
| +#include "base/mac/foundation_util.h"
 | 
| +#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
 | 
| 
 |