Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open/close tab-by-tab #35

Closed
9 tasks done
cxw42 opened this issue Sep 8, 2017 · 48 comments
Closed
9 tasks done

Open/close tab-by-tab #35

cxw42 opened this issue Sep 8, 2017 · 48 comments
Assignees
Labels
enhancement performance The need for speed! request User requests made via other channels
Milestone

Comments

@cxw42
Copy link
Owner

cxw42 commented Sep 8, 2017

Edit As of 2019-09-26, the former issue35 branch is now master!

Ability to open or close one tab at a time, rather than having to do the entire window at once. Requested by Blank Makkara via user review 2017/09/07.

Known issues

Bugs

  • The tests are hard to read and hard to modify. I need to write a better skeleton so that I can easily write tests expressing the semantics I want.
  • Given tabs open 1, closed 2, open 3, open 4, drop 4 before 3. It snaps to after 1 rather than staying where you dropped it.
  • When behaviour like that happens, and then you middle-click to open a new tab from a tab that is not the rightmost, the mapping of indices to windows is thrown off.
  • Moved to In partially-open window longer than TF window when expanded, deleting closed tab below causes the window to scroll back to the top #280
  • Need to finish implementing collapse option from 25752b3 - Edit will not be implemented at this time- see 2deb068
  • Moved to URLSubstitute in a partially-open window only affects the open tabs #281
  • In a partially-open window, drag an open tab (in the browser window) from after a gap to before, and then back. Sometimes the tab's tree entry will skip a closed tab, then jump to after two open tabs, when moving from left to right back across the gap. Edit We now have well-defined behaviour for this case. The tab will stay on the same side of the gap until it has to jump.

Design questions

@cxw42 cxw42 added the request User requests made via other channels label Sep 8, 2017
@cxw42 cxw42 added this to Worklist in cxw42's worklist Sep 11, 2017
cxw42 pushed a commit that referenced this issue Oct 4, 2017
This decouples the border and paves the way for open/dormant tabs.
Working towards #35.
@cxw42
Copy link
Owner Author

cxw42 commented Oct 15, 2017

Also requested by LateNightHacks via user review 2017/10/14.

Also requested by a user via email 2017/10/25.

@cxw42 cxw42 mentioned this issue Dec 9, 2017
@cxw42 cxw42 modified the milestones: Ready for release, v1.0 Jan 16, 2018
cxw42 pushed a commit that referenced this issue Jan 28, 2018
@cxw42 cxw42 mentioned this issue Mar 4, 2018
@cxw42
Copy link
Owner Author

cxw42 commented Apr 13, 2018

Closing individual tabs requested by Garreth Tinsley 2018/04/12 via review.

@cxw42 cxw42 self-assigned this Apr 13, 2018
cxw42 pushed a commit that referenced this issue Apr 14, 2018
Also added "Close and save" icon/menuitem for tabs.
Working on #35.
cxw42 pushed a commit that referenced this issue Apr 15, 2018
Also updated the changelog.  This is ready for testing of #35!
@cxw42
Copy link
Owner Author

cxw42 commented Apr 15, 2018

@r4j4h @ShervinM @bluikko Anybody who is able to load unpacked and try it out --- This is ready for you to test! 🎉 🎉 As always, backup early and often :) .

@cxw42 cxw42 moved this from Worklist to In testing in cxw42's worklist Apr 17, 2018
cxw42 pushed a commit that referenced this issue Apr 24, 2018
cxw42 pushed a commit that referenced this issue Apr 24, 2018
cxw42 pushed a commit that referenced this issue Apr 24, 2018
cxw42 pushed a commit that referenced this issue Apr 29, 2018
Also a typo fix in view/model.js.
cxw42 pushed a commit that referenced this issue May 9, 2018
cxw42 pushed a commit that referenced this issue Aug 6, 2018
Took as much of the 0.2.0 branch as I could up to where serious work
starts on #35.
@philiprhoades
Copy link

philiprhoades commented Jan 19, 2021 via email

@cxw42
Copy link
Owner Author

cxw42 commented Jan 19, 2021

@philiprhoades the screen capture didn't come through --- would you please resend? Thanks!

@philiprhoades
Copy link

That is annoying . . I am posting it again from the forum itself instead of replying to the email . .

Screenshot_2021-01-19_15-04-40_TF-WindowOrder

@grnassar
Copy link

grnassar commented Mar 9, 2021

Looks like a lot of work has gone into this! Any chance we'll see it in the release soon?

@cxw42
Copy link
Owner Author

cxw42 commented Mar 10, 2021

Hopefully in the next week or two --- I've been slammed recently :( . Please be assured I have not forgotten!

@SamHasler
Copy link

I see that What's new page in the settings says that this will be in the next version. (in the settings for Version 0.2.2 - 2021-12-22)

