mbnuqw / sidebery

Firefox extension for managing tabs and bookmarks in sidebar.
MIT License
3.25k stars 163 forks source link

Panels and movement of tabs: tabs sometimes disappear and/or or inexplicably move to the wrong panel #147

Open grahamperrin opened 4 years ago

grahamperrin commented 4 years ago

I don't yet know how to make this consistently reproducible, sorry.

My early sense of things is that the bug begins to bite after moving a tab, or multiple tabs, from the Default panel to any other panel.

Steps to reproduce

Maybe … with multiple windows open, and three panels in one window, move tabs from Default to other panels e.g.

Expected behavior

Move only the tabs that were selected.

Actual behavior

Eventually, realise that tabs are missing from the Default panel.

I almost certainly might have moved only one or two tabs to /r/privacytoolsIO but now there are 34, many of which are unexpected new tabs.

I almost certainly might have moved more than a few tabs to /r/privacy but now there's just one, a new tab.

Most (hopefully all) of the tabs that seem to be missing from their proper panels seem to be misplaced (in the wrong panel).

Unexpected new tabs seem to arise through simply switching from one panel to another.

Where a previously listed tab is no longer listed in any panel: this may be worked around by using the sidebar menu to switch away from, then back to, Sidebery.

Screenshots

Here, for example, before the bug bit I had a relatively long list of tabs:

2020-02-28 01:56:10

Here's an example of a tab that I did not move from Default, misplaced under /r/privacytoolsIO:

image

Screen recording

2020-02-28 01:56.zip

Wild guess

Might the leading / (slash, solidus) be a problem?

Environment info

grahamperrin commented 4 years ago

I removed the leading / from the names of the two non-defalt panels, switched from Sidebery to Sidebar Tabs, removed all unwanted new tabs. Result:

image

Then selected what might have been the first (maybe the only) tab that I had moved to what was originally the /r/privacytoolsIO/ panel, then switched back to Sidebery – wondering whether I might find this tab under what's now r/privacytoolsIO. Unfortunately not; just a new tab (compare with the previously long list of tabs, for this panel, in the second screenshot above).

grahamperrin commented 4 years ago

Might the leading / (slash, solidus) be a problem?

Touch wood:

If I find otherwise, I'll hide this comment.

grahamperrin commented 4 years ago

Unexpected new tabs seem to arise through simply switching from one panel to another.

That probably falls under the umbrella of #148

mbnuqw commented 4 years ago

Thank you for so detailed reports. Unfortunately I cannot reproduce the issue. Could you provide your debug info - in the settings page in help section button "Show debug info". This will help me to reconstruct addon state.

Agreed that #148 is related.

I also think there may be conflicts with addons that handle the new tabs position. It would be very helpful if you could check this behavior with other addons disabled.

Again thanks for the reports and sorry for these bugs, I'll continue to investigate possible roots of this issue.

grahamperrin commented 4 years ago

debug info

Side note: weird. The code was there in both bugs but hidden by remnants of a comment (hint). Weird that a remnant was in both bugs.

I'll paste the Javascript to a separate comment.

