// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_WIN_UNINSTALLATION_VIA_OS_SETTINGS_H_ #define CHROME_BROWSER_WIN_UNINSTALLATION_VIA_OS_SETTINGS_H_ #include <string> namespace base { class CommandLine; class FilePath; } // namespace base // Registers an uninstall command for a program |key| with the // Windows Programs and Features control panel. // The API doesn't allow same duplicate entry for the |key|. If the caller // updates the uninstall string, it should delete the previous one first. // |key|: A command ID that is a representative of the application. // |display_name|: Display name that will be shown on App or Remove Program. // |publisher|: URL Origin name of the App where it is installed from. // |uninstall_command|: A command line that has command string that is run // when the uninstall command is executed for the target application. // |icon_path|: An icon that will be shown with name in the uninstall UI // such as Program and Features. // The system default icon will be used if |icon_path| is empty. bool RegisterUninstallationViaOsSettings( const std::wstring& key, const std::wstring& display_name, const std::wstring& publisher, const base::CommandLine& uninstall_command, const base::FilePath& icon_path); // Removes the uninstall command for the program `key`. `key` should be // same with what is used for RegisterUninstallationViaOsSettings for the entry. // Returns true if no error occurred. The registry entry not existing in the // first place is considered a success. bool UnregisterUninstallationViaOsSettings(const std::wstring& key); #endif // CHROME_BROWSER_WIN_UNINSTALLATION_VIA_OS_SETTINGS_H_