Have you made a decision yet on the 2 Design questions in the initial comment at the top of this page?

Will there be any indication that a window is partially open? (perhaps via #265)

@cxw42
Copy link
Owner Author

cxw42 commented Dec 31, 2021

  • Design questions: no, I have not experimented with those. 0.3.0 will have the current behaviour, just so I don't have more to debug before releasing it :) .
  • Indication that a window is partially open: currently, there is not. Example: no marker on "Recovered tabs":
    image

If you wanted to work on #265, e.g., to show (#open) or (#open/#total), I would be happy to include it in 0.3.0.

Another option would be to add an icon next to the window icon, the way we do for tabs that are playing audio. Maybe a half-full thermometer? Anything from Silk or Font Awesome 4.7 is fair game.

@cxw42 cxw42 mentioned this issue Dec 31, 2021
@cxw42
Copy link
Owner Author

cxw42 commented Dec 31, 2021

Branch issue35rc is up to date (0.3.0-pre.4) 10bf616 . I am currently building with node 10.19.0 and npm 6.14.10.

@Luckz
Copy link

Luckz commented Dec 31, 2021

For the window: italics for a partially loaded window, greyed out for a entirely unloaded window might be an option.
I suppose the semi-loaded icon being on the right of the window icon isn't wrong, but shouldn't there then be three? One for fully loaded, one for partially, and one for nada?

More UI musings below.

--

I think a vertical tab view (like this arguably is) should ideally show (potential) tabs that aren't part of the browser's session (= what we're talking about here) in one way, and in-session tabs that are discarded or unloaded (those two are equivalent for the user) in another way.
The use of font width, font colour, font style might or might be more easy to read at a glance than icons. Depends on how the icons are placed, I suppose – but readability (seeing information at a glance) should be the most important aspect.

Tabs Outliner doesn't show if tabs are discarded/unloaded or fully loaded within a session, which IMO is wasted potential. TO however makes it very easy to see at a glance what is closed.

In a scenario where there are no closed tabs to deal with, only discarded/unloaded, I tend to like something like this:

div.isdiscarded > div > span.title {
  color: grey;
  /*text-decoration: underline;*/
  opacity: 0.7;
}

or

label > img.discarded + span.title {
  color: lightgrey;
}

@cxw42
Copy link
Owner Author

cxw42 commented Dec 31, 2021

@Luckz thanks for the thoughts!

  • Window labeling: currently, open vs. closed is indicated by color, so I don't think we need icons for fully-loaded and totally closed. I am open to arguments to the contrary.
  • Italics for a partly-open window would work and I think would require fewer changes to the code than Add tab count #265.
  • I agree with prioritizing readability.

TF doesn't currently distinguish in-session unloaded tabs from closed tabs. Could you tell me a bit more about that? Is it a Chrome feature I just haven't yet realized exists? :D

@Luckz
Copy link

Luckz commented Jan 1, 2022

chrome://discards
Tabs with Loading State = loaded (or loading and such) will use resources, as you can see on the task manager (shift-escape)
tabs that are unloaded (either due to not having been activated yet in the context of lazy loading, or having been discarded, which sets Lifecycle State to discarded) will not use resources.
Edge makes extensive use of 'sleeping' tabs, which visually appear discarded but aren't.

https://developer.chrome.com/docs/extensions/reference/tabs/#method-discard

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/discard

For implementations of this (not saying Tab Fern should actively discard any tabs!), you can see https://github.com/rNeomy/auto-tab-discard https://github.com/hrj/sloth https://github.com/rkodey/the-great-er-discarder-er https://github.com/jman/lazy_tab

@cxw42
Copy link
Owner Author

cxw42 commented Jan 2, 2022

@Luckz TIL! I opened new #279 for showing discarded tabs in some way. Thanks for the idea!

@cxw42
Copy link
Owner Author

cxw42 commented Jan 3, 2022

@SamHasler I have moved all the open tasks from the top comment into their own issues. Thanks again for asking about those!

@cxw42
Copy link
Owner Author

cxw42 commented Dec 10, 2022

#300 => 0.3.0 with this feature is pending review in the Chrome Web Store 🤞

@cxw42
Copy link
Owner Author

cxw42 commented Dec 14, 2022

Live on the Chrome Web Store \o/ :tada:

@cxw42 cxw42 closed this as completed Dec 14, 2022
cxw42 added a commit that referenced this issue Jul 23, 2023
Now that #35 has been merged, we don't need the global condition on
whether is is active.
cxw42 added a commit that referenced this issue Jul 23, 2023
Now that #35 has been merged, we don't need the global condition on
whether tab-at-a-time functionality is active.
@cxw42 cxw42 mentioned this issue Jul 23, 2023
cxw42 added a commit that referenced this issue Oct 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement performance The need for speed! request User requests made via other channels
Projects
Development

No branches or pull requests

7 participants