SessionRestore is now a native Safari App Extension

  • @shout_skout The titles will only load if the tab has been loaded. does that make sense?

  • @SweetP I see what you mean, but it doesn't make sense from a user experience perspective. It does appear that pages are not "loaded" until you click view on it. So even though pages look like they are loaded because they are in the browser and we see a page title on the tab, they might not be "loaded". However, this doesn't make sense from the user experience of someone who wants to know "What were all the pages, and page titles, that were in my browser at a given point in time". The current setup appear to answer a different question "What were all the url's and active page title at a given point in time".

    It does not make much sense when a user load up their saved session and more than 90% of their pages are blank, because most of their pages were not loaded at that time. Please reconsider the product design. This is a product that serves a need, but it feels like a car without tires (90% is there, but there is a critical 10% missing).

  • @shout_skout I understand what your'e saying, but what you are wanting is not actually possible. it is a limitation of the framework used to gather the tab urls and titles. SessionRestore can only do what is possible given the frameworks it has access to.

  • What's the framework being used? Is it apple native, or third party framework? The effect of this limitation is that I cannot search through my sessions, because most of the page names are not available to search (because they are not loaded). Is this is expected behavior of the app?

  • Are you saving the session after restarting Safari? because that's the only situation I can see where you'd end up with the tabs not being loaded correctly?

  • @SweetP said in SessionRestore is now a native Safari App Extension:

    Thank you for letting me know the framework used. At least gives me a sense of the app stability. Can you please also touch on the second part of the question above? I would like to know to what extent I can search through sessions.

    I'm very tired of the recent wave of poor quality apps coming to the MacOS. They remind me of low quality apps in the Windows ecosystem where developers don't care at all about user experience.

  • @shout_skout its only going to get worse with Marzipan... get ready for an influx of iOS ported apps...

  • @SweetP That is correct. I restart my machine sometimes, or I restart Safari sometimes. That's normal behavior, right? When Safari restart and load previous session, it seems that it does not "load" all pages. They are loaded in the sense that I do see their page icon, and page titles on the tabs, but they are not "in memory"?

  • @shout_skout yeah, that is the current behaviour of Safari. SessionRestore can not get the tab titles in that situation - but why should it? you already have the session, if you've just loaded it.

    this is the exact service used to get the tab properties, and is currently the only way - (well ...I guess you could inject a script into every single page.... but that is still not going to get the behaviour you want. the page still hasn't loaded, and now you have a potential security issue with an app having access to every page you visit.)

  • @SweetP That depends on what you mean by "have the session". Safari does not always successfully load the previous sessions, sometimes it lost them, which is why I need an app like this. In the current scenario, I will never be able to save the page title of all pages in my session (because every session normally start off as a restart of a previous session, and not all pages will be loaded even though they will have page title to tabs), which means that if I want to go back in time to see "Hey, when was the last time I visited the site named X" ... I cannot find it. Under current logic, all sessions saved with SessionRestore will always be missing 90% of its page titles.

  • @SweetP Again ... when I boot Safari up from restart, the tabs look like they are loaded because I see the title title and icon, but SessionRestore does not see them as loaded. Is this intended behavior? I don't know what you mean by loaded now.

  • @shout_skout this is the behaviour that Apple has implemented, SessionRestore can not decide what it has access to. The page loads, when you click on the tab - you can easily verify this yourself. It most likely works this way, so that Safari does not flood your network connection and slow your system down upon starting Safari.

    Im not sure why you are trying to save your session after a restart? you should be saving the session in SessionRestore before you quit Safari - with autosave would be the best option. If you really need to save your current session, then you have to manually click on each tab so that the page loads, and Safari gives SessionRestore the data it needs to save the session correctly.

  • @SweetP Because Safari unexpectedly shuts down sometimes and does not recover correctly. That is what I need this tool for. I've already it up to autosave every 60 minutes, so it sort of address the dangers of losing my session.

    The biggest downside to this tool is that I cannot search through the saved Sessions, because most websites saved with SessionRestore does not store the page titles ... unless, like you said, I manually go through each tab and open them before using SessionRestore ... which would be sort of silly because I have 50-100 tabs open, and it is not reasonable to remember to touch 100 tabs before I can save page titles for the session.

    There was an older extension called Session that worked perfectly, but its development has stopped ... which so unfortunate. Your app and his app are different, and you're not looking to service the same needs. That's not your problem. That's my problem and I need to find a solution.

  • @shout_skout i've submitted a bug report to Apple, maybe they'll implement the ability to get the page title before the page loads... it only took 3yrs to get the ability to open and close tabs natively... so we may be waiting a while.

  • here's the link to send Apple a bug report if your'e interested:

  • @SweetP The thing is ... Safari DOES seem to have access to the page title "before the page loads". I have an extension called "Recent Tab List", and I am able to search through web page titles in all tabs, even when I just restarted Safari and I never opened those tabs to view them yet. I think the page title property is accessible, and it doesn't require the page to be opened. However, this is not the current behavior of SessionRestore. To be honest, I'm tempted to just write my own scripts to solve the issue ever since the Session extension lost support.

    BTW, I'm not sure if it's related but ... since I installed SessionRestored, my Safari has crashed twice in 24 hours. I cannot trace it back to SessionRestore, so I don't know if it's a bug. If it crashes again I'm going to have to uninstall and see if the crash goes away.

  • @shout_skout well, I can only use the tools given to me. the old javascript framework could access the page title before the tab was loaded - but the new SafariServices can not (as far as I know). Apple is dropping support for the old javascript framework most likely in the next macOS release.

    Also, just because Safari can see the page title, doesn't mean they have made it available for third parties to access.... at least not in an officially supported manner. And I need to make a living, so I need to play by Apple's rules to be able to sell in the App Store. I have maintained a javascript Safari tab management extension - also named SessionRestore (previously SafariRestore) since extension support was added to Safari however many years ago that was. There were also holes in what was possible with that. for example it had no way of knowing if a tab was pinned. Apple addressed that in the new SafariServices, but seemed to have messed up with the page title. Ive posted in the Dev Forums asking if anyone has a solution, and also posted a bug report to Apple.

    I know its frustrating, but this is Apple were talking about... Just look at the MacBook keyboard fiasco... I have wanted to update SessionRestore to a native app since I learned of the new SafariServices framework 3? years ago... but it just wasn't possible until Safari 12.1

  • ill keep looking into this. Maybe i'll find a way. I could probably tell safari to reload tabs which aren't loaded yet... but with many tabs, that is going to slow your computer to a crawl...

    If I find a way, Ill post back here

  • it looks as though support will be added for this in a future Safari release. Safari Technology Preview 85 returns all the tab titles on relaunch.