Infocatcher / Private_Tab

Adds private tabs, restartless extension for Firefox (20.0+) and SeaMonkey (2.17+)
https://addons.mozilla.org/addon/private-tab/
Other
86 stars 20 forks source link

rememberClosedPrivateTabs doesn't work in FF>29.0 #146

Closed sdavidg closed 9 years ago

sdavidg commented 10 years ago

"extensions.privateTab.rememberClosedPrivateTabs" preference doesn't work in FF>29.0

Infocatcher commented 10 years ago

This is due to https://bugzilla.mozilla.org/show_bug.cgi?id=899276 Now Firefox doesn't save closed private tabs itself. And therefore this cannot be fixed, at least there is no simple way to alter built-in sessions mechanism.

Also see #82 for some history.

Infocatcher commented 9 years ago

Oh, looks fixed for me and now (finally!) will be released soon.

sdavidg commented 9 years ago

I have update to latest version and the behavior is a bit different. 1) Open two private tabs 2) Close one of them 3) Reopen the tab (ctrl+shift+t) 4) Reopened tab is not private, this is a bug?

Infocatcher commented 9 years ago

4) Reopened tab is not private, this is a bug?

Interesting... I can't reproduce, but which tab is active during reopening (private or not)?

sdavidg commented 9 years ago

No matter which tab is active. The error only occurs on W -XP (yes, it is a very old) . Windows7 working properly.

sdavidg commented 9 years ago

No matter which tab is active

I was wrong. If selected tab is private, tab reopened is public. If the selected tab is public, reopened tab is private. Tested in Windows-XP

sdavidg commented 9 years ago

1) Open one private tab 2) Open some links via "ctrl+click" 3) Right click on tab and select "Close Tabs to the Right" 4) Reopen tabs via "ctrl+shift+T" 5) Some reopened tabs are public. This bug occurs only sometimes

The test case on comment https://github.com/Infocatcher/Private_Tab/issues/146#issuecomment-100789488 also works sometimes

Windows 7, W-XP FF 39.0 Private Tab 0.1.7.5.1

Infocatcher commented 9 years ago

Oh, I still unable to reproduce, but may be something useful in debug logs: extensions.privateTab.debug = true in about:config and then see for [Private Tab] … messages in error/browser console (Ctrl+Shift+J)

sdavidg commented 9 years ago

--Open private tab from another private tab via ctrl+click [Private Tab] 32:08:887 Tab opened: (not empty) Inherit private state: true [Private Tab] 32:08:887 Set usePrivateBrowsing to true Tab: [Private Tab] 32:09:612 [patcher] gBrowser.setIcon(): isPrivate = true [Private Tab] 32:09:612 PrivateBrowsingUtils.isWindowPrivate(): override to true [Private Tab] 32:09:613 PrivateBrowsingUtils.isWindowPrivate(): override to true [Private Tab] 32:10:810 updateTabTooltip()

--Close tab (middle click) [Private Tab] 32:44:015 tabClosingHandler(): save closed private tab in undo close history

--Reopened tab (tab is public) [Private Tab] 32:47:137 Tab opened: Nueva pestaña (empty) Inherit private state: undefined [Private Tab] 32:47:157 setWindowBusy(): true [Private Tab] 32:47:158 setWindowBusy(): false [Private Tab] 32:47:186 updateWindowTitle() Mozilla Firefox [Private Tab] 32:47:270 updateTabsInTitlebar() => TabsInTitlebar._update(true) [Private Tab] 32:47:287 Tab restored: rememberClosedPrivateTabs broken in FF38 · Issue #173 · Infocatcher/Private_Tab · GitHub [Private Tab] 32:47:336 updateDownloadPanel() => reinitialize download indicator [Private Tab] 32:47:770 updateTabTooltip()

Infocatcher commented 9 years ago

Interesting... Test version with a bit more useful debug logs (I hope): private_tab-0.1.8.1pre-fx-sm.xpi (source) (changed only Tab restored: message)

sdavidg commented 9 years ago

--Open private tab from another private tab via ctrl+click [Private Tab] 20:39:365 Tab opened: (not empty) Inherit private state: true [Private Tab] 20:39:365 Set usePrivateBrowsing to true Tab: [Private Tab] 20:40:165 updateTabTooltip() [Private Tab] 20:40:779 [patcher] gBrowser.setIcon(): isPrivate = true [Private Tab] 20:40:779 PrivateBrowsingUtils.isWindowPrivate(): override to true

--Close tab (middle click) [Private Tab] 21:04:483 tabClosingHandler(): save closed private tab in undo close history

