Treestyletab: Tree hierarchy & tab order breaks by rogue tab

Created on 10 Jun 2018  路  7Comments  路  Source: piroor/treestyletab

Short description

Tree hierarchy & tab order breaks occasionally by a rogue tab. Some of the strange behavior that are:

  • Expanded tree, but no tabs showing
  • Child tab from one parent becomes the parent of another set of tabs
  • Missing/hidden tabs
  • Child tabs of multiple parent tree get mixed around.

Steps to reproduce

I can tell when the tree is broken when closing a tab sends the focus to another parent's child tab. The expected behavior is to focus on the previous sibling tab, parent or next tab. Toggling sidebar to refresh TST and tree hierarchy is shuffled and messed up. Disable TST & re-enable doesn't fix nor does uncheck optimize cache.

Discovered the tree structure breaks with a rogue tab that TST hasn't accounted for?

TST tree of tabs is reflective of the native tab order like if it was flatten. I'm assuming when tabs are created and moved around in TST the native order is also moved. I look for a parent in TST that is obviously suppose to be a child somewhere else. Find where that tab is in the native firefox tab bar. It will usually appear between other child tabs in the wrong place. Close this rogue tab & TST structure goes back to normal.

Not sure how to reproduce this consistently, but it is occurring more frequently. I use pinned tabs, multiple containers, AutoTab Discard, and Temporary container. Moving tab around also increases the chance of things breaking especially if moved between different windows.

Temporary container addon closes tabs and reopen them into the correct or temp containers. Could this sometimes cause TST to be confused? However, I have experienced this problem without using that addon, so not sure what is going on.

Environment

  • Platform (OS): Windows
  • Version of Firefox: 60.0.2
  • Version (or revision) of Tree Style Tab: 2.4.24
help wanted works fo me

Most helpful comment

TST setting new tab behavior > Insert position of new child tabs > append to end of tree

I've discovered it affects how likely the tree breaks.

Temporary container operate by quickly closing the tab and re-opening it in a new container to isolate cookies. If tabs are appended to end of tree sometimes it gets lost and insert too far crossing over into the next tree. I can see it in the native tab bar. Moving the tab back over into the correct tree will fix the tree structure breakage.

It is even more likely to break if the tab being reopened is a parent tab containing children.

So far I've had much fewer breakage changing the insert behavior to "_No control_" or "_Insert as first child_"

All 7 comments

I think some recent changes may affect to this problem. Could you try the latest development build? https://piro.sakura.ne.jp/xul/xpi/nightly/treestyletab-we.xpi Please note that you need to disable signature check by turning xpinstall.signatures.required to false on ESR60 or Nightly. The dev build cannot be installed to any released version of Firefox and beta (Firefox 61 and Firefox 62beta).

@piroor I tried the nightly tst version with nightly FF v62

simulated opening bunch of links browsing around and eventually the tree structure breaks.


Did further testing and can almost consistently reproduce the structure breaks.

With Temporary containers addon enable opening links in new tabs too fast will break TST tree structure. If I slowly open links in new tabs one by one and allow them to finish loading nothing breaks. However, with the Temporary container addon disabled I can open many tab fast without issue.

TST setting new tab behavior > Insert position of new child tabs > append to end of tree

I've discovered it affects how likely the tree breaks.

Temporary container operate by quickly closing the tab and re-opening it in a new container to isolate cookies. If tabs are appended to end of tree sometimes it gets lost and insert too far crossing over into the next tree. I can see it in the native tab bar. Moving the tab back over into the correct tree will fix the tree structure breakage.

It is even more likely to break if the tab being reopened is a parent tab containing children.

So far I've had much fewer breakage changing the insert behavior to "_No control_" or "_Insert as first child_"

I'm not familiar to Temporary Container, so could you describe steps to reproduce with details? Like as: 1) start Firefox with clean profile, 2) install Temporary Container, 3) go to Temporary Container's configuration, 4) ...

It is hard to reliability reproduce the issue, but I think I found a way to get it occur more often.

  1. Clean Firefox Profile
  2. Install TST, Temporary Container, Firefox Multi-Account Containers
  3. Keep default config for all addon except for Temporary Container.
  4. Temporary Container settings > Isolation > Global > "never" to "does not match the active tabs domain"
  5. Setup tab structure as follow
    New Tab A
    Tab B - https://slickdeals.net/f/11717511
    New Tab C
    New Tab D
  6. Select Tab B -https://slickdeals.net/f/11717511 , hold and click on "See Deal" link. Spam click fast and opening 10-20+ child tabs.
  7. Structure might begin to break already. If not let tabs finish loading, close sidebar, reopen side bar to see if structure is broken. Might have to close all the child tabs and try again. Eventually the tree structure will break and tabs scrambled. It can happen randomly with just 1 single click of a link. I've only simulated with spamming the link many time is to increase the chance of it breaking.
  8. I've also notice that links using redirects or popups tend to cause issue more often, but not always.
  9. Here is my video recording of it breaking for me. https://streamable.com/uh2uw
    Parent Tab C & D became childs of Tab B. Several of Tab B child became individual parents.

Hmm, sadly I cannot reproduce the problem with the steps you described.I've tried with the latest development build of TST on Nightly 63.0a1. Because there are many unreleased changes, they can affect to the problem. Could you try the development build?: https://github.com/piroor/treestyletab/blob/master/README.md#development-builds

I close this because outdated.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

stapuft picture stapuft  路  4Comments

Lej77 picture Lej77  路  4Comments

mikeaustin picture mikeaustin  路  3Comments

viking2 picture viking2  路  3Comments

emceekain picture emceekain  路  3Comments