greatsuspender / thegreatsuspender

A chrome extension for suspending all tabs to free up memory
https://chrome.google.com/webstore/detail/the-great-suspender/klbibkeccnjlkjkiokjodocebajanakg/
GNU General Public License v2.0
5.04k stars 905 forks source link

Recovering lost tabs after extension update or removal #526

Open deanoemcke opened 7 years ago

deanoemcke commented 7 years ago

This is the official issue for users trying to recover from tab loss due to an update of the extension, or following removal/disabling of the extension. This is the number one pain point of the extension and here I will attempt to address why this is an issue, and what you can do if affected by it.

Overview: Why do my tabs disappear when the extension updates or is removed? What is the safe way to remove the extension? What is the safe way to update the extension What should I do if I have lost tabs? How to recover lost tabs with The Great Suspender How to recover lost tabs without The Great Suspender My suspended tab says "This site cannot be reached"


Why do my tabs disappear when the extension updates or is removed?

The Great Suspender works by redirecting a tab to a new url in order to 'suspend' it. This means that the tab is now controlled by the extension process. When the extension updates or is disabled or uninstalled, this process is killed and all tabs that belong to it are removed from the browser. For this reason, I try to keep the number of updates to the extension to a minimum.

The extension does come with an inbuilt tab recovery system that will automatically detect and reload lost tabs in aftermath of an update or extension crash. And in the event of an update, a session restore point is automatically created in the Session History page and can be restored manually.

What is the safe way to remove the extension?

If you want to uninstall the extension, please unsuspend all tabs before doing so. This is the only way to prevent those tabs from disappearing. This can be done easily by clicking the 'Unsuspend all tabs' option in the extension popup menu. Or more manually by visiting every suspended tab and manually reloading it. Please note that if using the 'Unsuspend all tabs' option, you will need to do this once for each chrome window you have open.

If you failed to unsuspend all tabs before uninstalling and have lost tabs, please refer to the section below entitled "How to recover lost tabs without The Great Suspender".

Please note, uninstalling the extension will also permanently remove all extension data including tab history and extension options. Reinstalling the extension will not enable you to do any sort of recovery.

I would recommend anyone wanting to remove the extension to first back up their tabs using another extension called "Session buddy". This tool will allow you to back up all your tabs and restore them again at a later date. Please be aware that those tabs suspended at the time the session buddy backup is performed will not have their correct urls. These links will only work as long as The Great Suspender is currently installed on your browser. If you want the real urls in your session buddy backup, then you will need to unsuspend all your tabs first.

What is the safe way to update the extension?

Unfortunately chrome does not give the user the ability to manage their own extension updates. As soon as a new release is made available on the webstore, this update is automatically pushed to users.

I have done my best to mitigate the potential for lost tabs during an update by prompting users to export a backup of their tabs before accepting the new update.

As mentioned above, a session restore point will also automatically be created to save a record of your open tabs before the update. You can then recover any lost tabs via this restore point from the Session History screen accessible from the extension Options page.

What should I do if I have lost tabs?

If you have lost tabs due to the extension being removed then refer to the section below entitled "How to recover lost tabs without The Great Suspender".

If you have lost tabs due to the extension being disabled, then first re-enable the extension, and then refer to the section below entitled "How to recover lost tabs with The Great Suspender".

If you have lost tabs but the extension still seems to be installed and running, then refer to the section below entitled "How to recover lost tabs with The Great Suspender".

Before continuing, it's worth checking first that you have not simply switched chrome profiles. If you have multiple chrome profiles, then each one will have a separate record of tab history.

How to recover lost tabs with The Great Suspender

The extension comes with its own tab history management UI to help users recover from lost tabs. Go to the extension options page (from 'settings' in the popup or 'options' when right-clicking on the extension). Then in the settings sidebar click on 'Session management'. This will show you your most recent tab sessions. You can click on each session to see more detail on the individual windows and tabs it contains.

To reload a session, simply click the 'reload' link. This will reload all windows and tabs in an 'unsuspended' state. If your session contains a very large number of tabs, then you might instead want to click 'resuspend' which will be much faster as it reloads the tabs in a suspended state.

If for some reason the missing tabs are not in your recent sessions, then please follow the guide below for recovering lost tabs without using The Great Suspender.

If you have access to system backups, you may be able to restore old 'recent sessions' from these backups. The recent sessions are stored in an IndexedDB database at Chrome/Default/IndexedDB/chrome-extension_klbibkeccnjlkjkiokjodocebajanakg_0.indexeddb.blob/ and Chrome/Default/IndexedDB/chrome-extension_klbibkeccnjlkjkiokjodocebajanakg_0.indexeddb.leveldb/

How to recover lost tabs without The Great Suspender

