mirror of
https://github.com/wavetermdev/wails.git
synced 2026-08-05 13:53:43 -07:00
Use slog.Logged in assethandler_external.go. Refactor runtime handler.
This commit is contained in:
@@ -59,7 +59,7 @@ func New(appOptions Options) *App {
|
||||
Middleware: assetserver.Middleware(appOptions.Assets.Middleware),
|
||||
}
|
||||
|
||||
srv, err := assetserver.NewAssetServer(opts, false, result.Logger, wailsruntime.RuntimeAssetsBundle, result.isDebugMode)
|
||||
srv, err := assetserver.NewAssetServer(opts, false, result.Logger, wailsruntime.RuntimeAssetsBundle, result.isDebugMode, NewMessageProcessor())
|
||||
if err != nil {
|
||||
result.fatal(err.Error())
|
||||
}
|
||||
@@ -78,7 +78,6 @@ func New(appOptions Options) *App {
|
||||
return flags
|
||||
}
|
||||
|
||||
srv.UseRuntimeHandler(NewMessageProcessor())
|
||||
result.assets = srv
|
||||
|
||||
result.bindings, err = NewBindings(appOptions.Bind)
|
||||
|
||||
@@ -1314,7 +1314,7 @@ func (w *windowsWebviewWindow) processRequest(req *edge.ICoreWebView2WebResource
|
||||
uri, _ := req.GetUri()
|
||||
reqUri, err := url.ParseRequestURI(uri)
|
||||
if err != nil {
|
||||
globalApplication.error("Unable to parse request uri %s: %s", uri, err)
|
||||
globalApplication.error("Unable to parse request uri", "uri", uri, "error", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1337,7 +1337,7 @@ func (w *windowsWebviewWindow) processRequest(req *edge.ICoreWebView2WebResource
|
||||
env := w.chromium.Environment()
|
||||
response, err := env.CreateWebResourceResponse(rw.Body.Bytes(), rw.Code, http.StatusText(rw.Code), strings.Join(headers, "\n"))
|
||||
if err != nil {
|
||||
globalApplication.error("CreateWebResourceResponse Error: %s", err)
|
||||
globalApplication.error("CreateWebResourceResponse Error: " + err.Error())
|
||||
return
|
||||
}
|
||||
defer response.Release()
|
||||
@@ -1345,7 +1345,7 @@ func (w *windowsWebviewWindow) processRequest(req *edge.ICoreWebView2WebResource
|
||||
// Send response back
|
||||
err = args.PutResponse(response)
|
||||
if err != nil {
|
||||
globalApplication.error("PutResponse Error: %s", err)
|
||||
globalApplication.error("PutResponse Error: " + err.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -1358,7 +1358,7 @@ func (w *windowsWebviewWindow) setupChromium() {
|
||||
|
||||
webview2version, err := webviewloader.GetAvailableCoreWebView2BrowserVersionString(opts.WebviewBrowserPath)
|
||||
if err != nil {
|
||||
globalApplication.error("Error getting WebView2 version: %s", err)
|
||||
globalApplication.error("Error getting WebView2 version: " + err.Error())
|
||||
return
|
||||
}
|
||||
globalApplication.capabilities = capabilities.NewCapabilities(webview2version)
|
||||
@@ -1451,7 +1451,7 @@ func (w *windowsWebviewWindow) setupChromium() {
|
||||
// parse the url
|
||||
parsedURL, err := url.Parse(w.parent.options.URL)
|
||||
if err != nil {
|
||||
globalApplication.fatal("Error parsing URL: %s", err)
|
||||
globalApplication.fatal("Error parsing URL: " + err.Error())
|
||||
}
|
||||
if parsedURL.Scheme == "" {
|
||||
startURL = path.Join(startURL, w.parent.options.URL)
|
||||
|
||||
@@ -7,17 +7,13 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
iofs "io/fs"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Logger interface {
|
||||
Debug(message string, args ...interface{})
|
||||
Error(message string, args ...interface{})
|
||||
}
|
||||
|
||||
//go:embed defaultindex.html
|
||||
var defaultHTML []byte
|
||||
|
||||
@@ -29,12 +25,12 @@ type assetHandler struct {
|
||||
fs iofs.FS
|
||||
handler http.Handler
|
||||
|
||||
logger Logger
|
||||
logger *slog.Logger
|
||||
|
||||
retryMissingFiles bool
|
||||
}
|
||||
|
||||
func NewAssetHandler(options *Options, log Logger) (http.Handler, error) {
|
||||
func NewAssetHandler(options *Options, log *slog.Logger) (http.Handler, error) {
|
||||
|
||||
vfs := options.Assets
|
||||
if vfs != nil {
|
||||
|
||||
@@ -6,12 +6,13 @@ package assetserver
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
func NewExternalAssetsHandler(logger Logger, options Options, url *url.URL) http.Handler {
|
||||
func NewExternalAssetsHandler(logger *slog.Logger, options Options, url *url.URL) http.Handler {
|
||||
baseHandler := options.Handler
|
||||
|
||||
errSkipProxy := fmt.Errorf("skip proxying")
|
||||
|
||||
@@ -56,22 +56,23 @@ type AssetServer struct {
|
||||
assetServerWebView
|
||||
}
|
||||
|
||||
func NewAssetServer(options *Options, servingFromDisk bool, logger *slog.Logger, runtime RuntimeAssets, debug bool) (*AssetServer, error) {
|
||||
func NewAssetServer(options *Options, servingFromDisk bool, logger *slog.Logger, runtime RuntimeAssets, debug bool, runtimeHandler RuntimeHandler) (*AssetServer, error) {
|
||||
handler, err := NewAssetHandler(options, logger)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return NewAssetServerWithHandler(handler, servingFromDisk, logger, runtime, debug)
|
||||
return NewAssetServerWithHandler(handler, servingFromDisk, logger, runtime, debug, runtimeHandler)
|
||||
}
|
||||
|
||||
func NewAssetServerWithHandler(handler http.Handler, servingFromDisk bool, logger *slog.Logger, runtime RuntimeAssets, debug bool) (*AssetServer, error) {
|
||||
func NewAssetServerWithHandler(handler http.Handler, servingFromDisk bool, logger *slog.Logger, runtime RuntimeAssets, debug bool, runtimeHandler RuntimeHandler) (*AssetServer, error) {
|
||||
var buffer bytes.Buffer
|
||||
buffer.Write(runtime.RuntimeDesktopJS())
|
||||
|
||||
result := &AssetServer{
|
||||
handler: handler,
|
||||
runtimeJS: buffer.Bytes(),
|
||||
handler: handler,
|
||||
runtimeJS: buffer.Bytes(),
|
||||
runtimeHandler: runtimeHandler,
|
||||
|
||||
// Check if we have been given a directory to serve assets from.
|
||||
// If so, this means we are in dev mode and are serving assets off disk.
|
||||
@@ -86,10 +87,6 @@ func NewAssetServerWithHandler(handler http.Handler, servingFromDisk bool, logge
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (d *AssetServer) UseRuntimeHandler(handler RuntimeHandler) {
|
||||
d.runtimeHandler = handler
|
||||
}
|
||||
|
||||
func (d *AssetServer) AddPluginScript(pluginName string, script string) {
|
||||
if d.pluginScripts == nil {
|
||||
d.pluginScripts = make(map[string]string)
|
||||
@@ -156,11 +153,7 @@ func (d *AssetServer) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
||||
d.writeBlob(rw, path, data)
|
||||
|
||||
case runtimePath:
|
||||
if d.runtimeHandler != nil {
|
||||
d.runtimeHandler.HandleRuntimeCall(rw, req)
|
||||
} else {
|
||||
d.handler.ServeHTTP(rw, req)
|
||||
}
|
||||
d.runtimeHandler.HandleRuntimeCall(rw, req)
|
||||
|
||||
case ipcJSPath:
|
||||
content := d.runtime.DesktopIPC()
|
||||
|
||||
@@ -13,8 +13,8 @@ The assetserver for the dev mode.
|
||||
Depending on the UserAgent it injects a websocket based IPC script into `index.html` or the default desktop IPC. The
|
||||
default desktop IPC is injected when the webview accesses the devserver.
|
||||
*/
|
||||
func NewDevAssetServer(handler http.Handler, servingFromDisk bool, logger *slog.Logger, runtime RuntimeAssets) (*AssetServer, error) {
|
||||
result, err := NewAssetServerWithHandler(handler, servingFromDisk, logger, runtime, true)
|
||||
func NewDevAssetServer(handler http.Handler, servingFromDisk bool, logger *slog.Logger, runtime RuntimeAssets, runtimeHandler RuntimeHandler) (*AssetServer, error) {
|
||||
result, err := NewAssetServerWithHandler(handler, servingFromDisk, logger, runtime, true, runtimeHandler)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user