| // Copyright 2019 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_ASH_PLUGIN_VM_PLUGIN_VM_FILES_H_ |
| #define CHROME_BROWSER_ASH_PLUGIN_VM_PLUGIN_VM_FILES_H_ |
| |
| #include "base/files/file_path.h" |
| #include "base/functional/callback.h" |
| #include "chrome/browser/ash/guest_os/public/types.h" |
| |
| class Profile; |
| |
| namespace plugin_vm { |
| |
| base::FilePath ChromeOSBaseDirectory(); |
| |
| // Ensure default shared dir <cryptohome>/MyFiles/PluginVm exists. Invokes |
| // |callback| with dir and true if dir is successfully created or already |
| // exists. |
| void EnsureDefaultSharedDirExists( |
| Profile* profile, |
| base::OnceCallback<void(const base::FilePath&, bool)> callback); |
| |
| enum class LaunchPluginVmAppResult { |
| SUCCESS, |
| FAILED, |
| FAILED_DIRECTORY_NOT_SHARED, |
| }; |
| |
| using LaunchPluginVmAppCallback = |
| base::OnceCallback<void(LaunchPluginVmAppResult result, |
| const std::string& failure_reason)>; |
| |
| // Launch a Plugin VM App with a given set of files, given as cracked urls in |
| // the VM. Will start Plugin VM if it is not already running. |
| void LaunchPluginVmApp(Profile* profile, |
| std::string app_id, |
| const std::vector<guest_os::LaunchArg>& files, |
| LaunchPluginVmAppCallback callback); |
| |
| } // namespace plugin_vm |
| |
| #endif // CHROME_BROWSER_ASH_PLUGIN_VM_PLUGIN_VM_FILES_H_ |