--Reopened tab (tab is public) [Private Tab] 21:08:967 Tab opened: Nueva pestaña (empty) Inherit private state: undefined [Private Tab] 21:08:983 setWindowBusy(): true [Private Tab] 21:08:984 setWindowBusy(): false [Private Tab] 21:09:015 updateWindowTitle() Mozilla Firefox [Private Tab] 21:09:094 updateTabsInTitlebar() => TabsInTitlebar._update(true) [Private Tab] 21:09:112 Tab restored, has private attribute: false, label: Private Tab :: Complementos para Firefox [Private Tab] 21:09:157 updateDownloadPanel() => reinitialize download indicator [Private Tab] 21:09:594 updateTabTooltip()

Infocatcher commented 9 years ago

Tab restored, has private attribute: false

This is strange... This means that private attribute wasn't saved in session. If there is this attribute, tab should be underlined (so, this is visible, if something went wrong at that stage).

sdavidg commented 9 years ago

Sometimes it works. When it works, the log that is displayed when the tab is closed:

--Close tab (middle click) [Private Tab] 24:44:842 updateTabTooltip() [Private Tab] 24:44:980 dontSaveClosedPrivateTabs(true): create wrapper for PrivacyFilter [Private Tab] 24:44:980 tabClosingHandler(): save closed private tab in undo close history

If the last two lines do not appear on the log, the tab will be reopened public.

David

Infocatcher commented 9 years ago

If the last two lines do not appear on the log, the tab will be reopened public.

Very weird things... This means that built-in session store mechanism doesn't treat tab as private. May be due to queue delays from chrome://browser/content/content-sessionStore.js

  /**
   * The delay (in ms) used to delay sending changes after data has been
   * invalidated.
   */
  BATCH_DELAY_MS: 1000,

Updated test version with yet another debug message (da243f9cf89f2b6d2fa56718428bb95fe2cbacd5): private_tab-0.1.8.1pre-fx-sm.xpi (source)

sdavidg commented 9 years ago

[Private Tab] 49:01:840 Tab opened: (not empty) Inherit private state: true [Private Tab] 49:01:840 Set usePrivateBrowsing to true Tab: [Private Tab] 49:02:250 [patcher] gBrowser.setIcon(): isPrivate = true [Private Tab] 49:02:250 PrivateBrowsingUtils.isWindowPrivate(): override to true2 [Private Tab] 49:05:440 tabClosingHandler(): save closed private tab in undo close history [Private Tab] 49:07:631 Tab opened: Nueva pestaña (empty) Inherit private state: undefined [Private Tab] 49:07:644 setWindowBusy(): true [Private Tab] 49:07:644 setWindowBusy(): false [Private Tab] 49:07:683 updateWindowTitle() Mozilla Firefox [Private Tab] 49:07:747 updateTabsInTitlebar() => TabsInTitlebar._update(true) [Private Tab] 49:07:763 Tab restored, has private attribute: false, label: Infocatcher/Private_Tab at cc5e06ed67f912bd0f6a78854dc1ace991b31bcb · GitHub [Private Tab] 49:07:810 updateDownloadPanel() => reinitialize download indicator [Private Tab] 49:10:154 updateTabTooltip()

It may be a conflict with another extension?

Infocatcher commented 9 years ago

It may be a conflict with another extension?

May be. Or may be this is due to session store optimizations: private attribute was actually added, but not yet saved into session data.

Infocatcher commented 9 years ago

tabClosingHandler(): save closed private tab in undo close history ... Tab restored, has private attribute: false

Strange... May be this will help: 26663d7f8d4a9869ce6a2104e4082efcca67c2c1 Test version: private_tab-0.1.8.1pre2-fx-sm.xpi (source).

sdavidg commented 9 years ago

1) Open Firefox with the attached Profile(https://dl.dropboxusercontent.com/u/245317/profile_example_private_tab.7z) 2) Right-click on bookmark "Example" and open on new Private tab 3) Open the link "source" via "ctrl+click" 4) Close tab 5) Reopen tab via "ctrl+shift+T" --> Reopened tab is not private

Note: If you turn off the style "SVG CuteMenus" tab correctly reopens (???) I'm looking for a simple test case in W7

Windows W-XP FF 40.0.3 Private Tab 0.1.8.1pre2

Infocatcher commented 9 years ago

5) Reopen tab via "ctrl+shift+T" --> Reopened tab is not private

Thanks, now I can reproduce.

Infocatcher commented 9 years ago

Something break browser.webProgress.isLoadingDocument for just restored tab, I'm not sure, what actually happens, but now looks fixed for me. Test version: private_tab-0.1.8.1pre3-fx-sm.xpi (source).

sdavidg commented 9 years ago

It works perfectly. I will test more next week when I get back to work. Thank you very much

sdavidg commented 9 years ago

I tested it for a week, and works well. Thanks again

Infocatcher commented 9 years ago

I tested it for a week, and works well.

Great!