Closed git-dmou closed 6 months ago
Hi @git-dmou
I'm really puzzled here. I tried the menu and all items work without a problem. Which Pharo version are you using and which VM version? I tried Pharo 10 and 12.
The code for the Component Examples does not seem special if compared to other applications.
Sunny regards, Erik
@git-dmou I see you're using Pharo 12 (didn't read the title carefully enough)...
@git-dmou retried with new image, but still works. Which OS are you on? No clue if this makes a difference, but seeing if I can reproduce this.
Hello Erik,
I'm on windows 11, I've tried on 2 differents computers,
VM: 120-x64 2024-01-15 update
image pharo 12 from the same day
tried on chrome and Firefox.
I browsed the code quickly and saw no differences between apps in the building of url as you said !
Specific language setting on browser?
I've tried english on firefox and french on chrome
Which characters are appended? You wrote 'random'. Does this mean it differs between executions?
Could you try and add a breakpoint in CpDevTools class >> #open
and inspect what the value of choices
is before making the selection and what the value of choice
is after making the selection? This to check whether these random characters are coming from the Pharo image or whether the browser (plugin?) somehow adds these characters.
Thx
by random I mean a couple of different char at each exec. for example : "À3" or "%10k" or "rš", appended to "http://localhost:8080/static/app.html?Component-Examples"
I'll try with the breakpoint
apparently, no problems so far !
Maybe also add a breakpoint on: WBWindowsWebBrowser class >> #shellExecute:file:parameters:directory:show:
. That is sort of the last code being executed before it is handled to the OS (shell32 lib) to execute. See if lpFile
is still without these random characters.
here you are
you're right, non random chars in the pharo area !
Hmmm...that still leaves the FFI stuff (but it works for other applications, so what would make this one special?), since it behaves the same in both Chrome and Firefox.
Could you try and update the method CpComponentExamplesWebApplication class >> #app
and replace the content with:
app
"Answer the unique identifier (a Symbol) for the receiver"
^ #fixmesoon
Do a 'reset' from the CodeParadise menu and try to run the application (now named 'fixmesoon').
I tried like this : it seems that any name finishing in "example" trigger the problem !
and it works !
Not fully sure yet ;-). Could you try and replace the method with this one:
app
"Answer the unique identifier (a Symbol) for the receiver"
^ #'Cmponent-Examples'
I made it a single character shorter, but still has the same 'ending'. I am wondering whether the final URL size (56 bytes/chars) is causing an issue. This is 2 longs (2x 4 bytes) short of 64 bytes, which might be some sort of magic size limit. Please let me know what happens.
Remember that Soelace-Examples works okay, but also ends with '-Examples'.
It works, it should be a length problem ....
however, "building-my-first-app" is longer, but has no problem
Maybe not every length. Could you try the following version? If this works, it is not perse the length. This is a version with the same length but different content. We're just trying to find the cause by taking away possibilities ;-)
app
"Answer the unique identifier (a Symbol) for the receiver"
^ #'Component-Examplex'
Remember to reset the menu before trying to open the application.
Thx for helping out and testing these things out by the way! 🙏
Okay. So it seems this specific length is an issue. I'm investigating a little here. I will try to come back with some more tests if you're okay with that.
your welcome
Could you give me the result of evaluating the following in a Playground?
#shell32 asFFILibrary calloutAPIClass
It should probably answer something like FFICalloutAPI or TFCalloutAPI. It is either the regular or the threaded FFI version.
TFCalloutAPI
Could you please evaluate/inspect the following?
TFUFFIDerivedTypeMarshallingTest new
ffiLibrary: TFTestLibraryUsingSameThreadRunner ;
pointerToString: 'http://localhost:8080/static/app.html?Component-Examples'.
Does it answer the correct (duplicated) String or does it also have random characters added? And this variant?
TFUFFIDerivedTypeMarshallingTest new
ffiLibrary: TFTestLibraryUsingWorker ;
pointerToString: 'http://localhost:8080/static/app.html?Component-Examples'.
Have dug deep into the code (into primitives and generated FFI code), but can't find the location where things go wrong. My feeling is it has to do with the FFI (Foreign Function Interface). I'll post a question on the Discord channel. Hopefully someone can help out. Thx so far and I will keep you updated.
quite tricky ! the best thing to do so far on windows is to choose a name for the app and to test the generated url in the browser !
Strange, doing variations:
WebBrowser openOn: 'http://localhost:8080/static/app.html?Component-Examples' - APPENDS
WebBrowser openOn: 'http://localhost:8080/static/map.html?Component-Examples' - APPENDS
WebBrowser openOn: 'http://localhost:8080/static/app.html?ComponentExamples' - WORKS
WebBrowser openOn: 'http://localhost:8080/app.html?Component-Examples' WORKS
WebBrowser openOn: 'http://localhost:8080/something/app.html?Component-Examples' WORKS
WebBrowser openOn: 'http://localhost/static/app.html?Component-Examples' - WORKS
@astares It seems the exact length is an issue. I also posted this on Discord (see link below). Could you try the following on your machine as well?
WebBrowser openOn: 'https://pharo.org?abcdefghijklmnopqrstuvwxyz1234567890ok'.
https://discord.com/channels/223421264751099906/786544722235228160/1197203535285211166
Seems to be Pharo related as on DOS it works without additional characters
@astares It seems the exact length is an issue. I also posted this on Discord (see link below). Could you try the following on your machine as well?
WebBrowser openOn: 'https://pharo.org?abcdefghijklmnopqrstuvwxyz1234567890ok'.
https://discord.com/channels/223421264751099906/786544722235228160/1197203535285211166
Yes - same issue. Seems length based
opened https://github.com/pharo-project/pharo/issues/15980 as it is more Pharo related than a Code paradise issue
Hello Erik, it seems that this issue is fixed with
Pharo 12.0.0 Build information: Pharo-12.0.0+SNAPSHOT.build.1410.sha.6fa4632c0b60f6690d6af3f7f8fc6f3ab6240112 (64 Bit)
after the UFFI issue https://github.com/pharo-project/pharo/issues/15980 fixed
@denysos Thx. @astares for the fix! Closing the issue.
when starting the "Component-Examples" application from code paradise menu, the browser open with an url ending with 2 random characters .... and of course, the loading never end.
when I remove these chars, to get a clean url, the application opens as expected.
I've tried all the applications from the menu and this is the only case of this strange behaviour.