3e26dae632dec4b9288fa12925a9fec8eff5d5f9: Bug 1190627 - Part 6 - If an error occurs parsing the regular session store data file on startup, attempt to read the tabs from the backup copy instead. r=margaret draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 29 May 2016 15:46:20 +0200 - rev 376096
Push 20502 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:58:37 +0000
Bug 1190627 - Part 6 - If an error occurs parsing the regular session store data file on startup, attempt to read the tabs from the backup copy instead. r=margaret MozReview-Commit-ID: Kdh5d69irqF
c09d94fa75cb2cb35a42f4f54ee316f9cf2b94b3: Bug 1190627 - Part 5 - Do regular session data backups. r=margaret draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 29 May 2016 21:17:15 +0200 - rev 376095
Push 20502 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:58:37 +0000
Bug 1190627 - Part 5 - Do regular session data backups. r=margaret We now do a backup copy of the session store data at regular intervals to guard against interrupted write operations damaging the main session data file. We don't use writeAtomic()'s backupTo option, because that one works by first moving the old data to the backup file before attempting to write the new data, which might still leave us vulnerable against data loss if Firefox crashes or is otherwise forcibly terminated at precisely that moment. MozReview-Commit-ID: Cv52rmlfmfh
8de568dd9e25fb3cae4a0773978f7074cbf4584d: Bug 1190627 - Part 4 - Reorganise session store file names. r=margaret draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 29 May 2016 13:25:43 +0200 - rev 376094
Push 20502 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:58:37 +0000
Bug 1190627 - Part 4 - Reorganise session store file names. r=margaret Currently, despite its name sessionstore.bak isn't actually a backup copy, but simply contains the last session if we aren't restoring tabs automatically and is used for powering the "Tabs from last time" section of the Recent Tabs panel. This patch changes its filename to sessionstore.old, which frees up sessionstore.bak to be used for an actual backup copy of the current session store data. If we are not restoring tabs automatically, sessionstore.old will be freshly recreated during each app startup by copying from sessionstore.js's contents, whereas if we *are* restoring automatically, any sessionstore.old file older than a day will be expired anyway, therefore no special migration logic is necessary for this change. MozReview-Commit-ID: H7Gl5MQi2J4
f30c8aab86bb5b55019fd6ea7958f51e51563112: Bug 1190627 - Part 3 - Reduce session store save delays when in background. r=margaret draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 17 Apr 2016 22:06:06 +0200 - rev 376093
Push 20502 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:58:37 +0000
Bug 1190627 - Part 3 - Reduce session store save delays when in background. r=margaret When we are backgrounded and Android's onPause() handler runs, we try to synchronously flush out any pending session store to storage. If however some tab events (e.g. tab closing) have been dispatched shortly before the application backgrounding, it is possible that they'll arrive at the session store after the "application-background" event. In this case, we need to process and write them to storage as fast as possible, as we can be killed at any moment now. Therefore the delay between successive writes is completely abolished while the application is in background. The minimum delay between a call to saveStateDelayed() and a write operation however is not completely eliminated and instead only reduced to 200 ms, so as to allow for closely following tab events (e.g. closing a tab involves both a TabSelect and TabClose event) to be batched together in one write operation. MozReview-Commit-ID: I8q7z4kll7O
96b82f4a2304e118f47ad0d1bf6b739898b9b7c8: Bug 1190627 - Part 2 - Defer writes if there's already an async write in progress. r=margaret draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 17 Apr 2016 21:41:32 +0200 - rev 376092
Push 20502 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:58:37 +0000
Bug 1190627 - Part 2 - Defer writes if there's already an async write in progress. r=margaret Currently, it is possible for a second write (sync or async) to be requested while a previous async write operation is still in progress. This might lead to undesired results if the second write is then completed before the first write, or if a sync write is interfering with a parallel async write operation. The only guard against a second async write is the minimum delay of 2 s between successive async writes enforced in saveStateDelayed(); there is no guard against sync writes. To avoid data loss when the application is backgrounded, it is desirable to reduce or completely eliminate this minimum delay (see Part 3), therefore we need to devise alternative means of ensuring that successive writes won't interfere with each other. With this patch, only one save operation is allowed to execute within _saveState() at the same time. Successive calls to _saveState() will be deferred, coalesced into one operation and executed once the previous async write returns from _writeFile()'s promise callback. Sync writes take priority, so if any of the deferred calls to _saveState() is a sync write, the resulting operation will be a sync write, too. This has the slight drawback that we can't execute truly synchronously within Android's onPause() call if an async state save is already in progress, however this should occur only very occasionally and is probably still more desirable than a possible write collision with a previous async state save. MozReview-Commit-ID: G2eogo1z8vr
9d36478a456d1b5e6d80f3c3d9057228fdea1ccd: Bug 1190627 - Part 1 - Use temp file for synchronous writes, too. r=margaret draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 17 Apr 2016 18:22:36 +0200 - rev 376091
Push 20502 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:58:37 +0000
Bug 1190627 - Part 1 - Use temp file for synchronous writes, too. r=margaret Currently, sync writes go directly to the destination file, so an interrupted write will leave the session store data in an inconsistent state. To minimise the incidence of this occurring as far as possible, we now mimic the behaviour of atomicWrite when a tmpPath is set and write to a temporary file which is then renamed to the actual destination file after writing has finished. MozReview-Commit-ID: 3f3z1s0hfl8
c7d80772f5e7f14f184b12023f84c21e09baed55: Bug 1190627 - Part 0 - Fix session store logging logic. r=margaret draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 29 May 2016 16:52:49 +0200 - rev 376090
Push 20502 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:58:37 +0000
Bug 1190627 - Part 0 - Fix session store logging logic. r=margaret MozReview-Commit-ID: EGQzejCPNyS
ae2fd8f0e6f5fa85ff38c1def1a89b793de8fbf0: Bug 1278515 - prevent the truncation of the result from a division to integer. r?cpearce draft
Andi-Bogdan Postelnicu <bpostelnicu@mozilla.com> - Tue, 07 Jun 2016 14:41:05 +0300 - rev 376089
Push 20501 by Bogdan.Postelnicu@softvision.ro at Tue, 07 Jun 2016 11:41:50 +0000
Bug 1278515 - prevent the truncation of the result from a division to integer. r?cpearce MozReview-Commit-ID: ETLfsv2drRh
9f8611e273c9ebf6019001d58bd75065ac1c05ee: Bug 1251362 - DON'T LAND - Debug temp: If the startup tab restore setting is set to "Never", always try switching to the recent tabs panel on startup, so we can test the code path for redirecting this to the combined history panel. draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 15 May 2016 01:42:16 +0200 - rev 376088
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - DON'T LAND - Debug temp: If the startup tab restore setting is set to "Never", always try switching to the recent tabs panel on startup, so we can test the code path for redirecting this to the combined history panel. Normally, this is only used by the crash loop protection (see bug 1263110). MozReview-Commit-ID: BxTlsfi1HUt
48b7556c94e3c99ac36da7e7417484d4b3855b59: Bug 1251362 - Part 19 - Remove code and resources for the old Recent Tabs panel. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Thu, 26 May 2016 17:40:19 +0200 - rev 376087
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 19 - Remove code and resources for the old Recent Tabs panel. r=liuche MozReview-Commit-ID: FQJ7j8YlV6E
412e23f55dce09e4f1be247e13511b0b78156591: Bug 1251362 - Part 18 - Migrate (customised) home panel configurations. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sat, 21 May 2016 14:39:15 +0200 - rev 376086
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 18 - Migrate (customised) home panel configurations. r=liuche For people with customised home panels, we need to explicitly remove the Recent Tabs panel. We also unhide the Combined History panel if it was previously hidden and additionally turn it into the default panel if the Recent Tabs panel was the previous default panel. MozReview-Commit-ID: 5CSJUTRysQU
897a683685f972d5bd753e8086ab7c1db6508e0b: Bug 1251362 - Part 17 - Turn reading list panel migration function into a generic panel removal function. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sat, 21 May 2016 18:27:55 +0200 - rev 376085
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 17 - Turn reading list panel migration function into a generic panel removal function. r=liuche By passing the panel types to be removed/set as new default panel as arguments instead of hard coding them, we can reuse that function for our own home panel config migration. MozReview-Commit-ID: BsMxcbInRbX
c0c66dd9832d4905fc8f056b88543d96bd2bebf7: Bug 1251362 - Part 16 - Remove the Recent Tabs panel from the default home panel config. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sun, 15 May 2016 02:22:03 +0200 - rev 376084
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 16 - Remove the Recent Tabs panel from the default home panel config. r=liuche MozReview-Commit-ID: IX6AkBoa3Mg
aa1cf12a44dd5229d5a2aa8d1bb6ee81bea90bcf: Bug 1251362 - Part 15 - Redirect direct loads of the Recent Tabs panel about:home URL to the Recent Tabs folder of the Combined History panel. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Thu, 26 May 2016 23:04:53 +0200 - rev 376083
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 15 - Redirect direct loads of the Recent Tabs panel about:home URL to the Recent Tabs folder of the Combined History panel. r=liuche After detecting multiple successive crashes in a row, we temporarily switch off automatic session restoring and display the Recent Tabs panel instead. As that panel is going to be removed, we intercept loads of the Recent Tabs panel about:home?panel=... URL and redirect them to the Combined History panel. We also use the facilities provided by bug 1060544 to jump directly to the Recent Tabs folder in that case. MozReview-Commit-ID: 7dQ7tW2dD1M
6d09fadb8ee5de47ffd183abead83b109e08e385: Bug 1251362 - Part 14 - Add telemetry for restoring tabs. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Wed, 18 May 2016 19:04:49 +0200 - rev 376082
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 14 - Add telemetry for restoring tabs. r=liuche This adds telemetry for clicking on a closed tab or the "Open all" button. Methods and extras strings are based on those used for the old Recent Tabs panel. MozReview-Commit-ID: 1Kc8fACkmIc
bbaecba8579b9fcdec4dc5b194759a25eefd4ead: Bug 1251362 - Part 13 - Only enable swipe to refresh within the Synced devices smart folder. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sat, 14 May 2016 23:38:29 +0200 - rev 376081
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 13 - Only enable swipe to refresh within the Synced devices smart folder. r=liuche Recently closed tabs aren't synced, therefore being able to swipe to refresh within the Recent tabs folder isn't necessary. To avoid triggering a refresh by accident, we restrict swipe to refresh to the Synced devices folder itself. MozReview-Commit-ID: YwekSwQr2q
1e2005f8d6b8774e333c0e0ce21e2a838f61f410: Bug 1251362 - Part 12 - Remember more recently closed tabs. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Thu, 26 May 2016 13:46:00 +0200 - rev 376080
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 12 - Remember more recently closed tabs. r=liuche MozReview-Commit-ID: 37mYEiJKfTz
c13f797a595a81465ef998fedcb03f0dd3187b74: Bug 1251362 - Part 11 - Directly notify the RecentTabsAdapter when clearing history. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sat, 14 May 2016 21:27:23 +0200 - rev 376079
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 11 - Directly notify the RecentTabsAdapter when clearing history. r=liuche Sessionstore.bak is only read when we are initialising the home panels, so after clearing all history from the button in the Combined History panel, the "Tabs from last time" section would still linger around until the home panels have been closed and reopened. To prevent this, we now directly notify the RecentTabsAdapter when all history has been deleted, so it can immediately clear its own copy of the last session's tabs. MozReview-Commit-ID: 3EFY2WbWqzh
4e8c2219cd7f9ecce454be55014429485aa60ad5: Bug 1251362 - Part 10 - Display a context menu for closed tab entries. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Sat, 14 May 2016 19:42:00 +0200 - rev 376078
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 10 - Display a context menu for closed tab entries. r=liuche MozReview-Commit-ID: Gv2tJoNRldX
4e43739443def5fce6d7eaf8051ed40e2b2b3602: Bug 1251362 - Part 9 - Display a button to open all recently closed tabs. r=liuche draft
Jan Henning <jh+bugzilla@buttercookie.de> - Thu, 26 May 2016 16:36:25 +0200 - rev 376077
Push 20500 by mozilla@buttercookie.de at Tue, 07 Jun 2016 11:41:20 +0000
Bug 1251362 - Part 9 - Display a button to open all recently closed tabs. r=liuche Depending on the History panel's PanelLevel state, we now dynamically set the panel footer button's text and determine its onClick behaviour. MozReview-Commit-ID: EjesnHsntyC
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 +300000 tip