grahamperrin commented 4 years ago
{
  "settings": {
    "version": "4.6.0",
    "nativeScrollbars": true,
    "ctxMenuNative": true,
    "autoHideCtxMenu": "none",
    "ctxMenuRenderInact": true,
    "navBarLayout": "horizontal",
    "navBarInline": true,
    "hideAddBtn": false,
    "hideSettingsBtn": false,
    "navBtnCount": true,
    "hideEmptyPanels": true,
    "navMidClickAction": "none",
    "navSwitchPanelsWheel": false,
    "groupLayout": "grid",
    "dndTabAct": true,
    "dndTabActDelay": 750,
    "dndTabActMod": "none",
    "dndExp": "pointer",
    "dndExpDelay": 0,
    "dndExpMod": "none",
    "stateStorage": "global",
    "warnOnMultiTabClose": "collapsed",
    "activateOnMouseUp": false,
    "activateLastTabOnPanelSwitching": true,
    "skipEmptyPanels": false,
    "showTabRmBtn": true,
    "showTabCtx": true,
    "hideInact": false,
    "activateAfterClosing": "prev_act",
    "activateAfterClosingPrevRule": "visible",
    "activateAfterClosingNextRule": "tree",
    "activateAfterClosingGlobal": false,
    "activateAfterClosingNoFolded": false,
    "activateAfterClosingNoDiscarded": false,
    "shiftSelAct": true,
    "askNewBookmarkPlace": false,
    "tabsRmUndoNote": true,
    "nativeHighlight": false,
    "moveNewTabPin": "start",
    "moveNewTabParent": "last_child",
    "moveNewTabParentActPanel": false,
    "moveNewTab": "end",
    "pinnedTabsPosition": "panel",
    "pinnedTabsList": false,
    "tabsTree": false,
    "groupOnOpen": true,
    "tabsTreeLimit": "none",
    "hideFoldedTabs": false,
    "autoFoldTabs": false,
    "autoFoldTabsExcept": "none",
    "autoExpandTabs": false,
    "rmChildTabs": "none",
    "tabsChildCount": true,
    "tabsLvlDots": false,
    "discardFolded": false,
    "discardFoldedDelay": 0,
    "discardFoldedDelayUnit": "sec",
    "tabsTreeBookmarks": true,
    "bookmarksPanel": true,
    "warnOnMultiBookmarkDelete": "collapsed",
    "openBookmarkNewTab": false,
    "midClickBookmark": "open_new_tab",
    "actMidClickTab": false,
    "autoCloseBookmarks": false,
    "autoRemoveOther": false,
    "highlightOpenBookmarks": false,
    "activateOpenBookmarkTab": false,
    "showBookmarkLen": false,
    "bookmarksRmUndoNote": true,
    "fontSize": "xxs",
    "bgNoise": false,
    "animations": true,
    "animationSpeed": "fast",
    "theme": "default",
    "style": "light",
    "sidebarCSS": false,
    "groupCSS": false,
    "snapNotify": true,
    "snapExcludePrivate": false,
    "snapInterval": 0,
    "snapIntervalUnit": "min",
    "snapLimit": 0,
    "snapLimitUnit": "snap",
    "hScrollThroughPanels": false,
    "scrollThroughTabs": "none",
    "scrollThroughVisibleTabs": false,
    "scrollThroughTabsSkipDiscarded": false,
    "scrollThroughTabsExceptOverflow": true,
    "scrollThroughTabsCyclic": false,
    "tabDoubleClick": "none",
    "tabLongLeftClick": "none",
    "tabLongRightClick": "none",
    "tabsPanelLeftClickAction": "none",
    "tabsPanelDoubleClickAction": "tab",
    "tabsPanelRightClickAction": "menu",
    "syncName": "",
    "syncSaveSettings": false,
    "syncSaveCtxMenu": false,
    "syncSaveStyles": false,
    "syncAutoApply": false
  },
  "permissions": {
    "allUrls": false,
    "tabHide": false,
    "actualAllUrls": false,
    "actualTabHide": false
  },
  "storage": {
    "size": "254.8 kb",
    "props": {
      "containers_v4": "2.5 kb",
      "expandedBookmarks": "2 b",
      "favAutoCleanTime": "10 b",
      "favUrls": "17.8 kb",
      "favicons": "218.5 kb",
      "panelIndex": "1 b",
      "panels_v4": "953 b",
      "prevTabsData_v4": "1.1 kb",
      "profileID": "14 b",
      "settings": "2.4 kb",
      "tabsData_v4": "11.1 kb"
    }
  },
  "panels": "TypeError: t is undefined",
  "cssVars": "TypeError: can't convert undefined to object",
  "windows": [
    {
      "state": "maximized",
      "incognito": false,
      "tabsCount": 21
    },
    {
      "state": "maximized",
      "incognito": false,
      "tabsCount": 49
    },
    {
      "state": "maximized",
      "incognito": false,
      "tabsCount": 16
    }
  ],
  "bookmarks": {
    "bookmarksCount": 1402,
    "foldersCount": 203,
    "separatorsCount": 0,
    "maxDepth": 7
  }
}
mbnuqw commented 4 years ago