You can attempt to recover lost tabs by using chromes in-built history page. Navigate to chrome://history in a new tab and you will be shown a list of tabs you have visited in the past grouped by date and showing the most recent at the top. Somewhere in this list you will have a record of all the tabs you lost. However it can be a bit tricky to find them as they are mixed in with all the tabs you have visited and purposely closed as well.

For example, if you opened a tab one week ago, and it got suspended and you never revisited that tab, then in chrome history, it will be grouped with all the tabs from one week ago.

You can try searching for "klbibkeccnjlkjkiokjodocebajanakg" to find tabs that were suspended. This may help narrow down the list.

If you do find a lost tab in this list, there is a chance that when you try to reopen it, it will take you to a blank page saying "This site cannot be reached". Please refer to the section below on how to recover these tabs.

My suspended tab says "This site cannot be reached"

It can happen that when you open a suspended tab link, or try to unsuspend a tab, you will see a blank page with the text "This site cannot be reached". And it will have a strange url that looks something like this: chrome-extension://klbibkeccnjlkjkiokjodocebajanakg/suspended.html#ttl=Google&uri=https://www.google.com.

This is most likely due to the fact that you no longer have The Great Suspender installed in your browser. The easiest way to recover these tabs is to reinstall the extension, and then reload the page.

Should this fail for any reason (which would happen if you tried to open this url in another browser like firefox, or from a device that does not support extensions such as an android phone), then as a last resort you can manually edit the url to recover the tab. Delete everything before the &uri= text in the address bar and the page should reload corrently. ie: in the example above you would end up with https://www.google.com.

blidarescub commented 3 years ago

How to recover tabs:

  1. Don't touch them (no refresh, back, etc)
  2. Install Session Buddy
  3. Export current session to a .txt file image
  4. Open the .txt file with VSCode and replace all occurrences of the following regex with 6 space characters: .*&uri= image
  5. Save the file
  6. Import it back into Session Buddy and restore the session.
  7. Delete The Great Suspender
dm17 commented 3 years ago

How to recover tabs:

  1. Don't touch them (no refresh, back, etc)
  2. Install Session Buddy
  3. Export current session to a .txt file image
  4. Open the .txt file with VSCode and replace all occurrences of the following regex with 6 space characters: .*&uri= image
  5. Save the file
  6. Import it back into Session Buddy and restore the session.
  7. Delete The Great Suspender

However, the session buddy auto-saves do not save one from The Great Destroyer's reach. I lost my 200+ tabs because I thought session buddy had them, but it seems The Great Destroyer has the ability to wipe those out too. I did export all chrome history to a CSV file after this happened, so I hope to look back at that and work through it someday. If you don't restart your browser / computer often, then it is unlikely that you'll have your tabs within the last month or so of history, however!

andrewprofile commented 3 years ago

1313 try this :)

lweeks commented 3 years ago

To summarize, the sequence should be the following:

  • disable internet connection
  • restart chrome
  • enable TGS (whatever "bad" version you have installed), go to TGS settings, export the most recent session that has about the right number of open tabs
  • uninstall "bad" TGS
  • enable your internet connection back
  • install either 7.1.6 from source or MarvellousSuspender
  • import session, then click on "open and suspend" or "open and load". do it only ONCE, as it may seem it's not doing anything at first.
  • enjoy all your tabs back!

What I just did. This does not involve exporting or importing or editing anything. I wound up back in the same state as earlier this morning, with all my tabs and windows.

  1. Ensure you have Session Buddy installed, and save your current broken session just in case.
  2. Disable Internet access (pull your cable, turn off wifi, I put a firewall rule in)
  3. Kill Chrome and restart it
  4. Without Internet access, The Great Suspender extension works fine
  5. Close all your Chrome tabs/windows so you have a clean slate.
  6. Go to TGS settings, find your most recent session with all your tabs. If you're lucky, you have one that's very recent, just before Chrome disabled the extension. "Open and load" it.
  7. All your windows and tabs open again, but since you have no Internet access, they'll all fail to load content other than cache. This may take a while if you have a lot -- I had 40 windows and nearly 300 tabs.
  8. Once they're all opened up, save your session again in Session Buddy
  9. Disable TGS, shut down Chrome
  10. Enable Internet, restart Chrome, wait for your windows and tabs to reload their content either via auto-restore, or re-loading the session from Session Buddy.
  11. You're now back to where you were before the extension was disabled.
  12. Save your session yet again in Session Buddy just for good measure.

At this point, you can look at other extensions to manage your tabs.

petrk94 commented 3 years ago

