TabCarousel / TabCarousel

A Chrome extension to help you keep tabs on info you want to monitor. Great for a TV.
http://chrome.google.com/webstore/detail/ddldimidiliclngjipajmjjiakhbcohn
GNU General Public License v2.0
54 stars 25 forks source link

Add an option to disable reloading #77

Open beefstu409 opened 3 weeks ago

beefstu409 commented 3 weeks ago

Currently I believe TabCarousel will reload the page(s) every 5 minutes. On some websites this is undesirable as they live update and could reset some user-checked options. Default value would be to keep reload but a toggle to disable if desired.

benjaminoakes commented 3 weeks ago

That makes sense to me.

Do you have any interest in implementing this feature yourself? Pull requests are welcome. 🙂

Or alternatively, would you consider sponsoring development?

Jimadine commented 1 week ago

I am currently working on this. I have added a number <input> box to set the Reload Interval, on the Options page, which can be set to 0 which disables reloading altogether. I have also done work to embrace service workers for the tab cycling; instead of the hacky-but-worky fix I suggested in https://github.com/TabCarousel/TabCarousel/issues/66, it uses the chrome.alarms API for > 30 seconds carouselling and setInterval for <= 30 seconds carouselling.

I am still doing testing but hopefully I'll have something to show next week. WARNING: I am not a professional javascript programmer, and what I have so far is undoubtedly far from the finished product. Hopefully it'll at least be a useful starting point for further improvements.

benjaminoakes commented 1 week ago

I am not a professional javascript programmer

That's where everyone starts :smile:

I'm sure you're doing great!

Jimadine commented 6 days ago

@benjaminoakes - thank you for your kind words 😄

I've created a new mv3 branch on my fork, and a downloadable zip for users to extract & try out in Developer mode, as an unpacked extension. The bulk of the changes are described in this commit. Possibly too early for a pull request; I'll let others have a look & test first.

@beefstu409 - the change you were interested in is implemented in the above. Just set the Reload interval to 0 in the extension's options page. This will disable tab reloading.

benjaminoakes commented 6 days ago

@Jimadine I apologize if I read too quickly and missed something, but could you clarify why a browser restart is required now?

Saved! Restart the browser to effect your changes

Jimadine commented 6 days ago

@Jimadine I apologize if I read too quickly and missed something, but could you clarify why a browser restart is required now?

Saved! Restart the browser to effect your changes

Sorry - I failed to explain the reason for this change. The need to restart seems to have been a feature, at least for me, since I started using the extension. I mentioned it back in this issue and I've just tested it in 1.0.3 (the dist folder in the Develop branch) and it's still the case that changes to e.g. the flipWait values in the options page don't take effect until a browser restart. Equally, on first install, if I tick the Start automatically checkbox and leave the default flipWait value set to 15000, then click the Save button, nothing happens until a browser restart. This behaviour has carried over into the changes I've made. I don't see it as a problem, but just thought it would be helpful to alert users to the need to restart after they've saved.

All my testing has been as an unpacked extension, though I don't think that should make a difference? I would be interested to hear if your experience is different i.e. you don't need to restart for flipWait value changes to take effect.

benjaminoakes commented 6 days ago

No problem, @Jimadine. Thanks for your response. :smile:

This sounds like a regression. As I recall, the Manivest v1 and v2 versions of TabCarousel did not require a restart. I think they checked on the setting whenever it was needed in order to implement this. It might be the case that we need to take a similar approach. That sounds like a new issue because it wasn't something introduced in your changes. I have created https://github.com/TabCarousel/TabCarousel/issues/80 to track this.

All my testing has been as an unpacked extension, though I don't think that should make a difference? I would be interested to hear if your experience is different i.e. you don't need to restart for flipWait value changes to take effect.

I haven't tried it yet, but I would be surprised if its specific to an unpacked extension.