github.com/AlpineAIO/wails/v2@v2.0.0-beta.32.0.20240505041856-1047a8fa5fef/internal/wv2installer/download.go (about)

     1  //go:build windows && !wv2runtime.error && !wv2runtime.browser && !wv2runtime.embed
     2  // +build windows,!wv2runtime.error,!wv2runtime.browser,!wv2runtime.embed
     3  
     4  package wv2installer
     5  
     6  import (
     7  	"fmt"
     8  
     9  	"github.com/AlpineAIO/wails/v2/internal/webview2runtime"
    10  	"github.com/AlpineAIO/wails/v2/pkg/options/windows"
    11  )
    12  
    13  func doInstallationStrategy(installStatus installationStatus, messages *windows.Messages) error {
    14  	message := messages.InstallationRequired
    15  	if installStatus == needsUpdating {
    16  		message = messages.UpdateRequired
    17  	}
    18  	confirmed, err := webview2runtime.Confirm(message, messages.MissingRequirements)
    19  	if err != nil {
    20  		return err
    21  	}
    22  	if !confirmed {
    23  		return fmt.Errorf(messages.Webview2NotInstalled)
    24  	}
    25  	installedCorrectly, err := webview2runtime.InstallUsingBootstrapper()
    26  	if err != nil {
    27  		_ = webview2runtime.Error(err.Error(), messages.Error)
    28  		return err
    29  	}
    30  	if !installedCorrectly {
    31  		err = webview2runtime.Error(messages.FailedToInstall, messages.Error)
    32  		return err
    33  	}
    34  	return nil
    35  }