package shared import ( "errors" "fmt" "os" "os/exec" ) func OpenBrowserWindow(url string, fullscreen bool, temp bool) error { bins := []string{"chromium", "chromium-browser"} args := []string{fmt.Sprintf("--app=%s", url), "--autoplay-policy=no-user-gesture-required"} if fullscreen { args = append(args, "--start-fullscreen") } if temp { tempDirPath, err := os.MkdirTemp("", "plg-mudics-browser-") if err != nil { return err } arg := fmt.Sprintf("--user-data-dir=%s", tempDirPath) args = append(args, arg) } errs := []string{} for _, bin := range bins { cmd := exec.Command(bin, args...) commandOutput := RunShellCommand(cmd) if commandOutput.ExitCode == 0 { return nil } errs = append(errs, commandOutput.Stderr) } return errors.New("failed to open browser window: " + fmt.Sprint(errs)) }