I'm Sorry for the very late reply. RL can be difficult at times.
Instead of my original piecemeal plan, I'll list my known issues here and split the post into sections. The section that's of most importance is probably section IV.
SECTION I.
Thanks Justoff for explaining how the hooking process works in detail! I've wanted to cleanup and refactor this code since I created this fork. This gives me a clearer understanding of what it's doing, especially the ugly hax, and it's one more thing to refactor down the road in future releases.
JustOff wrote:The actual error thrown in
eval() is "
missing ( before formal parameters", because such calls aren't allowed by the modern JS engine.
If you don't mind me asking, can you elaborate a little more about what it is that is no longer allowed by eval()? (I'm guessing it's for security reasons?) My understanding is that
line 105 is basically doing this:
Code: Select all
return eval("(function set place(val) {
this._place = val;
let history = PlacesUtils.history;
let queries = { }, options = { };
history.queryStringToQueries(val, queries, { }, options);
if (!queries.value.length)
queries.value = [history.getNewQuery()];
try { let result = history.executeQueries(queries.value, queries.value.length,
options.value);
result.addObserver(this, false);} catch (e) {}
return val;
})");
And the returned function then overrides the original setter. I tried searching for the error and from a
stack overflow answer it seems that the error
refers to the function definition itself: the
(val) segment which to me seems like valid javascript. So I'm not sure what the error is referring to.
SECTION II.
The next error I saw was:
Code: Select all
Failed to hook FullScreen.mouseoverToggle
and it originates on
line 31 of tabutils-vt.js. As I understand it (or at least try to remember correctly),
FullScreen.mouseoverToggle was deprecated and a different function needs to be used? I tried searching for the github issue where this was reported but I couldn't find it. Some guidance as to what to use instead would be helpful. I suspect this would only affect vertical tabs on full-screen mode (I'll test that soon) but it's something that probably needs to be addressed.
SECTION III.
The third error I encountered was:
Code: Select all
Failed to hook gSessionHistoryObserver.observe
This is called from
line 2897 and it seems to add a call to "
tabutils.updateUndoCloseTabCommand();" at the end of
this code. So, is this the same
eval() issue as in Section I?
SECTION IV.
Okay, so this section will cover the major issue that I'm having with tab groups: normally, tab group tabs have a notch that lets you expand/contract the tab group. However, this notch is missing and cannot be used to expand/contract each group. Everything else works (the functionality can be accessed via menu), so it's just the notch that's missing. I
think that this notch is the
"tab-twisty" element in the tabutils.xml file. The twisty is present and working in FF 52. I did a
search for the
tab-twisty term and
found a CSS file that points to "
chrome://global/skin/tree/twisty.svg". Searching for that file on
xref and
github yields many hits, including
this reference, so I'm assuming that the file should be there. I am running Windows 7 so is it possible that "
twisty-preWin10.svg" (as
referenced in the last link) is missing? I should test this on Linux when I get a chance! (I need to rebuild my VM before I can do that.)
SECTION V.
Okay, so here I'm listing the two minor issues that are kind of small annoyances but not showstoppers:
- The number that indicates how many tabs are in a tab group is now displayed on the left side of the tab instead of the right. I suspect this is a change that was deliberately made by TUF.
- When first loading pale moon (and you have a lot of tabs and tab groups) the tabs seem to jitter while the tabs are being grouped.
These can be dealt with later are not a high priority.
Okay, that's it for now. Thank you for any help that you guys can provide and again, sorry for the late response!
-stux