Jump to content

My Browser Builds (Part 3)


Recommended Posts

On 4/8/2022 at 8:06 AM, roytam1 said:

Advance Notice: no binary will be released tomorrow.

since goanna3 branch hitting a problem when downloading files, and reported to upstream

and sp55 is still ongoing a sync with UXP changes.

Roy, thank you for all of your hard work!
You have made an absolutely tremendous effort in helping to maintain the browsers you've shared with us, and I appreciate it very much. You're one of the good guys, without any doubt.
I hope you'll have a safe and happy week, brother.
Best wishes to you and everyone else here at MSFN!

Link to comment
Share on other sites


On 4/8/2022 at 8:06 PM, roytam1 said:

Advance Notice: no binary will be released tomorrow.

since goanna3 branch hitting a problem when downloading files, and reported to upstream

and sp55 is still ongoing a sync with UXP changes.

And there is new UXP based binaries this week, syncing with upstream 29.4.6

while SP55 is still syncing, there will also have new binary which capable to use github with gh-wc-pf extension

Link to comment
Share on other sites

That's great news...I'm definitely looking forward to the new binaries!
Thank you again for everything you do, Roy! You are a legend around here, brother!

Please forgive my ignorance, but just out of curiosity, once the sync is complete, will SP55 be able to achieve equal web compatibility to UXP while still retaining the greater stability of the original SP55 engine?
Or are there still some things unique to the pure UXP browsers which can't be completely translated to SP55?
I believe the last 'original' SP55 release was 2022-02-26, and 2022-03-26 was the first with backported UXP elements.
I used SP55 for a while before going back to SP52, and eventually to New Moon 28. All of your browsers are great & worth using, but it's just a matter of personal preference for me (I like the old-school New Moon interface, and I don't really use the extra features in Serpent).

Link to comment
Share on other sites

44 minutes ago, roytam1 said:

it uses new javascript syntax so no fix can be done by me

Specifically, no less than 22 occurrences :angry: of the Nullish Coalescing Operator (??) inside
https://conversejs.org/dist/converse.min.js

