SessionRestore is now a native Safari App Extension
-
@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.)
https://developer.apple.com/documentation/safariservices/sfsafaripageproperties
-
@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.
-
@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