pharo-users@lists.pharo.org

Any question about pharo is welcome

View all threads

Pharo-WebView

TT
Tomaž Turk
Thu, Dec 16, 2021 5:02 PM

Dear all,

Pharo-WebView package is now available on GitHub at
https://github.com/eftomi/Pharo-Webview.

Pharo-WebView is a package which implements a binding to webview dll
library available at https://github.com/webview/webview in Pharo.
Webview allows you to show HTML user interfaces in a native window,
inject JavaScript code and HTML content into the window. It renders HTML
originating via web requests or as a direct input.

I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32
and Linux, however I don't have access to Mac, so if anybody is
interested, I'd be grateful :-)

Best wishes,
Tomaz

Dear all, Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview. Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input. I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful :-) Best wishes, Tomaz
EL
Esteban Lorenzano
Thu, Dec 16, 2021 5:21 PM

Very nice :)

Esteban
On Dec 16 2021, at 6:02 pm, Tomaž Turk tomazz.turk@gmail.com wrote:

Dear all,

Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview.

Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input.

I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful :-)

Best wishes,
Tomaz

Very nice :) Esteban On Dec 16 2021, at 6:02 pm, Tomaž Turk <tomazz.turk@gmail.com> wrote: > Dear all, > > Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview. > > Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input. > > I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful :-) > > Best wishes, > Tomaz
RO
Richard O'Keefe
Fri, Dec 17, 2021 10:51 AM

Ta muchly.  Appreciated.

On Fri, 17 Dec 2021 at 06:03, Tomaž Turk tomazz.turk@gmail.com wrote:

Dear all,

Pharo-WebView package is now available on GitHub at
https://github.com/eftomi/Pharo-Webview.

Pharo-WebView is a package which implements a binding to webview dll
library available at https://github.com/webview/webview in Pharo. Webview
allows you to show HTML user interfaces in a native window, inject
JavaScript code and HTML content into the window. It renders HTML
originating via web requests or as a direct input.

I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32
and Linux, however I don't have access to Mac, so if anybody is interested,
I'd be grateful :-)

Best wishes,
Tomaz

Ta muchly. Appreciated. On Fri, 17 Dec 2021 at 06:03, Tomaž Turk <tomazz.turk@gmail.com> wrote: > Dear all, > > Pharo-WebView package is now available on GitHub at > https://github.com/eftomi/Pharo-Webview. > > Pharo-WebView is a package which implements a binding to webview dll > library available at https://github.com/webview/webview in Pharo. Webview > allows you to show HTML user interfaces in a native window, inject > JavaScript code and HTML content into the window. It renders HTML > originating via web requests or as a direct input. > > I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 > and Linux, however I don't have access to Mac, so if anybody is interested, > I'd be grateful :-) > > Best wishes, > Tomaz > >
GP
Guillermo Polito
Fri, Dec 17, 2021 1:29 PM

This is amazing!!!!

I wonder how this would marry with PharoJS :)

El 17 dic 2021, a las 11:51, Richard O'Keefe raoknz@gmail.com escribió:

Ta muchly.  Appreciated.

On Fri, 17 Dec 2021 at 06:03, Tomaž Turk <tomazz.turk@gmail.com mailto:tomazz.turk@gmail.com> wrote:
Dear all,

Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview https://github.com/eftomi/Pharo-Webview.

Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview https://github.com/webview/webview in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input.

I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful :-)

Best wishes,
Tomaz

This is amazing!!!! I wonder how this would marry with PharoJS :) > El 17 dic 2021, a las 11:51, Richard O'Keefe <raoknz@gmail.com> escribió: > > Ta muchly. Appreciated. > > > On Fri, 17 Dec 2021 at 06:03, Tomaž Turk <tomazz.turk@gmail.com <mailto:tomazz.turk@gmail.com>> wrote: > Dear all, > > Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview <https://github.com/eftomi/Pharo-Webview>. > > Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview <https://github.com/webview/webview> in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input. > > I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful :-) > > Best wishes, > Tomaz >
TT
Tomaž Turk
Fri, Dec 17, 2021 2:00 PM

Thanks! It still has some quirks :-)

BTW, it should be possible to get a javascript promise as a result from
a callback to Pharo, however I always get "#ifTrue:ifFalse: was sent to
nil" in VMCallbackContext64 if I actually do the callback which has a
signature with a pointer as a return value, like

