packages feed

jsaddle-webkit2gtk 0.9.6.0 → 0.9.7.0

raw patch · 2 files changed

+10/−37 lines, 2 filesdep ~haskell-gi-basedep ~haskell-gi-overloading

Dependency ranges changed: haskell-gi-base, haskell-gi-overloading

Files

jsaddle-webkit2gtk.cabal view
@@ -1,5 +1,5 @@ name: jsaddle-webkit2gtk-version: 0.9.6.0+version: 0.9.7.0 cabal-version: >=1.10 build-type: Simple license: MIT@@ -35,8 +35,8 @@         gi-gtk >=3.0.17 && <3.1,         gi-webkit2 >=4.0.14 && <4.1,         gi-javascriptcore >=4.0.14 && <4.1,-        haskell-gi-base >=0.20 && <0.22,-        haskell-gi-overloading ==0.0.*,+        haskell-gi-base >=0.20 && <0.24,+        haskell-gi-overloading >=0.0 && < 2.0,         jsaddle >=0.9.4.0 && <0.10,         text >=1.2.1.3 && <1.3,         webkit2gtk3-javascriptcore >=0.14.0.0 && <0.15
src/Language/Javascript/JSaddle/WebKitGTK.hs view
@@ -43,18 +43,13 @@ import Data.ByteString.Lazy (toStrict, fromStrict) import qualified Data.ByteString.Lazy as LB (ByteString) import Data.Aeson (encode, decode)-import Data.Text (Text) import qualified Data.Text as T (pack)-import Data.Text.Foreign (fromPtr) import Data.Text.Encoding (decodeUtf8, encodeUtf8) -import Foreign.Ptr (castPtr, nullPtr)- import Data.GI.Base.BasicTypes (GObject) import Data.GI.Base.Signals        (connectSignalFunPtr, SignalConnectMode(..), SignalConnectMode,         SignalHandlerId)-import Data.GI.Base.ManagedPtr (withManagedPtr)  import GI.GLib (timeoutAdd, idleAdd, pattern PRIORITY_HIGH, pattern PRIORITY_DEFAULT) import qualified GI.Gtk as Gtk (main, init)@@ -65,7 +60,7 @@         widgetGetToplevel, widgetShowAll, onWidgetDestroy,         mainQuit) import GI.Gio (noCancellable)-import GI.JavaScriptCore (Value(..), GlobalContext(..))+import GI.JavaScriptCore (valueToString) import GI.WebKit2        (scriptDialogPromptSetText, scriptDialogPromptGetDefaultText,         scriptDialogGetMessage, scriptDialogGetDialogType,@@ -74,7 +69,7 @@         setSettingsEnableJavascript, webViewNewWithUserContentManager,         userContentManagerNew,         userContentManagerRegisterScriptMessageHandler,-        javascriptResultGetValue, javascriptResultGetGlobalContext,+        javascriptResultGetJsValue,         webViewGetUserContentManager,         mk_UserContentManagerScriptMessageReceivedCallback,         wrap_UserContentManagerScriptMessageReceivedCallback,@@ -83,13 +78,6 @@         onWebViewLoadChanged, setSettingsEnableDeveloperExtras,         webViewSetSettings, webViewGetSettings, ScriptDialogType(..)) -import Graphics.UI.Gtk.WebKit.JavaScriptCore.JSBase-       (JSValueRef, JSContextRef)-import Graphics.UI.Gtk.WebKit.JavaScriptCore.JSStringRef-       (jsstringgetcharactersptr, jsstringgetlength, jsstringrelease)-import Graphics.UI.Gtk.WebKit.JavaScriptCore.JSValueRef-       (jsvaluetostringcopy)- import Language.Javascript.JSaddle (JSM, Results, Batch) import Language.Javascript.JSaddle.Run (runJavaScript) import Language.Javascript.JSaddle.Run.Files (initState, runBatch, ghcjsHelpers)@@ -109,21 +97,6 @@ postGUIAsync action =   void . idleAdd PRIORITY_DEFAULT $ action >> return False -withJSContextRef :: GlobalContext -> (JSContextRef -> IO a) -> IO a-withJSContextRef (GlobalContext ctx) f = withManagedPtr ctx (f . castPtr)--withJSValueRef :: Value -> (JSValueRef -> IO a) -> IO a-withJSValueRef (Value ptr) f = withManagedPtr ptr (f . castPtr)--valueToText :: JSContextRef -> JSValueRef -> IO Text-valueToText ctxRef s = do-    jsstring <- jsvaluetostringcopy ctxRef s nullPtr-    l <- jsstringgetlength jsstring-    p <- jsstringgetcharactersptr jsstring-    result <- fromPtr (castPtr p) (fromIntegral l)-    jsstringrelease jsstring-    return result- run :: JSM () -> IO () run main = do     _ <- Gtk.init Nothing@@ -172,16 +145,16 @@     let cb' = wrap_UserContentManagerScriptMessageReceivedCallback cb     cb'' <- mk_UserContentManagerScriptMessageReceivedCallback cb'     connectSignalFunPtr obj "script-message-received::jsaddle" cb'' after+#if MIN_VERSION_haskell_gi_base(0,23,0)+      Nothing+#endif  addJSaddleHandler :: WebView -> (Results -> IO ()) -> (Results -> IO Batch) -> IO () addJSaddleHandler webView processResult syncResults = do     manager <- webViewGetUserContentManager webView     _ <- onUserContentManagerScriptMessageReceived manager $ \result -> do-        ctx <- javascriptResultGetGlobalContext result-        arg <- javascriptResultGetValue result-        bs <- withJSContextRef ctx $ \ctxRef ->-            withJSValueRef arg $ \argRef ->-                encodeUtf8 <$> valueToText ctxRef argRef+        arg <- javascriptResultGetJsValue result+        bs <- encodeUtf8 <$> valueToString arg         mapM_ processResult (decode (fromStrict bs))     _ <- onWebViewScriptDialog webView $ \dialog ->         scriptDialogGetDialogType dialog >>= \case