I got it removed 1 day ago by google, and I had more then 24 windows and more then 200 tabs open in it, its used for work. Now its a total mess (Could Google not just disable it and inform about that issue?). The suspended.html page contains 17 MB of indexeddb data and I could find the data in C:\Users\User\AppData\Local\Google\Chrome\User Data\Default\IndexedDB\chrome-extension_klbibkeccnjlkjkiokjodocebajanakg_0.indexeddb.blob / leveldb

But I can not access the indexeddb data as the extension is blocked and trying to import the files which are in the folder, is not working

In the chrome-extension_klbibkeccnjlkjkiokjodocebajanakg_0.indexeddb.blob folder I found the folder 1\15\ and there was a file 21510 by trying to open it in Notepad++, I get this result:

image

The problem is, I dont know in which coding it was made, so I can not extract all data. Is there a way to get all the links back from it? Thanks

uecasm commented 3 years ago

You're all making this a lot harder than it needs to be.

https://github.com/gioxx/MarvellousSuspender/issues/7

You don't need to run the old version at all, just export from the Marvellous Suspender and edit the addresses before reimporting.

Blaisorblade commented 3 years ago

Confused. Why export/import data? This part of the advice seems easy?

Delete everything before the &uri= text in the address bar and the page should reload corrently.

uecasm commented 3 years ago

You do need something a bit more mass-automated than that when you have ~2000 tabs suspended... (yes, I have a problem)

verglor commented 3 years ago

For the Session Buddy you can directly update sqlite database stored in %LOCALAPPDATA%\Google\Chrome\User Data\Default\databases\chrome-extension_edacconmaakjimmfgnblocblbcdcpbko_0\ e.g. in DBeaver. To convert URLs to The Marvellous Suspender just execute the following SQL commands:

UPDATE PreviousSessions SET windows = replace(windows , 'klbibkeccnjlkjkiokjodocebajanakg', 'noogafoofpebimajpfpamcfhoaifemoa');
UPDATE SavedSessions SET windows = replace(windows , 'klbibkeccnjlkjkiokjodocebajanakg', 'noogafoofpebimajpfpamcfhoaifemoa');
antonwnk commented 3 years ago

This was likely mentioned in some form before, but here is a VERY SIMPLE, IN-BROWSER SOLUTION:

This is just a way to automate the manual removal of everything before the "&uri=" part in the Suspender URLs. I did this in Chrome but I assume there is no issue porting it to other browsers.

You need an extension with the chrome tabs permission enabled. In my case, this was "Clutter Free" (a quite useful one for fellow tab hoarders).

