PurpleI2P / i2pdbrowser

i2pd browser bundle
BSD 3-Clause "New" or "Revised" License
679 stars 79 forks source link

Using this with TenFourFox? #47

Open barracuda156 opened 1 year ago

barracuda156 commented 1 year ago

@r4sas @orignal Since we have finally made i2pd build on MacOS PPC, the next question is whether we can make i2pdbrowser work with a legacy FireFox port, TenFourFox: https://github.com/classilla/tenfourfox

What will be needed for that?

(Overall, my idea is to bring i2pd and tenfourfox into Macports, adding Tor and i2p support into the latter.)

r4sas commented 1 year ago

If there is no differences in autoconf.js and policies support it must work same way as with original FF.

barracuda156 commented 1 year ago

@r4sas I tried modifying the script, and while it kinda does what it is supposed to, the resulting thing does not work correctly:

1668267438126   addons.xpi-utils    WARN    addMetadata: Add-on en-US@dictionaries.addons.mozilla.org is invalid: Error: Invalid addon ID: expected addon ID en-US@dictionaries.addons.mozilla.org, found @unitedstatesenglishdictionary in manifest (resource://gre/modules/addons/XPIProvider.jsm -> resource://gre/modules/addons/XPIProviderUtils.js:1637:15) JS Stack trace: addMetadata@XPIProviderUtils.js:1637:15 < processFileChanges@XPIProviderUtils.js:1984:23 < this.XPIProvider.checkForChanges@XPIProvider.jsm:3647:34 < this.XPIProvider.startup@XPIProvider.jsm:2655:25 < callProvider@AddonManager.jsm:227:12 < _startProvider@AddonManager.jsm:833:5 < AddonManagerInternal.startup@AddonManager.jsm:1016:9 < this.AddonManagerPrivate.startup@AddonManager.jsm:2783:5 < amManager.prototype.observe@addonManager.js:58:7
1668267438143   addons.xpi-utils    WARN    Could not uninstall invalid item from locked install location
Sat Nov 12 23:37:32 36-43.wireless-city.scu.edu.tw firefox[80839] <Error>: kCGErrorFailure : _CGSFindSharedWindow: Invalid depth
Sat Nov 12 23:37:32 36-43.wireless-city.scu.edu.tw firefox[80839] <Error>: kCGErrorFailure : Set a breakpoint at CGErrorBreakpoint() to catch errors as they are returned
Sat Nov 12 23:37:32 36-43.wireless-city.scu.edu.tw firefox[80839] <Error>: kCGErrorFailure : _CGSFindSharedWindow: Invalid depth
Extension error: ReferenceError: queueMicrotask is not defined resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/staticNS.js 84
[[Exception stack
fetchPolicy@resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/staticNS.js:84:9
@resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/content.js:219:1
Current stack
runSafeSyncWithoutClone@resource://gre/modules/ExtensionUtils.jsm:25:110
tryInject@resource://gre/modules/ExtensionContent.jsm:197:9
execute@resource://gre/modules/ExtensionContent.jsm:273:5
trigger@resource://gre/modules/ExtensionContent.jsm:463:11
DocumentManager.observe@resource://gre/modules/ExtensionContent.jsm:342:7
]]
Sat Nov 12 23:37:35 36-43.wireless-city.scu.edu.tw firefox[80839] <Error>: kCGErrorFailure : _CGSFindSharedWindow: Invalid depth
. . .
Sat Nov 12 23:52:27 36-43.wireless-city.scu.edu.tw firefox[81541] <Error>: kCGErrorFailure : _CGSFindSharedWindow: Invalid depth
Extension error: ReferenceError: queueMicrotask is not defined resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/staticNS.js 84
[[Exception stack
fetchPolicy@resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/staticNS.js:84:9
@resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/content.js:219:1
Current stack
runSafeSyncWithoutClone@resource://gre/modules/ExtensionUtils.jsm:25:110
tryInject@resource://gre/modules/ExtensionContent.jsm:197:9
execute@resource://gre/modules/ExtensionContent.jsm:273:5
trigger@resource://gre/modules/ExtensionContent.jsm:463:11
DocumentManager.observe@resource://gre/modules/ExtensionContent.jsm:342:7
]]
Sat Nov 12 23:52:28 36-43.wireless-city.scu.edu.tw firefox[81541] <Error>: kCGErrorFailure : _CGSFindSharedWindow: Invalid depth
Sat Nov 12 23:52:28 36-43.wireless-city.scu.edu.tw firefox[81541] <Error>: kCGErrorFailure : _CGSFindSharedWindow: Invalid depth
Sat Nov 12 23:52:28 36-43.wireless-city.scu.edu.tw firefox[81541] <Error>: kCGErrorFailure : _CGSFindSharedWindow: Invalid depth
2022-11-12 23:52:28.702 firefox[81541:10b] *** Assertion failure in -[GeckoNSMenu itemAtIndex:], /SourceCache/AppKit/AppKit-988.3/Menus.subproj/NSMenu.m:758
2022-11-12 23:52:28.724 firefox[81541:10b] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: Invalid parameter not satisfying: (index >= 0) && (index < [_itemArray count])]
Extension error: ReferenceError: queueMicrotask is not defined resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/staticNS.js 84
[[Exception stack
fetchPolicy@resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/staticNS.js:84:9
@resource://gre/modules/ExtensionUtils.jsm -> moz-extension://6819e1da-d2a5-46b5-9f99-cf46eb65ac98/content/content.js:219:1

One thing, TFF does not use application.ini:

; This file is not used. If you modify it and want the application to use
; your modifications, move it under the browser/ subdirectory and start with
; the "-app /path/to/browser/application.ini" argument.
[App]
Vendor=Mozilla
Name=Firefox
RemotingName=firefox
CodeName=TenFourFox
Version=45.41.4
BuildID=20210902193654
ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384}

[Gecko]
MinVersion=45.41.4
MaxVersion=45.41.4

[XRE]
EnableProfileMigrator=1

The build script has modifications for this file, which are irrelevant in a case of TFF. I dunno if it should be added or not.

Secondly, since there is no pre-built i2pd for macOS PPC (well, I can make one, if you wish), I have to use the one built locally in Macports prefix. Likely it can be excluded from the script altogether, since i2pd daemon can be launched directly.

barracuda156 commented 1 year ago

Language packs are not important. I just wanna get it to work, at least in a bare minimum form, and then it can be polished and adjusted.

What would you advise? :)

Preferences, in the worst case, can be manually compared and set in accordance with what you have here (as long as they exist in TFF). I am not sure how to go about certificates and db files for the browser (not for i2pd, that seems to work).

barracuda156 commented 1 year ago

If there is no differences in autoconf.js and policies support it must work same way as with original FF.

@r4sas Referring to a comment by TFF developer, what is queueMicrotask?

r4sas commented 1 year ago

Really, idk :D Where he did find it?