FFICallback
signature: #(char * (const char * seq, const char * req))
block: [ :seq :req | ... ]

or

FFICallback
signature: #(String (const char * seq, const char * req))
block: [ :seq :req | ... ]

I checked the FFICallback tests and there are no examples of pointer
return values. Is this possible?

Best wishes,
Tomaz

------ Original Message ------
From: "Guillermo Polito" guillermopolito@gmail.com
To: "Any question about pharo is welcome" pharo-users@lists.pharo.org
Cc: "Tomaž Turk" tomazz.turk@gmail.com
Sent: 17. 12. 2021 14:29:37
Subject: Re: [Pharo-users] Re: Pharo-WebView

This is amazing!!!!

I wonder how this would marry with PharoJS
:)

El 17 dic 2021, a las 11:51, Richard O'Keefe raoknz@gmail.com
escribió:

Ta muchly.  Appreciated.

On Fri, 17 Dec 2021 at 06:03, Tomaž Turk tomazz.turk@gmail.com
wrote:

Dear all,

Pharo-WebView package is now available on GitHub at
https://github.com/eftomi/Pharo-Webview.

Pharo-WebView is a package which implements a binding to webview dll
library available at https://github.com/webview/webview in Pharo.
Webview allows you to show HTML user interfaces in a native window,
inject JavaScript code and HTML content into the window. It renders
HTML originating via web requests or as a direct input.

I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo
32 and Linux, however I don't have access to Mac, so if anybody is
interested, I'd be grateful
:-)

Best wishes,
Tomaz

Thanks! It still has some quirks :-) BTW, it should be possible to get a javascript promise as a result from a callback to Pharo, however I always get "#ifTrue:ifFalse: was sent to nil" in VMCallbackContext64 if I actually do the callback which has a signature with a pointer as a return value, like FFICallback signature: #(char * (const char * seq, const char * req)) block: [ :seq :req | ... ] or FFICallback signature: #(String (const char * seq, const char * req)) block: [ :seq :req | ... ] I checked the FFICallback tests and there are no examples of pointer return values. Is this possible? Best wishes, Tomaz ------ Original Message ------ From: "Guillermo Polito" <guillermopolito@gmail.com> To: "Any question about pharo is welcome" <pharo-users@lists.pharo.org> Cc: "Tomaž Turk" <tomazz.turk@gmail.com> Sent: 17. 12. 2021 14:29:37 Subject: Re: [Pharo-users] Re: Pharo-WebView >This is amazing!!!! > >I wonder how this would marry with PharoJS >:) > > >>El 17 dic 2021, a las 11:51, Richard O'Keefe <raoknz@gmail.com> >>escribió: >> >>Ta muchly. Appreciated. >> >> >>On Fri, 17 Dec 2021 at 06:03, Tomaž Turk <tomazz.turk@gmail.com> >>wrote: >>>Dear all, >>> >>>Pharo-WebView package is now available on GitHub at >>>https://github.com/eftomi/Pharo-Webview. >>> >>>Pharo-WebView is a package which implements a binding to webview dll >>>library available at https://github.com/webview/webview in Pharo. >>>Webview allows you to show HTML user interfaces in a native window, >>>inject JavaScript code and HTML content into the window. It renders >>>HTML originating via web requests or as a direct input. >>> >>>I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo >>>32 and Linux, however I don't have access to Mac, so if anybody is >>>interested, I'd be grateful >>>:-) >>> >>>Best wishes, >>>Tomaz >>> >
TB
Todd Blanchard
Fri, Dec 17, 2021 5:50 PM

Seems cool but I can't figure out how to build it as a library on MacOS.

On Dec 16, 2021, at 10:02 AM, Tomaž Turk tomazz.turk@gmail.com wrote:

Dear all,

Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview https://github.com/eftomi/Pharo-Webview.

Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview https://github.com/webview/webview in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input.

I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful :-)

Best wishes,
Tomaz

Seems cool but I can't figure out how to build it as a library on MacOS. > On Dec 16, 2021, at 10:02 AM, Tomaž Turk <tomazz.turk@gmail.com> wrote: > > Dear all, > > Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview <https://github.com/eftomi/Pharo-Webview>. > > Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview <https://github.com/webview/webview> in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input. > > I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful :-) > > Best wishes, > Tomaz
TT
tomazz.turk@gmail.com
Sun, Dec 19, 2021 1:17 PM