Go to the Chrome extensions page (chrome://extensions) and make sure the Developer Mode toggle is selected. Go to the card of your "chrome.tabs -enabled" extension and access its "background page".

chrome_ext

In the console that pops up, you can execute Javascript and use the chrome.tabs API. There, this "one-liner" can be used to set the URL of all the suspender tabs to the suspended page's URL: (⚠️remember why you had this extension installed in the first place; the following will make all your ex-supender tabs active)

chrome.tabs.query({url: "chrome-extension://klbibkeccnjlkjkiokjodocebajanakg/suspended.html*"},
                   tabs => tabs.forEach(t => {
                       actual_url = t.url.split("&uri=").slice(1).join("") 
                       chrome.tabs.update(t.id, {url: actual_url})
           }))

I guess this can also be used to change the tab URL directly to the scheme of the Marvelous suspender, but I haven't installed that yet.

bwims commented 3 years ago

I know it's a pain when Google removes an extension on your behalf, but at least that way all Chrome users find out and are protected.

How are we Chromium users supposed to know when something like this happens? In my case, it was because someone in my home invoked Chrome to check out a possible bug in Brave. Otherwise we would be blissfully ignorant.

Does Google have a mailing list we could subscribe to in order to be notified? If not, why not? To discourage the use of such browsers?

AlexWayfer commented 3 years ago

I know it's a pain when Google removes an extension on your behalf, but at least that way all Chrome users find out and are protected.

How are we Chromium users supposed to know when something like this happens? In my case, it was because someone in my home invoked Chrome to check out a possible bug in Brave. Otherwise we would be blissfully ignorant.

Does Google have a mailing list we could subscribe to in order to be notified? If not, why not? To discourage the use of such browsers?

I have Chromium on Linux and Chrome on Windows, there is the same behavior, don't worry. I restored my tabs twice, for both of them.

bwims commented 3 years ago

Sorry, I should have said: Chromium-BASED browsers. Not all of them have the same behaviour. Brave and Sware Iron both failed to uninstall the extension.

My question is: How can we get alerts from Google that they have blocked an extension? It seems like it should be obvious, even for Chrome users.

On Mon, 8 Feb 2021 at 12:04, Alexander Popov notifications@github.com wrote:

I know it's a pain when Google removes an extension on your behalf, but at least that way all Chrome users find out and are protected.

How are we Chromium users supposed to know when something like this happens? In my case, it was because someone in my home invoked Chrome to check out a possible bug in Brave. Otherwise we would be blissfully ignorant.

Does Google have a mailing list we could subscribe to in order to be notified? If not, why not? To discourage the use of such browsers?

I have Chromium on Linux and Chrome on Windows, there is the same behavior, don't worry. I restored my tabs twice, for both of them.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/greatsuspender/thegreatsuspender/issues/526#issuecomment-775097319, or unsubscribe https://github.com/notifications/unsubscribe-auth/AENIQ2PGXUP36RB5QJR5OXDS57HLFANCNFSM4DOR3RRA .

AlexWayfer commented 3 years ago

Sorry, I should have said: Chromium-BASED browsers. Not all of them have the same behaviour. Brave and Sware Iron both failed to uninstall the extension. My question is: How can we get alerts from Google that they have blocked an extension? It seems like it should be obvious, even for Chrome users.

I don't know, it's required to look at browser's extensions page with deleted ones for starting investigation and answer searching, but it's still off-topic.

harryfear commented 3 years ago

chrome_ext

In the console that pops up, you can execute Javascript and use the chrome.tabs API. There, this "one-liner" can be used to set the URL of all the suspender tabs to the suspended page's URL: (⚠️remember why you had this extension installed in the first place; the following will make all your ex-supender tabs active)

chrome.tabs.query({url: "chrome-extension://klbibkeccnjlkjkiokjodocebajanakg/suspended.html*"},
                   tabs => tabs.forEach(t => {
                       actual_url = t.url.split("&uri=").slice(1).join("") 
                       chrome.tabs.update(t.id, {url: actual_url})
         }))

Thanks, @antonwnk, this saved tons of faffing around.

JesusAtheist commented 3 years ago

https://github.com/gioxx/MarvellousSuspender/issues/42

Intechgreater commented 3 years ago

Not sure if it's been mentioned but another option to "restore" a suspended tab is to just click the back button.

Ingablu commented 3 years ago

For the Session Buddy you can directly update sqlite database stored in %LOCALAPPDATA%\Google\Chrome\User Data\Default\databases\chrome-extension_edacconmaakjimmfgnblocblbcdcpbko_0\ e.g. in DBeaver. To convert URLs to The Marvellous Suspender just execute the following SQL commands:

UPDATE PreviousSessions SET windows = replace(windows , 'klbibkeccnjlkjkiokjodocebajanakg', 'noogafoofpebimajpfpamcfhoaifemoa');
UPDATE SavedSessions SET windows = replace(windows , 'klbibkeccnjlkjkiokjodocebajanakg', 'noogafoofpebimajpfpamcfhoaifemoa');

You are really great :) I have used SQLite Expert Personal because I am dumb in IT staff but your solution is fantastic and easy for Backup Buddy users. Thank you.

afomer commented 3 years ago

I got it removed 1 day ago by google, and I had more then 24 windows and more then 200 tabs open in it, its used for work. Now its a total mess (Could Google not just disable it and inform about that issue?). The suspended.html page contains 17 MB of indexeddb data and I could find the data in C:\Users\User\AppData\Local\Google\Chrome\User Data\Default\IndexedDB\chrome-extension_klbibkeccnjlkjkiokjodocebajanakg_0.indexeddb.blob / leveldb

But I can not access the indexeddb data as the extension is blocked and trying to import the files which are in the folder, is not working

In the chrome-extension_klbibkeccnjlkjkiokjodocebajanakg_0.indexeddb.blob folder I found the folder 1\15\ and there was a file 21510 by trying to open it in Notepad++, I get this result:

image

The problem is, I dont know in which coding it was made, so I can not extract all data. Is there a way to get all the links back from it? Thanks

Hey, I was in your same situation, @basilisk487's answer above got me exactly all the links (You can access it here: https://github.com/greatsuspender/thegreatsuspender/issues/526#issuecomment-773571731).

One more detail. The last step, to get the actual links: Go to The Great Suspender Settings => Sessions => (For each session, you want) Extract. You will get all the links in a .txt file, line by line.

I hope that helps!

ghnu commented 3 years ago

Is there a way to recover the whitelist ?

Since Google banned 7.18, I cant invoke that any more...

afterdelight commented 2 years ago

if you migrated to firefox and want to clean the suspended links. open the .json file or .txt file with notepad ++

find "url": ".*?&uri= with regular expession enabled

replace all with "url": "

avipars commented 1 year ago

https://gist.github.com/avipars/0b1c05e4a1f664967a3945bb384e55ea

did a quick python script... def more involved than using notepad++ though... but you can modify the script to do more advanced actions