OlgaTPark / tenfourfox

Mozilla for Power Macintosh.
http://www.tenfourfox.com/
Other
30 stars 0 forks source link

Negociating new features for TenFourFox #14

Open OlgaTPark opened 3 years ago

OlgaTPark commented 3 years ago

@classilla,
Since my fork is kept kinda old but I would like to provide TenFourFox some new features that could be useful to both PowerPC and Intel users (it's both front-end features or back-end features needed to browse correctly on some websites), I'd like to suggest you my wishlist.
For the features that you'd like in your tree, I can patch, fix and test them on a local build of OlgaFox Intel and then do pull requests to you with all the ready-to-use and needed changes (so I reduce the overhead on your side :-) ).

Below is the list of features I'm thinking about. Feel free to say what you want and what you don't want and how you want to organize the future pull requests from me (one per feature or one for features X, Y and Z). All of those suggestions doesn't have to be reviewed for the next release of TenFourFox and can be spread along several releases.

Tested changes

The changes listed below were already tested on a build of TenFiveFox Intel that I'm using daily. None of them were commited to GitHub or included any of my releases.

Frontend features

classilla commented 3 years ago

So, going through these:

The keyboard shortcut is fine. In fact, I was probably going to do something similar, but if you want to, feel free. @chris-chtrusch handles the locale strings, though we should have an "Enter Reader View" string already we could repurpose.

Not a fan of saving passwords in private windows, but I guess if this is expected in Firefox. However, this wouldn't be a high priority change for me. Does it need locale strings?

I'm also not a big fan of bringing Panorama back since there would be a maintenance burden, and as you say there are addons to do it already. We haven't supported it for a long time and no one seems to be complaining much (they may just be using the addon, which is fine).

I don't mind the pdfjs change except I think it should still default to true and we can experiment with it. I've certainly seen faulty renderings but usually only with ligatures and I don't want to break PDFs that do render okay with ATSUI.

For the backend features, all of those sound good, and it doesn't seem like those three have any known regressions caused by them. Thumbs up for those.

classilla commented 3 years ago

And thank you very much for offering!

classilla commented 3 years ago

Fire away with the next sets of PRs, since we're into FPR29. Thanks!

classilla commented 3 years ago

Does https://lidlfuntrips.be/ still work for you? I applied (I think) those three bugs and it still doesn't load. It just sits there at its little throbber.

OlgaTPark commented 3 years ago

Hello, My patched build still works on this website (the only needed feature to allow the site to load something is to allow to use * in CORS headers (explaining why you can't access this site on iOS too). I put a commit with the needed changes (see above — the branch on which the commit is implemented is based on FPR5 because it's the version in which I first tried this patch but I just saw that this has to be rebased to YOUR branch not my fork). Since this site is specific to a country, it's maybe geocensored or CDNs can cause some troubles? Have you got some error messages in the JS Console?

Concerning the change to the passwords manager, I prefer to wait until I release my FPR7 to allow further verifications (the patch needs some rewrites — fortunately it doesn't impact localized strings).

I can rebase the commits on the correct branch and append them the pdfjs setting/fix but not this night ;-)

Also, I found a fix to a glitch in menu icons (STR: open in a same window about:home and a new tab, close the about:home tab then open the History > Recently Closed Tabs menu and see that the about:home favicon is shrunk to its lower-left corner). The problem applies to Mac OS X 10.4 and 10.5 (10.6 and 10.8 are OK) and to both Intel and ppc builds (FPR28 in Rosetta).
The fix is to change: https://github.com/OlgaTPark/tenfourfox/blob/6f1108f0a91848d9946b727f787d1d41ac9e0f41/widget/cocoa/nsMenuItemIconX.mm#L452 To:

#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
  // Otherwise, scaling of the menu icon will be innefective and only a portion of the icon will be shown
  if (!nsCocoaFeatures::OnSnowLeopardOrLater())
    [newImage setScalesWhenResized:YES]; // According to Apple's doc, this is deprecated and uneeded in 10.6+
#endif
  [newImage setSize:NSMakeSize(kIconWidth, kIconHeight)];

…and this will be part of OlgaFox FPR7.

classilla commented 3 years ago

Thanks much, I'll incorporate that. To compare to make sure I didn't make a mistake backporting those, which commit were those particular patches in?

classilla commented 3 years ago

(nvm, I see, oops)

classilla commented 3 years ago

I see the difference in M1309358. Nice spot. I translated them direct, but you have a little extra which I'm missing.

classilla commented 3 years ago

Okay, that all works. Last part of the window. Anything else you want to sneak in?

classilla commented 3 years ago

Last call ... I'll start the beta build probably over the weekend.

OlgaTPark commented 3 years ago

(JIT) I remembered kinda late that I also wrote on my long, secret and probably exaggerated wishlist M1126282 — Provide a 1.25x faster video speed option in the video controls. Since this patch affects localizations (again). I just tested and commited this change above, if you're ever interested in it (no problem if you aren't — I'm sometimes exaggerating). I can also recover and provide the new localized strings if needed and even repack the langpacks if needed.

Anyway, I also provide in attachment a stripped-down patch for the pdfjs setting if you want to test it in FPR29: PDFJS pref.patch.txt.

classilla commented 3 years ago

I'm not opposed. @chris-chtrusch These look like standard locale strings. Are you good with it?

I'll take the PDF patch now.

chris-chtrusch commented 3 years ago

Localization: I need the translated strings. For the feature itself: I'm not sure whether we need a 1.25x option on systems that can't even do 1.0 speed.

classilla commented 3 years ago

A good counterargument, though the use case in the original bug was for audio only, which most systems should handle.

chris-chtrusch commented 3 years ago

Didn't think of that, for audio it will be very useful.

classilla commented 3 years ago

The required strings are apparently in Firefox already, so we shouldn't need new translations.

<!ENTITY mediaPlaybackRate050x2.label "Slow (0.5×)">
<!ENTITY mediaPlaybackRate050x.accesskey "S">
<!ENTITY mediaPlaybackRate050x2.accesskey "S">
<!ENTITY mediaPlaybackRate100x.label "Normal Speed">
<!ENTITY mediaPlaybackRate100x2.label "Normal">
<!ENTITY mediaPlaybackRate100x.accesskey "N">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate150x.label "High Speed (1.5×)">
<!ENTITY mediaPlaybackRate125x2.label "Fast (1.25×)">
<!ENTITY mediaPlaybackRate150x.accesskey "H">
<!ENTITY mediaPlaybackRate125x2.accesskey "F">
<!ENTITY mediaPlaybackRate150x2.label "Faster (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "a">
<!-- LOCALIZATION NOTE: "Ludicrous" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x.label "Ludicrous Speed (2×)">
<!ENTITY mediaPlaybackRate200x2.label "Ludicrous (2×)">
<!ENTITY mediaPlaybackRate200x.accesskey "L">
<!ENTITY mediaPlaybackRate200x2.accesskey "L">
OlgaTPark commented 3 years ago

(Hey, you're doing my job! — I was thinking about a different solution in order to provide a better compromise if this change annoys you, as explained below.)

I'm maybe going too fast in business so, I've looked for add-on solutions. Some available add-ons via the Classic Add-ons Archive: Html5 Youtube Video Speed Controller or Video Speed Changer. They both offer a finer tweaking of playback speed but only applies to <video> elements.
I've also looked for solutions based on GreaseMonkey:

I'm also thinking about a more complete solution (differing from the Mozilla one).
It's simply filling the menu with every number between 0.5 and 2 with a step of 0.1 or 0.05 (or maybe a more custom set like 0.6, 0.7, 0.75, 0.8, 0.9, 0.95, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.4, 1.6, 1.7, 1.75, 1.8, 1.9 to allow a finer adjustment without "bloating" the menu), suffixed with × but without localizing them (since this should suffice for most of our supported locales).
Another variant of this is to put a slider inside the menu to change the speed (I don't know if this is possible in XUL and Cocoa doesn't allow to put NSViews inside a NSMenItem on Tiger.

Whichever solution you prefer, here are the localized strings, at least, for reference:
(The affected file is https://github.com/OlgaTPark/tenfourfox/commit/0b6bd29ff1eb12fb6cd811d4cffbca5083009d26#diff-943159c2be1bee3ea8b7acbc4b83c717a9ec551ccd2b49759c3bae04e352a5d2 which ends up in {TenFourFox.app/Content/Resources}/browser/chrome/en-US/locale/browser/browser.dtd)
de:

<!ENTITY mediaPlaybackRate050x2.label "Langsam (0.5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "L">
<!ENTITY mediaPlaybackRate100x2.label "Normal">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Schnell (1.25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "S">
<!ENTITY mediaPlaybackRate150x2.label "Sehr schnell (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "h">
<!-- LOCALIZATION NOTE: "Ludicrous" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x2.label "Doppelte Geschwindigkeit (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "D">

en-US:

<!ENTITY mediaPlaybackRate050x2.label "Slow (0.5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "S">
<!ENTITY mediaPlaybackRate100x2.label "Normal">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Fast (1.25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "F">
<!ENTITY mediaPlaybackRate150x2.label "Faster (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "a">
<!-- LOCALIZATION NOTE: "Ludicrous" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x2.label "Ludicrous (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "L">

es-ES:

<!ENTITY mediaPlaybackRate050x2.label "Lento (0.5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "L">
<!ENTITY mediaPlaybackRate100x2.label "Normal">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Rápido (1.25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "R">
<!ENTITY mediaPlaybackRate150x2.label "Más rápido (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "M">
<!ENTITY mediaPlaybackRate200x2.label "Rapidísimo (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "a">

fi:

<!ENTITY mediaPlaybackRate050x2.label "Hidas (0,5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "H">
<!ENTITY mediaPlaybackRate100x2.label "Normaali">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Nopea (1,25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "o">
<!ENTITY mediaPlaybackRate150x2.label "Nopeampi (1,5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "p">
<!-- LOCALIZATION NOTE: "Ludicrous" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x2.label "Älytön (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "Ä">

fr:

<!ENTITY mediaPlaybackRate050x2.label "Lente (×0,5)">
<!ENTITY mediaPlaybackRate050x2.accesskey "L">
<!ENTITY mediaPlaybackRate100x2.label "Normale">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Rapide (×1,25)">
<!ENTITY mediaPlaybackRate125x2.accesskey "R">
<!ENTITY mediaPlaybackRate150x2.label "Très rapide (×1,5)">
<!ENTITY mediaPlaybackRate150x2.accesskey "T">
<!-- LOCALIZATION NOTE: "Ludicrous Speed" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x2.label "Démesurée (×2)">
<!ENTITY mediaPlaybackRate200x2.accesskey "D">

it:

<!ENTITY mediaPlaybackRate050x2.label "Rallentata (0.5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "a">
<!ENTITY mediaPlaybackRate100x2.label "Normale">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Veloce (1.25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "V">
<!ENTITY mediaPlaybackRate150x2.label "Più veloce (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "P">
<!ENTITY mediaPlaybackRate200x2.label "Smodata (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "S">

ko:

<!ENTITY mediaPlaybackRate050x2.label "느리게 (0.5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "S">
<!ENTITY mediaPlaybackRate100x2.label "보통">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "빠르게 (1.25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "F">
<!ENTITY mediaPlaybackRate150x2.label "더 빠르게 (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "a">
<!-- LOCALIZATION NOTE: "Ludicrous" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x2.label "매우 빠르게 (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "L">

pl:

<!ENTITY mediaPlaybackRate050x2.label "Zmniejszona (0,5 ×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "Z">
<!ENTITY mediaPlaybackRate100x2.label "Normalna">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Zwiększona (1,25 ×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "k">
<!ENTITY mediaPlaybackRate150x2.label "Wysoka (1,5 ×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "W">
<!ENTITY mediaPlaybackRate200x2.label "Absurdalna (2 ×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "A">

ru:

<!ENTITY mediaPlaybackRate050x2.label "Замедленная (0.5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "м">
<!ENTITY mediaPlaybackRate100x2.label "Нормальная">
<!ENTITY mediaPlaybackRate100x2.accesskey "о">
<!ENTITY mediaPlaybackRate125x2.label "Повышенная (1.25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "ш">
<!ENTITY mediaPlaybackRate150x2.label "Высокая (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "ы">
<!ENTITY mediaPlaybackRate200x2.label "Безумная (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "з">

sv-SE:

<!ENTITY mediaPlaybackRate050x2.label "långsam (0.5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "l">
<!ENTITY mediaPlaybackRate100x2.label "Normal">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Snabb (1.25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "S">
<!ENTITY mediaPlaybackRate150x2.label "Snabbare (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "n">
<!-- LOCALIZATION NOTE: "Ludicrous" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x2.label "Löjligt snabb (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "L">

tr:

<!ENTITY mediaPlaybackRate050x2.label "Yavaş (0,5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "Y">
<!ENTITY mediaPlaybackRate100x2.label "Normal">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "Hızlı (1,25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "H">
<!ENTITY mediaPlaybackRate150x2.label "Daha hızlı (1,5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "D">
<!-- LOCALIZATION NOTE: "Ludicrous" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x2.label "Çok hızlı (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "o">

zh-CN:

<!ENTITY mediaPlaybackRate050x2.label "慢 (0.5×)">
<!ENTITY mediaPlaybackRate050x2.accesskey "S">
<!ENTITY mediaPlaybackRate100x2.label "正常">
<!ENTITY mediaPlaybackRate100x2.accesskey "N">
<!ENTITY mediaPlaybackRate125x2.label "快 (1.25×)">
<!ENTITY mediaPlaybackRate125x2.accesskey "F">
<!ENTITY mediaPlaybackRate150x2.label "很快 (1.5×)">
<!ENTITY mediaPlaybackRate150x2.accesskey "a">
<!-- LOCALIZATION NOTE: "Ludicrous" is a reference to the
movie "Space Balls" and is meant to say that this speed is very
fast. -->
<!ENTITY mediaPlaybackRate200x2.label "倍速 (2×)">
<!ENTITY mediaPlaybackRate200x2.accesskey "L">
classilla commented 3 years ago

@chris-chtrusch Are you good with that? If you want to stick with the other two for the locale pack, that's fine, I just need to know ASAP so I can get the beta out this week.

chris-chtrusch commented 3 years ago

I'm good with whatever you decide. I'll make the locale packs according to what's actually is in the beta.

classilla commented 3 years ago

Let's make it a go. One more string to add is "Per Site Settings" or some such. I don't remember if that's already in there.

OlgaTPark commented 3 years ago

I've suggested a French translation for Configure Site Preferences in https://github.com/classilla/tenfourfox/pull/629#issue-498933432 (in reply for https://github.com/classilla/tenfourfox/issues/328#issuecomment-703730518).
I've also greped it and I've found: browser/chrome/en-US/locale/browser/sanitize.dtd:<!ENTITY itemSitePreferences.label "Site Preferences"> (located here in the source code). Unfortunately, this string is probably unappropriated because it's the name of a category in the Details view of the clear your recent history dialog of about:preferences#privacy (indeed, the French translation looks weird in a Per Site Settings-meaning).

Anyway, thank you very much for you patience with my "extemporaneous" suggestions.

chris-chtrusch commented 3 years ago

The French translation is already in my collection for future domain based strings. I'll have to look at the beta, though, to see what the setting or dialog actually does in oder to determine the context for the translation. There used to be an 'about:permissions' dialog in earlier versions of FF/TFF which may contain useful strings. We can always leave some of these in English if we don't find appropritate strings in Firefox and cannot get community translations in time.

classilla commented 3 years ago

It's not going to be in FPR29. I just wanted to take advantage of the locale window so that the string could already be present. The current plan is a grid by site, user agent and reader mode by default, but we should have strings for those already.

chris-chtrusch commented 3 years ago

That's a bit vague. It's easier to do translations when you see the feature in action, when you can see what the UI looks like, how much space you have for the words, etc. I want to avoid a situation like we had when we did the MSE toggle and nobody could really grasp beforehand what it was good for. If we want to localize new features that haven't been translated for Firefox already I don't see a way to get meaningful community translations (not just best-guess word-by-word translations) without having a beta with the feature in it.

classilla commented 3 years ago

I'll trust your judgement. Let's just stick with these then. I will add https://github.com/OlgaTPark/tenfourfox/commit/0b6bd29ff1eb12fb6cd811d4cffbca5083009d26 for this release. We can think about a slider later if people like the idea.