A bit of progress :-) I compiled a shared library libwebview.so on Ubuntu with:

g++ webview.c -fPIC -shared -o libwebview.so `pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0`

Before that, the gtk and webkit2 dev libraries should be installed with:

sudo apt install -y libwebkit2gtk-4.0-dev libgtk-3-dev

And if you don’t have gcc tools:

sudo apt install build-essential

I’ll see if I can figure it out for MacOS too.

It appears that in Linux it is necessary to run the webview in separate thread, otherwise Pharo image gets blocked, so I have to slightly change the architecture (with threaded FFI as astares pointed out on Discord #ffi).

Tomaz

A bit of progress :-) I compiled a shared library libwebview.so on Ubuntu with: `` g++ webview.c -fPIC -shared -o libwebview.so `pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0` `` Before that, the gtk and webkit2 dev libraries should be installed with: `sudo apt install -y libwebkit2gtk-4.0-dev libgtk-3-dev` And if you don’t have gcc tools: `sudo apt install build-essential` I’ll see if I can figure it out for MacOS too. It appears that in Linux it is necessary to run the webview in separate thread, otherwise Pharo image gets blocked, so I have to slightly change the architecture (with threaded FFI as astares pointed out on Discord #ffi). Tomaz
GP
Guillermo Polito
Mon, Dec 20, 2021 8:51 AM

Thanks Tomaz,

You may have hit a bug/unimplemented feature.
Would you mind opening an issue with some more details? What Pharo version, what backend, an example with the C counterpart maybe?
Everything that would help us quickly build a test is super useful to work in a fix (or even, a written test would be better than any explanation ;)).

Otherwise, with the coming holidays this may get lost.
G

El 17 dic 2021, a las 15:00, Tomaž Turk tomazz.turk@gmail.com escribió:

Thanks! It still has some quirks :-)

BTW, it should be possible to get a javascript promise as a result from a callback to Pharo, however I always get "#ifTrue:ifFalse: was sent to nil" in VMCallbackContext64 if I actually do the callback which has a signature with a pointer as a return value, like

FFICallback
signature: #(char * (const char * seq, const char * req))
block: [ :seq :req | ... ]

or

FFICallback
signature: #(String (const char * seq, const char * req))
block: [ :seq :req | ... ]

I checked the FFICallback tests and there are no examples of pointer return values. Is this possible?

Best wishes,
Tomaz

------ Original Message ------
From: "Guillermo Polito" <guillermopolito@gmail.com mailto:guillermopolito@gmail.com>
To: "Any question about pharo is welcome" <pharo-users@lists.pharo.org mailto:pharo-users@lists.pharo.org>
Cc: "Tomaž Turk" <tomazz.turk@gmail.com mailto:tomazz.turk@gmail.com>
Sent: 17. 12. 2021 14:29:37
Subject: Re: [Pharo-users] Re: Pharo-WebView

This is amazing!!!!

I wonder how this would marry with PharoJS <emoticon_smiley.png>

El 17 dic 2021, a las 11:51, Richard O'Keefe <raoknz@gmail.com mailto:raoknz@gmail.com> escribió:

Ta muchly.  Appreciated.

On Fri, 17 Dec 2021 at 06:03, Tomaž Turk <tomazz.turk@gmail.com mailto:tomazz.turk@gmail.com> wrote:
Dear all,

Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview https://github.com/eftomi/Pharo-Webview.

Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview https://github.com/webview/webview in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input.

I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful <emoticon_smiley.png>

Best wishes,
Tomaz

