// Copyright (c) 2023 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 "cef/libcef/browser/chrome/chrome_startup_browser_creator.h" #include #include "cef/libcef/browser/browser_context.h" #include "cef/libcef/common/app_manager.h" #include "cef/libcef/common/command_line_impl.h" #include "chrome/browser/ui/startup/startup_browser_creator.h" namespace startup_browser_creator { namespace { bool ProcessCommandLineCallback(const base::CommandLine& command_line, const base::FilePath& cur_dir) { bool handled = false; if (auto app = CefAppManager::Get()->GetApplication()) { if (auto handler = app->GetBrowserProcessHandler()) { CefRefPtr commandLinePtr( new CefCommandLineImpl(command_line)); handled = handler->OnAlreadyRunningAppRelaunch(commandLinePtr.get(), cur_dir.value()); std::ignore = commandLinePtr->Detach(nullptr); } } return handled; } } // namespace void RegisterProcessCommandLineCallback() { StartupBrowserCreator::RegisterProcessCommandLineCallback( base::BindRepeating(&ProcessCommandLineCallback)); } } // namespace startup_browser_creator