Documentation
¶
Index ¶
- Constants
- func CancelRequest(nativeRequest unsafe.Pointer) bool
- func CloseActiveRequests()
- func Context(r Request) context.Context
- func DisableMainThreadDispatch()
- func RequestContext(r Request) (context.Context, context.CancelFunc)
- type Request
- type RequestTracker
- func (t *RequestTracker) Cancel(id string)
- func (t *RequestTracker) Close()
- func (t *RequestTracker) FailKeepalive(id string)
- func (t *RequestTracker) Start(id string) string
- func (t *RequestTracker) StartKeepalive(id string) string
- func (t *RequestTracker) Token(id string) string
- func (t *RequestTracker) Wrap(r Request) Request
- type ResponseWriter
Constants ¶
const ( HeaderContentLength = "Content-Length" HeaderContentType = "Content-Type" )
const RequestIDHeader = "X-Wails-Request-Id"
RequestIDHeader is a private bridge marker, removed before calling handlers.
const Webkit2MinMinorVersion = 0
Variables ¶
This section is empty.
Functions ¶
func CancelRequest ¶
CancelRequest cancels the request associated with a native scheme task. It returns false when the task has already completed or was never registered.
func CloseActiveRequests ¶
func CloseActiveRequests()
CloseActiveRequests releases all native request references while the GTK thread is still active. The application calls this immediately before it quits the main loop, covering handlers that outlive window destruction.
func Context ¶
Context returns the native request's lifetime context when the backend exposes one. Backends without a cancellation signal retain their existing behavior.
func DisableMainThreadDispatch ¶
func DisableMainThreadDispatch()
DisableMainThreadDispatch marks the GTK main loop as stopped. After it is called, invokeOnMainSync runs callbacks inline on the calling goroutine instead of scheduling them onto the now-dead main loop, so asset-server workers that complete a request during shutdown cannot block forever waiting for a source that will never be serviced. The application layer calls this once g_application_run has returned. See issue #5631.
func RequestContext ¶
func RequestContext(r Request) (context.Context, context.CancelFunc)
RequestContext returns the lifecycle context associated with a WebView request. Requests without a native lifecycle wrapper retain the historical background context.
Types ¶
type Request ¶
type Request interface {
URL() (string, error)
Method() (string, error)
Header() (http.Header, error)
Body() (io.ReadCloser, error)
Response() ResponseWriter
Close() error
}
func NewRequest ¶
type RequestTracker ¶
type RequestTracker struct {
// contains filtered or unexported fields
}
RequestTracker connects browser request identities to Go contexts. A tracker belongs to one WebView; neither URLs nor native pointers identify requests.
func NewRequestTracker ¶
func NewRequestTracker(parent context.Context) *RequestTracker
func (*RequestTracker) Cancel ¶
func (t *RequestTracker) Cancel(id string)
Cancel also removes unclaimed requests: an abort can arrive before the WebResourceRequested callback, or prevent that callback entirely.
func (*RequestTracker) Close ¶
func (t *RequestTracker) Close()
Close cancels all requests, including requests lacking a browser identity.
func (*RequestTracker) FailKeepalive ¶
func (t *RequestTracker) FailKeepalive(id string)
FailKeepalive releases failed delivery once all dispatched handlers finish.
func (*RequestTracker) Start ¶
func (t *RequestTracker) Start(id string) string
Start runs before the browser resumes an intercepted request. Redirects may reuse a network ID, so each interception receives a fresh, unguessable token.
func (*RequestTracker) StartKeepalive ¶
func (t *RequestTracker) StartKeepalive(id string) string
StartKeepalive spans redirects and outlives the JavaScript response consumer.
func (*RequestTracker) Token ¶
func (t *RequestTracker) Token(id string) string
Token returns the marker for a request registered before interception.
func (*RequestTracker) Wrap ¶
func (t *RequestTracker) Wrap(r Request) Request
Wrap consumes the marker and transfers context ownership to the request. A missing nonempty token means an earlier abort (or an invalid marker), and must not resurrect the request. Closing an old redirect cannot remove its successor.
type ResponseWriter ¶
type ResponseWriter interface {
http.ResponseWriter
// Finish the response and flush all data. A Finish after the request has already been finished has no effect.
Finish() error
// Code returns the HTTP status code of the response
Code() int
}
A ResponseWriter interface is used by an HTTP handler to construct an HTTP response for the WebView.