Thanks Tomaz, You may have hit a bug/unimplemented feature. Would you mind opening an issue with some more details? What Pharo version, what backend, an example with the C counterpart maybe? Everything that would help us quickly build a test is super useful to work in a fix (or even, a written test would be better than any explanation ;)). Otherwise, with the coming holidays this may get lost. G > El 17 dic 2021, a las 15:00, Tomaž Turk <tomazz.turk@gmail.com> escribió: > > Thanks! It still has some quirks :-) > > BTW, it should be possible to get a javascript promise as a result from a callback to Pharo, however I always get "#ifTrue:ifFalse: was sent to nil" in VMCallbackContext64 if I actually do the callback which has a signature with a pointer as a return value, like > > FFICallback > signature: #(char * (const char * seq, const char * req)) > block: [ :seq :req | ... ] > > or > > FFICallback > signature: #(String (const char * seq, const char * req)) > block: [ :seq :req | ... ] > > I checked the FFICallback tests and there are no examples of pointer return values. Is this possible? > > Best wishes, > Tomaz > > ------ Original Message ------ > From: "Guillermo Polito" <guillermopolito@gmail.com <mailto:guillermopolito@gmail.com>> > To: "Any question about pharo is welcome" <pharo-users@lists.pharo.org <mailto:pharo-users@lists.pharo.org>> > Cc: "Tomaž Turk" <tomazz.turk@gmail.com <mailto:tomazz.turk@gmail.com>> > Sent: 17. 12. 2021 14:29:37 > Subject: Re: [Pharo-users] Re: Pharo-WebView > >> This is amazing!!!! >> >> I wonder how this would marry with PharoJS <emoticon_smiley.png> >> >>> El 17 dic 2021, a las 11:51, Richard O'Keefe <raoknz@gmail.com <mailto:raoknz@gmail.com>> escribió: >>> >>> Ta muchly. Appreciated. >>> >>> >>> On Fri, 17 Dec 2021 at 06:03, Tomaž Turk <tomazz.turk@gmail.com <mailto:tomazz.turk@gmail.com>> wrote: >>> Dear all, >>> >>> Pharo-WebView package is now available on GitHub at https://github.com/eftomi/Pharo-Webview <https://github.com/eftomi/Pharo-Webview>. >>> >>> Pharo-WebView is a package which implements a binding to webview dll library available at https://github.com/webview/webview <https://github.com/webview/webview> in Pharo. Webview allows you to show HTML user interfaces in a native window, inject JavaScript code and HTML content into the window. It renders HTML originating via web requests or as a direct input. >>> >>> I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 and Linux, however I don't have access to Mac, so if anybody is interested, I'd be grateful <emoticon_smiley.png> >>> >>> Best wishes, >>> Tomaz
TT
Tomaž Turk
Mon, Dec 20, 2021 1:47 PM

Done :-)

Done :-)
RW
Russ Whaley
Wed, Dec 22, 2021 11:06 PM

Todd, me neither, but I am a bit worried about mentions of gtk, as I
haven’t been able to get that to work either :(

On Fri, Dec 17, 2021 at 12:50 PM Todd Blanchard via Pharo-users <
pharo-users@lists.pharo.org> wrote:

Seems cool but I can't figure out how to build it as a library on MacOS.

On Dec 16, 2021, at 10:02 AM, Tomaž Turk tomazz.turk@gmail.com wrote:

Dear all,

Pharo-WebView package is now available on GitHub at
https://github.com/eftomi/Pharo-Webview.

Pharo-WebView is a package which implements a binding to webview dll
library available at https://github.com/webview/webview in Pharo. Webview
allows you to show HTML user interfaces in a native window, inject
JavaScript code and HTML content into the window. It renders HTML
originating via web requests or as a direct input.

I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32
and Linux, however I don't have access to Mac, so if anybody is interested,
I'd be grateful :-)

Best wishes,
Tomaz

--

Todd, me neither, but I am a bit worried about mentions of gtk, as I haven’t been able to get that to work either :( On Fri, Dec 17, 2021 at 12:50 PM Todd Blanchard via Pharo-users < pharo-users@lists.pharo.org> wrote: > Seems cool but I can't figure out how to build it as a library on MacOS. > > > On Dec 16, 2021, at 10:02 AM, Tomaž Turk <tomazz.turk@gmail.com> wrote: > > Dear all, > > Pharo-WebView package is now available on GitHub at > https://github.com/eftomi/Pharo-Webview. > > Pharo-WebView is a package which implements a binding to webview dll > library available at https://github.com/webview/webview in Pharo. Webview > allows you to show HTML user interfaces in a native window, inject > JavaScript code and HTML content into the window. It renders HTML > originating via web requests or as a direct input. > > I tested it on Windows 64 bit in Pharo 64, I plan to do that on Pharo 32 > and Linux, however I don't have access to Mac, so if anybody is interested, > I'd be grateful :-) > > Best wishes, > Tomaz > > > -- Russ Whaley whaley.russ@gmail.com