The above ECMAScript2020 syntax was first implemented in Chromium 80 and Firefox 72; backwards compatibility is not a thing most 2022 webmasters are concerned with... :realmad:
If on WinXP, am afraid only 360EEv13 (Ch86-based) and, perhaps, miniKafan (Ch87-based) are your options :( for "conversejs.org" ...

Link to comment
Share on other sites

15 hours ago, VistaLover said:

Specifically, no less than 22 occurrences :angry: of the Nullish Coalescing Operator (??) inside
https://conversejs.org/dist/converse.min.js

The above ECMAScript2020 syntax was first implemented in Chromium 80 and Firefox 72; backwards compatibility is not a thing most 2022 webmasters are concerned with... :realmad:
If on WinXP, am afraid only 360EEv13 (Ch86-based) and, perhaps, miniKafan (Ch87-based) are your options :( for "conversejs.org" ...

Couldl some magical "polyfill" thing fix this?

Link to comment
Share on other sites

4 hours ago, luweitest said:

Couldl some magical "polyfill" thing fix this?

So far, the answer has been that the end-user will have to do this manually for each and every web site that said end-user wishes to restore functionality.

The best example thus far has been one by @UCyborg here  --  https://msfn.org/board/topic/183484-polyfill-whats-all-this-then/?do=findComment&comment=1216216

I have personally not been able to repeat this on an American Water web site but I haven't fully given up yet.

It is not a trivial process, the average end-user will not have the patience to do this manual process for every web site they encounter.

I also am attempting via chromefill whereas UCyborg was successful only via palefill. (I have not been able to get American Water to work with non-polyfill NM28 with palefill.)

 

UCyborg's process is fairly easy to follow, once you narrow down the problematic script (his test site only has two, American Water's test site has over 200 scripts).

He narrowed the "??" issue down to this script  --  https://docs.microsoft.com/_themes/docs.theme/master/en-us/_themes/scripts/d48a1159.index-docs.js

If you open that script and paste the contents into Notepad++ and do a search for "??" (without the quotes), you will find 34 hits.

Now open this web site ( https://babeljs.io/repl ) and paste the script contents into the left pane (center pane if you include the far left settings pane, keep all of them at their defaults) of Babel.

Give it a few seconds and the translated script will appear in the right column.

Copy and paste the right column into a new tab in Notepad++.

Now do a search for "??" (without the quotes) for the new script - you will now have 0 hits.

 

So "all of that" was required in order to "magically" convert the polyfill "??" to something that will work in a non-polyfill web browser.

But you still need to add palefill or chromefill extension depending on Mozilla or Chromium based browser.

And you still need Proxomitron Reborn to have your web browser replace the original script with the converted script.

 

Problem there is going to be this - very few folks here at MSFN seem to be interested in Proxomitron Reborn (I've used it since 2004 (the original, the Reborn is not that old) and I still don't fully understand "everything" that it is capable of doing!).

Link to comment
Share on other sites

4 minutes ago, NotHereToPlayGames said:

So far, the answer has been that the end-user will have to do this manually for each and every web site that said end-user wishes to restore functionality.

The best example thus far has been one by @UCyborg here  --  https://msfn.org/board/topic/183484-polyfill-whats-all-this-then/?do=findComment&comment=1216216

I have personally not been able to repeat this on an American Water web site but I haven't fully given up yet.

It is not a trivial process, the average end-user will not have the patience to do this manual process for every web site they encounter.

I also am attempting via chromefill whereas UCyborg was successful only via palefill. (I have not been able to get American Water to work with non-polyfill NM28 with palefill.)

 

That was actually the idea that I had suggested / been thinking about a few weeks ago... chromefill applies polyfill automatically, why not run it through something like Babel to transpile it from newer syntax to older "vanilla" JS syntax on the fly?

It just seems there isn't a tool for that *now* but we could make one, and clearly it does work if done manually. Great work and good to see! The challenge will be automating it.

 

4 minutes ago, NotHereToPlayGames said:

UCyborg's process is fairly easy to follow, once you narrow down the problematic script (his test site only has two, American Water's test site has over 200 scripts).

He narrowed the "??" issue down to this script  --  https://docs.microsoft.com/_themes/docs.theme/master/en-us/_themes/scripts/d48a1159.index-docs.js

If you open that script and paste the contents into Notepad++ and do a search for "??" (without the quotes), you will find 34 hits.

Now open this web site ( https://babeljs.io/repl ) and paste the script contents into the left pane (center pane if you include the far left settings pane, keep all of them at their defaults) of Babel.

Give it a few seconds and the translated script will appear in the right column.

Copy and paste the right column into a new tab in Notepad++.

Now do a search for "??" (without the quotes) for the new script - you will now have 0 hits.

 

So "all of that" was required in order to "magically" convert the polyfill "??" to something that will work in a non-polyfill web browser.

But you still need to add palefill or chromefill extension depending on Mozilla or Chromium based browser.

 

Ideally, something like this would be part of one of those extensions.

I would add it to chromefill myself in a second, if only I knew how. I don't think there's any way to do transpiling on the fly automatically.

Alternately, perhaps if there is some JavaScript based Babel transpiling to convert the syntax, that could be part of the extension and all the JS could be run through that...

 

4 minutes ago, NotHereToPlayGames said:

And you still need Proxomitron Reborn to have your web browser replace the original script with the converted script.

 

Problem there is going to be this - very few folks here at MSFN seem to be interested in Proxomitron Reborn (I've used it since 2004 (the original, the Reborn is not that old) and I still don't fully understand "everything" that it is capable of doing!).

 

Link to comment
Share on other sites

4 hours ago, NotHereToPlayGames said:

He narrowed the "??" issue down to this script  --  https://docs.microsoft.com/_themes/docs.theme/master/en-us/_themes/scripts/d48a1159.index-docs.js

If you open that script and paste the contents into Notepad++ and do a search for "??" (without the quotes), you will find 34 hits.

Nullish Coalescing Operator (??) is only half of the issue here :( ; that same linked JS script also contains the Optional Chaining Operator (?.), first implemented in Chromium 80 and Firefox 74 (i.e. unsupported in UXP-based browsers); if you do a search for "?.", you'll, sadly, find 210 (!) hits... :realmad: 

9 hours ago, luweitest said:

Couldl some magical "polyfill" thing fix this?

As I've already posted in this thread, "operators" can't be (easily) polyfill-ed (and then used in extensions like chromefill/palefill), only "methods" can; for "operators", tranpilers (JS translators) must be used, like the already mentioned babel; problem (well, one of the chain of problems) is babel is designed for server-side use (website), not client-side use (end-user's old-engine browser); thus the necessity to deploy a local server (like Proxomitron) to serve the transpiled script to the browser...

@UCyborg ; I don't "speak" JS/regexp myself, but have you taken a look at 
https://github.com/JustOff/modify-http-response
? Could this be used to "Search & Replace" an online incompatible JS script (like the linked "*.index-docs.js") with a babel-processed local version of that script?
(NB: Extension only compatible with Fx-legacy/UXP-based browsers)

Link to comment
Share on other sites

Just now, VistaLover said:

@UCyborg ; I don't "speak" JS/regexp myself, but have you taken a look at
https://github.com/JustOff/modify-http-response
? Could this be used to "Search & Replace" an online incompatible JS script (like the linked "*.index-docs.js") with a babel-processed local version of that script?
(NB: Extension only compatible with Fx-legacy/UXP-based browsers)

No, I haven't until now...the one example seems to modify already retrieved content while you're looking for a redirect.

Both HTTP header and content modifications are more straightforward with Proxomitron. At least it has some documentation.

Just now, VistaLover said:

babel; problem (well, one of the chain of problems) is babel is designed for server-side use (website), not client-side use (end-user's old-engine browser); thus the necessity to deploy a local server (like Proxomitron) to serve the transpiled script to the browser...

Another problem is that Babel targets Node.js environment and some code you get in the web hosted version won't work in the browser (unless there are magic switches in targets box that i'm unaware of). So you'd probably have to setup Babel locally along with anything else that might be required and maybe then you could compile something that could be fed to the browser.

Edited by UCyborg
Link to comment
Share on other sites

4 hours ago, UCyborg said:

No, I haven't until now...the one example seems to modify already retrieved content while you're looking for a redirect.

... Here's another example of using that extension, posted by its author :P : 

https://github.com/JustOff/github-wc-polyfill/issues/28#issuecomment-920212661

... that was meant to mitigate non-compatible (with UXP) RegExp syntax served by GitLab; it most probably can't handle "tougher nuts" ;) like ECMAScript2020+ syntax (new operators, etc.), but I still want to suggest it as an inclusion to the "arsenal" in the fight against "latest and greatest (Chrome-only) JS features" - provided one has the know-how to compile the required "filters"... :D

Link to comment
Share on other sites

@roytam1Do you know where the identifier nsBorderEdges is in RetroZilla? I'm presently trying to build Firefox 3.0a7 using the "windows" GFX toolkit (for Visual C++ 6.0 support), and I replaced the nsCSSRendering files, and I get an error "syntax error : Identifier 'nsBorderEdges'". By The Way, do you know of any software I can use to view the diffs of files that works in Windows 2000? Edit: nsBorderEdges seems to be defined in layout/style/nsStyleStruct.h.

Edited by ClassicNick
I found the identifier
Link to comment
Share on other sites

1 hour ago, ClassicNick said:

@roytam1Do you know where the identifier nsBorderEdges is in RetroZilla? I'm presently trying to build Firefox 3.0a7 using the "windows" GFX toolkit (for Visual C++ 6.0 support), and I replaced the nsCSSRendering files, and I get an error "syntax error : Identifier 'nsBorderEdges'". By The Way, do you know of any software I can use to view the diffs of files that works in Windows 2000? Edit: nsBorderEdges seems to be defined in layout/style/nsStyleStruct.h.

https://github.com/rn10950/RetroZilla/blob/b2cb20238b502c553b12d426fed39b183e0d98e3/layout/style/nsStyleStruct.h#L1383

Link to comment
Share on other sites

@roytam1Thank you! Now I'm on the hunt for SetViewBitBltEnabled. My present error is "SetViewBitBltEnabled : Is not a member of 'nsIViewManager'. Update: It took a while to find that identifier, but I then realized I took the nsCSSRendering files from Firefox 3.0a2, instead of Firefox 3.0a4, which is the last version of Firefox which had its nsCSSRendering files compatible with the windows GFX toolkit, and not have ~300 counts of the phrase "gfx".

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...