Thank you for the details. It seems like the problem is lying in the storing of panels state. Could you provide the value of property "panels_v4" in storage. To get this info, go to the settings page, scroll to section "Storage" and click on "open" against the "panels_v4" label. After that you can try to delete this property and check if the issue (this and #148) still present.

p.s. sorry for long responses and many thanks for helping in debugging these issues.

grahamperrin commented 4 years ago
[
  {
    "type": "bookmarks",
    "id": "bookmarks",
    "cookieStoreId": "bookmarks",
    "name": "Bookmarks",
    "icon": "icon_bookmarks",
    "bookmarks": true,
    "lockedPanel": false
  },
  {
    "type": "default",
    "id": "firefox-default",
    "name": "Default",
    "icon": "icon_tabs",
    "cookieStoreId": "firefox-default",
    "lockedTabs": false,
    "lockedPanel": false,
    "noEmpty": false,
    "newTabCtx": "none",
    "moveTabCtx": "none",
    "moveTabCtxNoChild": true
  },
  {
    "type": "tabs",
    "id": "R_PVhbRUPSDj",
    "name": "r/privacy",
    "icon": "icon_tabs",
    "color": "toolbar",
    "customIconSrc": "",
    "customIcon": "",
    "lockedTabs": false,
    "lockedPanel": false,
    "noEmpty": false,
    "newTabCtx": "none",
    "moveTabCtx": "none",
    "moveTabCtxNoChild": true,
    "urlRulesActive": false,
    "urlRules": ""
  },
  {
    "type": "tabs",
    "id": "mBXWpAge5REj",
    "name": "r/privacytoolsIO",
    "icon": "icon_tabs",
    "color": "toolbar",
    "customIconSrc": "",
    "customIcon": "",
    "lockedTabs": false,
    "lockedPanel": false,
    "noEmpty": false,
    "newTabCtx": "none",
    "moveTabCtx": "none",
    "moveTabCtxNoChild": true,
    "urlRulesActive": false,
    "urlRules": ""
  },
  {
    "type": "tabs",
    "id": "ETNNGhB9em0j",
    "name": "Techlore",
    "icon": "icon_tabs",
    "color": "toolbar",
    "customIconSrc": "",
    "customIcon": "",
    "lockedTabs": false,
    "lockedPanel": false,
    "noEmpty": false,
    "newTabCtx": "none",
    "moveTabCtx": "none",
    "moveTabCtxNoChild": true,
    "urlRulesActive": false,
    "urlRules": ""
  },
  {
    "type": "tabs",
    "id": "q47IH36un86j",
    "name": "New Panel 6",
    "icon": "icon_tabs",
    "color": "toolbar",
    "customIconSrc": "",
    "customIcon": "",
    "lockedTabs": false,
    "lockedPanel": false,
    "noEmpty": false,
    "newTabCtx": "none",
    "moveTabCtx": "none",
    "moveTabCtxNoChild": true,
    "urlRulesActive": false,
    "urlRules": ""
  }
]
grahamperrin commented 4 years ago

delete this property

OK, done.

AFAICT #148 continues to be reproducible …

grahamperrin commented 4 years ago

Maybe OT (if so, we can hide this comment) …

If it helps to diagnose this issue #147: some time after deleting the property then adding a first custom panel, I moved a single tab to the panel then browsed and switched tabs quite randomly (not paying special attention to the issue). Probably using keyboard shortcuts for the vast majority of switches.

Eventually I realised that some of the new tabs that I had opened – most if not all of which would have been the result of Control-clicking – were not visible in Sidebery, but page content could be viewed by using the keyboard to switch tabs.

After closing some of those tabs I was left with this, apparently more than one selected (or should I say in focus?) – the grey in Sidebery:

image

– and now this:

image

grahamperrin commented 4 years ago

p.s. sorry for long responses and many thanks for helping in debugging these issues.

You're welcome, and I think that your responses are in no way slow!

Note to self: it's the weekend :-)

grahamperrin commented 4 years ago

Almost immediately after switching temporarily to Visual Tabs, I realised that the Twitter tab – visible in https://github.com/mbnuqw/sidebery/issues/147#issuecomment-592989091is was an 'orphan' a ghost; I must have closed it some time earlier.

A slightly later shot:

image

Dook1 commented 4 years ago

I confirm this problem. When you move multiple tabs (selected tabs) between panels, they are sometimes lost. Turning the sidebar off and on helps return them.

grahamperrin commented 4 years ago

Thanks,

this problem … sometimes lost.

Re: https://github.com/mbnuqw/sidebery/issues/147#issuecomment-592989923 do you also get the ghosting symptom, i.e. (for want of a better expression) sometimes 'kept after closure'?

grahamperrin commented 4 years ago

I begin to wonder whether there's an underlying Mozilla bug.

I began using Sidebery and Tree Style Tab around eight days ago, I gave TST a five-star rating but then quietly disabled it after finding problems. Quietly because the number of extensions that I use is admittedly ridiculous. Stupidly I can't recall, with certainty, the nature of the problem but it was probably this type of thing:

image

– note, the apparent sidebar focus on a tab that differed from the tab on which I was working.

Throwing this into a Sidebery issue only because of a comparable symptom that I see and feel that can't be captured in a screen recording: sometimes when I use the keyboard to switch from one tab to another, there's a noticeable lag before the sidebar represents my switch and IIRC there's a comparable lag with Sidebery. That is, a lag, not long-lasting …

… whereas the focus issue in the screenshot above was persistent (might have been endless, if I had not done something to work around it).

I'll switch to Sidebery and keep my eyes open.

Apologies for the noise … I'm acutely aware that I'm mixing what may be three or more separate bugs, just trying to describe this whilst it's fresh in my mind …

Dook1 commented 4 years ago

do you also get the ghosting symptom, i.e. (for want of a better expression) sometimes 'kept after closure'?

Sorry, but I don’t quite understand what "ghosting symptom" is.

mbnuqw commented 4 years ago

Ok, storing/retrieving the panels data is ok. And I still cannot reproduce the bug with moved tabs. @grahamperrin, @Dook1 could you plaese list the active addons. I'll try to check compatibility, maybe there are some conflicts.

Dook1 commented 4 years ago

AutocopySelection2Clipboard Duplicate Tabs Closer Last Visited Toolip Link Status Redux OurStickys - Sticky Notes on every page Session Boss StickyNotes Swift Selection Search Tab Mover Tabs manager uBlock Origin Unclose@Dook UnloadTabs@Dook Window Titler

Dook1 commented 4 years ago

Just now after a group move, tabs from all panels moved to the standard panel. Disable and enable sidebar this time didn't help.

mbnuqw commented 4 years ago

Looks like I've finally can reproduce bug with moving tabs between panels. This is not a conflict of some addons but a problem with moving/state updating logic. I'll update add-on ASAP.

Dook1 commented 4 years ago

Will wait.

grahamperrin commented 4 years ago

@mbnuqw thanks. If any of my comments above are off-topic, please hide them.

mbnuqw commented 4 years ago

Alright, v4.6.1 is uploaded. @Dook1, @grahamperrin could you check this behavior, please?

Dook1 commented 4 years ago

Downloaded. I'm testing. It takes time, because this doesn't occur constantly.

Dook1 commented 4 years ago

Fixed. Thanks

grahamperrin commented 4 years ago

I haven't had an opportunity to pay close attention to this, sorry. Over the weekend, hopefully (4.6.2) …

mbnuqw commented 4 years ago

@grahamperrin, its okay there's no rush. Could you also check #148 when you can? (Since they can be related)

grahamperrin commented 4 years ago

… tabs sometimes disappear …

First use of a panel with Sidebery 4.6.2 (alongside Tree Style Tab and many other extensions).

I created a first custom panel, named the panel, dragged one tab to the new panel then (I guess) viewed the result of the drag:

Back to the original panel, I dragged a second tab to the new panel. Result:

Mismatch between the (one) tab in the sidebar and the window content:

image

grahamperrin commented 4 years ago

https://github.com/mbnuqw/sidebery/issues/147#issuecomment-594078410

Looks like I've finally can reproduce bug with moving tabs between panels. This is not a conflict of some addons but a problem with moving/state updating logic.

State updating

Does what's below help?

IIRC there was neither movement, nor use of a panel …

Title persisting in the sidebar after closure of the tab

2020-03-14 16:50:09

Another

After closing the LocalStorage is not cleared by … tab:

2020-03-14 16:57:49

Subsequent screen recording:

2020-03-14 16:59.zip

mbnuqw commented 4 years ago

@grahamperrin thanks for more details. Could you please also post here list of enabled extensions? Because I cannot reproduce this with the same settings on clear Firefox profile.

Note: I've already started to check some popular addons compatibility and found that Sidebery and TreeStyleTab incompatible (only one can be enabled) since both handle position of new tab.

grahamperrin commented 4 years ago

Sidebery and TreeStyleTab incompatible (only one can be enabled)

OK, early results suggest that the issue is not reproducible with Tree Style Tab disabled. I'll continue testing …

grahamperrin commented 4 years ago

Brace yourself …

2-Column Google Results
About Sync
Add-on List-o-matic 9000
Adigly
AdIntuition
All Tabs Helper
Always Right
Amazon.co.uk
Amazon.com
amo-info
Anchors Reveal
append-to-clipboard
Behind The Overlay Revival
Better Twitter
Bing
Binghodie
Blacken
Bookmark Dupes
Bookmark search plus 2
Bookmark Tab Here
Bookmarks Organizer
Burro webcam barcode reader
button-demo
Certainly Something (Certificate Viewer)
Chambers (UK)
Chrome Store Foxified
chrono
ClearURLs
Close All Tabs
Conex
Cookie Quick Manager
Copy All Tab Urls
Copy as Markdown
Copy Link Text
Copy PlainText
Custom UserAgent String
Default Bookmark Folder
Diigo Web Collector - Capture and Annotate
Display #Anchors
DuckDuckGo
Duplicate Tabs Closer
eBay
Emsisoft Browser Security
Enforce Browser Fonts
epoch-time-converter
EverSync - Sync bookmarks, backup favorites
Extension source viewer
Facebook Container
Finitimus
Firefox Multi-Account Containers
Firefox Voice Beta
Focus Popup
Focus To Read
FoxyImage
FoxyLink
FoxyTab
GitHub Issue Link Status
github-tada
Go To Playing Tab
Google
Google Analytics Opt-out Add-on (by Google)
Google Results Order Customizer
Google search link fix
Gridify
headingsMap
Hide Promoted Tweets
HTTPZ
Ideal Size
jetzt
jump-to-anchor
LASER CAT
LastPass: Free Password Manager
Latest on AMO
lessnoise
Make github markdown readable
Malwarebytes Browser Guard
Maximize All Windows
Merge Windows
Minimap Scroller
Mitaka
Most Recent Tab
Neo Diggler
Newsit: Hacker News and Reddit Links
Notes by Firefox
Notification Sound
OD-Search
Official Media Bias Fact Check Icon
Open in Browser
Open link in new discarded tab
Open Link in Other Window
Open Tabs Next to Current
Open With
Outline sidebar
Plasma Integration
Playback speed
Popout Tab
PopUp
Popup Tab
Print Edit WE
Qwant
Reddit Comment Collapser
Reddit Enhancement Suite
Redirector
Refined GitHub
Refined Microsoft Teams
ReFont
Regex Search
Rename Tab Title
Rename Tab Title of Domain/URL
Resize Window & Viewport
reveddit linker
reveddit real-time
Rhombus
RSSPreview
S3.Translator
Saka
Save Page WE
Save To The Wayback Machine
save-as-pdf-from-context-menu
Scroll Position Highlight
Search by Image
Service Worker Control
Service Worker Detector
Session Boss
Sidebery
SingleFile
SiteDelta Watch
Smart RSS
Snap Links
Sort Bookmarks
SponsorBlock for YouTube - Skip Sponsorships
Startpage.com — Private Search Engine
Stylus
SuperStop
Swift Selection Search
Switch Container
Synonym Search
Tab Mover
Tabs manager
Tabs2List
TabSubmit Basic
Teams Phone Fix
Togglific
Tracking & Ad Removal for Facebook™
Translator
TTSFox
Twitter
Twitter Container
Unit Converter
UnloadTabs
Unpaywall
up-to-eleven
Version Icon
Violentmonkey
VirusTotal Scan
Visual Tabs
Want My RSS
Wayback Machine
Web Archives
Wikipedia (en)
Window Merger
WX Download Status Bar
Youtube Playback Speed Control

– list produced by Add-on List-o-matic 9000. If you'd like more than the names, I can ask the extension to include URLs but unfortunately it seems that Mozilla has shifted away to making AMO URLs available in contexts such as this.

grahamperrin commented 4 years ago

Thanks,

addons compatibility

https://github.com/mbnuqw/sidebery/issues/45#issuecomment-602026357 identifies an incompatibility with Tabs manager, which I have now disabled.

… TreeStyleTab incompatible (only one can be enabled) since both handle position of new tab.

IIRC Tree Style Tab preferences can be set to not perform the handling.

grahamperrin commented 4 years ago

From https://github.com/mbnuqw/sidebery/issues/147#issuecomment-599101788 above:

Title persisting in the sidebar after closure of the tab

From FoxyTab sort test case https://github.com/erosman/support/issues/163#issue-585465879 (a minimally extended profile):

all tabs from the second and third panels move to the first panel

A later sort with my (heavily extended) everyday profile caused two of six tabs – not all – to disappear from a panel:

grahamperrin commented 4 years ago

Now disabled:

Sidebery preferences reviewed/changed:

image

– changed:

image

Screen recording, partly related:

At one point in the recording I realised that a click on an already active panel could cause a new tab to appear then move to a different panel, if the preselected tab was uppermost within the panel.

Whilst recording was paused I deleted an unwanted empty panel, after which most tabs disappeared. Reappeared after I switched to Sidebar Tabs then back to Sidebery. I reproduced the disappearance (created then deleted an empty panel), got the tabs to reappear by closing then reopening Sidebery.

grahamperrin commented 4 years ago

Two screen shots and a subsequent screen recording.

2020-03-21 14:19:24

2020-03-21 14:20:05

I found it impossible to close the Add-ons Manager tab; each click on its close icon was followed by reappearance of the tab:

Closing then reopening Sidebery was not a workaround.

I temporarily re-enabled Vertical Tabs Reloaded. Switching to this, then back to Sidebery, was not a workaround; still, the close icon did not work as expected. I used Vertical Tabs Reloaded to close the tab.

mbnuqw commented 4 years ago

@grahamperrin, sorry for the slow response. You can try to delete the "prevTabsData_v4" and then "tabsData_v4" in the "Storage" section in the settings page. This will reset the tab - panel relation.

The root of this issue I think is the wrong tabs order or/and wrong the tab - panel relation. Schematic representation of possible issue:

Example of correct layout of tabs:

Panel A | Tab a1
        | Tab a2
        | Tab a3
----------------
Panel B | Tab b1
        | Tab b2
        | Tab b3

Example of incorrect layout of tabs:

Panel A | Tab a1
        | Tab a2
        | Tab b1
        | Tab a3
----------------
Panel B | Tab b2
        | Tab b3

Because of this, Sidebery is very sensitive to the order of tabs and as a result, any extensions that can move tabs can contribute to this problem.

As a possible workaround, you can opt out of additional panels and use only the default one. You can also disable moving new tabs screenshot-2020-03-21 20:40:16

and switch to "session storage" screenshot-2020-03-21 20:40:36

I'll try to write validator to detect incorrect tabs position and hopefully this and other (e.g. #171) issues will be fixed.

grahamperrin commented 4 years ago

Thanks (and no need to apologise),

… The root of this issue I think is the wrong tabs order or/and wrong the tab - panel relation. … any extensions that can move tabs can contribute …

Re: #171 can wrongness (in the context of e.g. Sidebery panels) also occur through use of standard keyboard shortcuts for movement?

mbnuqw commented 4 years ago

Re: #171 can wrongness (in the context of e.g. Sidebery panels) also occur through use of standard keyboard shortcuts for movement? Yes unfortunately, if the tab was moved from one panel to another (e.g. as showed in the scheme above) it will cause an error.

The situation is aggravated by the fact that visually it may seem that everything is normal, but with each new action (tab creation, removing, activation etc...) errors will be layered.

So, unfortunately, until I'll add some mechanism to auto-fix the tabs/panels structure after external changes Sidebery won't work correctly in multi- panel mode.