on master help sign in
Make the base URLs more consistent.
e2d2b9cTim Emiola
jsaddle-webkit2gtk/src/Language/Javascript/JSaddle/WebKitGTK.hs+1−1
@@ -148,7 +148,7 @@ run main = do
148 void . onWebViewLoadChanged webView $ \case
148 void . onWebViewLoadChanged webView $ \case
149 LoadEventFinished -> runInWebView main webView
149 LoadEventFinished -> runInWebView main webView
150 _ -> return ()
150 _ -> return ()
151− webViewLoadHtml webView "" . Just $ "file://" <> T.pack pwd <> "/"
151+ webViewLoadHtml webView "" . Just $ "file://" <> T.pack pwd <> "/index.html"
152 installQuitHandler webView
152 installQuitHandler webView
153 Gtk.main
153 Gtk.main
154
154
jsaddle-wkwebview/jsaddle-wkwebview.cabal+2
@@ -30,7 +30,9 @@ library
30 aeson >=0.8.0.2 && <1.3,
30 aeson >=0.8.0.2 && <1.3,
31 base <5,
31 base <5,
32 bytestring >=0.10.6.0 && <0.11,
32 bytestring >=0.10.6.0 && <0.11,
33+ directory,
33 jsaddle >= 0.9.4.0 && <0.10,
34 jsaddle >= 0.9.4.0 && <0.10,
35+ text,
34 data-default,
36 data-default,
35 containers
37 containers
36 default-language: Haskell2010
38 default-language: Haskell2010
jsaddle-wkwebview/src/Language/Javascript/JSaddle/WKWebView/Internal.hs+8−6
@@ -15,6 +15,8 @@ import Data.ByteString (useAsCString, packCString)
15import qualified Data.ByteString as BS (ByteString)
15import qualified Data.ByteString as BS (ByteString)
16import Data.ByteString.Lazy (ByteString, toStrict, fromStrict)
16import Data.ByteString.Lazy (ByteString, toStrict, fromStrict)
17import Data.Aeson (encode, decode)
17import Data.Aeson (encode, decode)
18+import qualified Data.Text as T (pack)
19+import Data.Text.Encoding (encodeUtf8)
18
20
19import Foreign.C.String (CString)
21import Foreign.C.String (CString)
20import Foreign.Ptr (Ptr, nullPtr)
22import Foreign.Ptr (Ptr, nullPtr)
@@ -24,6 +26,8 @@ import Language.Javascript.JSaddle (Results, Batch, JSM)
24import Language.Javascript.JSaddle.Run (runJavaScript)
26import Language.Javascript.JSaddle.Run (runJavaScript)
25import Language.Javascript.JSaddle.Run.Files (initState, runBatch, ghcjsHelpers)
27import Language.Javascript.JSaddle.Run.Files (initState, runBatch, ghcjsHelpers)
26
28
29+import System.Directory (getCurrentDirectory)
30+
27newtype WKWebView = WKWebView (Ptr WKWebView)
31newtype WKWebView = WKWebView (Ptr WKWebView)
28newtype JSaddleHandler = JSaddleHandler (Ptr JSaddleHandler)
32newtype JSaddleHandler = JSaddleHandler (Ptr JSaddleHandler)
29
33
@@ -42,9 +46,11 @@ foreign import ccall mainBundleResourcePathC :: IO CString
42
46
43-- | Run JSaddle in WKWebView
47-- | Run JSaddle in WKWebView
44jsaddleMain :: JSM () -> WKWebView -> IO ()
48jsaddleMain :: JSM () -> WKWebView -> IO ()
45−jsaddleMain f webView =
49+jsaddleMain f webView = do
50+ pwd <- getCurrentDirectory
51+ let baseURL = encodeUtf8 $ "file://" <> T.pack pwd <> "/index.html"
46 jsaddleMain' f webView $
52 jsaddleMain' f webView $
47− useAsCString (toStrict indexHtmlBaseURL) $ \url ->
53+ useAsCString baseURL $ \url ->
48 useAsCString (toStrict indexHtml) $ \html ->
54 useAsCString (toStrict indexHtml) $ \html ->
49 loadHTMLStringWithBaseURL webView html url
55 loadHTMLStringWithBaseURL webView html url
50
56
@@ -125,10 +131,6 @@ jsaddleJs = ghcjsHelpers <> "\
125 \})();\n\
131 \})();\n\
126 \"
132 \"
127
133
128−
129−indexHtmlBaseURL :: ByteString
130−indexHtmlBaseURL = "file:///tmp/index.html"
131−
132indexHtml :: ByteString
134indexHtml :: ByteString
133indexHtml =
135indexHtml =
134 "<!DOCTYPE html>\n\
136 "<!DOCTYPE html>\n\