910e62b5创建于 1月15日历史提交
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "content/shell/app/shell_content_main.h"

#include "base/compiler_specific.h"
#include "build/build_config.h"
#include "content/public/app/content_main.h"
#include "content/public/common/content_switches.h"
#include "content/shell/app/paths_mac.h"
#include "content/shell/app/shell_main_delegate.h"

#if BUILDFLAG(IS_MAC)
int ContentMain(int argc, const char** argv) {
  bool is_browsertest = false;
  std::string browser_test_flag(std::string("--") + switches::kBrowserTest);
  for (int i = 0; i < argc; ++i) {
    if (browser_test_flag == UNSAFE_BUFFERS(argv[i])) {
      is_browsertest = true;
      break;
    }
  }
  content::ShellMainDelegate delegate(is_browsertest);
  content::ContentMainParams params(&delegate);
  params.argc = argc;
  params.argv = argv;

  // Ensure that Bundle Id is set before ContentMain.
  OverrideFrameworkBundlePath();
  OverrideOuterBundlePath();
  OverrideChildProcessPath();
  OverrideSourceRootPath();
  OverrideBundleID();

  return content::ContentMain(std::move(params));
}
#endif  // BUILDFLAG(IS_MAC)