diff --git a/example/index.html b/example/index.html index 4162fed..516491d 100644 --- a/example/index.html +++ b/example/index.html @@ -14,10 +14,18 @@ Please press this for something to happen. Some input text:

-

Hi there!

+

Hi there! Click here to load this page again

+

To page 2

Ja

Ja

Nou...

+
+ +
+ diff --git a/example/page2.html b/example/page2.html new file mode 100644 index 0000000..2d223c8 --- /dev/null +++ b/example/page2.html @@ -0,0 +1,17 @@ + + + + + Example of racket webview + + + +

This is Page 2

+
+

Hi there! Click here to load this main page again

+
+
+ +
+ + diff --git a/example/styles.css b/example/styles.css index f7eebca..d554f50 100644 --- a/example/styles.css +++ b/example/styles.css @@ -20,4 +20,12 @@ h1.blue { color: red; } +.image { + width: 70%; +} + +.image img { + width: 100%; +} + diff --git a/example/test.jpg b/example/test.jpg new file mode 100644 index 0000000..fb25b7e Binary files /dev/null and b/example/test.jpg differ diff --git a/private/lib/windows/rktwebview_qt.dll b/private/lib/windows/rktwebview_qt.dll index 6f4b5d0..b57b4ad 100644 Binary files a/private/lib/windows/rktwebview_qt.dll and b/private/lib/windows/rktwebview_qt.dll differ diff --git a/private/racket-webview-qt.rkt b/private/racket-webview-qt.rkt index 4beed4c..222dcd0 100644 --- a/private/racket-webview-qt.rkt +++ b/private/racket-webview-qt.rkt @@ -18,6 +18,7 @@ rkt-webview-create rkt-webview-close + rkt-webview-set-ou-token rkt-webview-set-url! rkt-webview-set-html! rkt-webview-run-js @@ -196,6 +197,10 @@ (define-rktwebview rkt_webview_close (_fun _int -> _void)) +;void rkt_webview_set_ou_token(rktwebview_t wv, const char *token) +(define-rktwebview rkt_webview_set_ou_token + (_fun _int _string/utf-8 -> _void)) + ;RKTWEBVIEW_QT_EXPORT result_t rkt_webview_set_url(int wv, const char *url); (define-rktwebview rkt_webview_set_url (_fun _int _string/utf-8 -> _rkt_result_t)) @@ -362,6 +367,10 @@ (enqueue! (rkt-wv-evt-queue handle) 'quit) #t) +(define (rkt-webview-set-ou-token handle token) + (rkt_webview_set_ou_token (rkt-wv-win handle) token) + #t) + (define (rkt-webview-set-url! wv url) (rkt_webview_set_url (rkt-wv-win wv) url)) diff --git a/private/racket-webview.rkt b/private/racket-webview.rkt index b138d25..dd67524 100644 --- a/private/racket-webview.rkt +++ b/private/racket-webview.rkt @@ -3,9 +3,12 @@ (require "racket-webview-qt.rkt" "utils.rkt" "mimetypes.rkt" - web-server/servlet - web-server/servlet-env + racket/async-channel web-server/http + web-server/servlet-dispatch + web-server/web-server + web-server/servlet-env + (prefix-in c: net/cookies) net/url racket/runtime-path racket/file @@ -19,6 +22,8 @@ (prefix-in g: gregor) (prefix-in g: gregor/time) gregor-utils + lru-cache + racket-self-signed-cert ) (provide webview-create @@ -95,9 +100,6 @@ ;; Web server ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(define current-servlet-port 8083) -(define current-window-nr 1) - (define-runtime-path js-path "../js") (define (default-boilerplate-js) @@ -106,16 +108,20 @@ (define-struct wv ([handle #:mutable] - port + [port #:mutable] [window-nr #:mutable] [file-getter #:mutable] [boilerplate-js #:mutable] - [webserver-thread #:mutable]) + [webserver-thread #:mutable] + [request-count #:mutable] + [sec-token-cache #:mutable] + [cert-ou-token #:mutable] + ) #:transparent) (define (process-html wv-handle path out) (let ((html (file->string path)) - (boilerplate-js (wv-boilerplate-js wv-handle))) + (boilerplate-js ((wv-boilerplate-js wv-handle)))) (set! html (string-replace html "" (string-append "" "\n" "