Commit graph

205 commits

Author SHA1 Message Date
Florian Queze
3c564a2b02 Bug 1356569 - Remove notifyObservers' last parameter when it is falsy, r=jaws. 2017-04-14 21:51:39 +02:00
Florian Queze
95d4d20c17 Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +02:00
Jan Henning
6a3517605c Bug 1346004 - Part 5 - Replace Gecko customtab tab attribute by a generic type attribute. r=sebastian
This'll allow customising context menu/session store/... behaviour in Gecko depending on the tab type, since in the future we might not only have special behaviour for custom tabs, but for web app tabs etc. as well.

MozReview-Commit-ID: LS6oGfO4KpR

--HG--
extra : rebase_source : 677a013a05cc683cae82c84864509d8f4799b474
2017-03-12 16:13:10 +01:00
Jan Henning
a6d3db031b Bug 1346171 - Part 2 - Test synchronous session file deletion on clearing history. r=sebastian
MozReview-Commit-ID: JUrbSD2t41t

--HG--
extra : rebase_source : b563dc9944f13f1fc2fccdc1b88786282f8d6379
2017-03-12 11:13:33 +01:00
Jan Henning
bb40130b5e Bug 1346171 - Part 1 - Check correct file before attempting do delete it. r=sebastian
MozReview-Commit-ID: 29UT51xRoVN

--HG--
extra : rebase_source : e197b97e53c46732beb5e356dd12932f288b3053
2017-03-12 11:13:22 +01:00
Tom Klein
c68bc06849 Bug 1331154 - 6. Notify session store when a tab is moved. r=JanH
MozReview-Commit-ID: 66PqTqMiy0T

--HG--
extra : rebase_source : 99fa467f136a8ba7d2a970fc5f416c0bf952f9a3
2017-02-02 21:32:26 -06:00
Tom Klein
8494bb4923 Bug 1331154 - 4. Don't use deck for user-visible tabs order. r=JanH,sebastian
Every way I've tried to move a browser in the deck results in the browser being
reset (it loses its docShell and contentDocument).  So now we treat
deck.children as a set of browsers instead of a list, and make BrowserApp._tabs
the sole keeper of the user visible tabs list order.  That means
deck.selectedIndex should no longer be used to get the user visible index of the
currently selected tab (deck.selectedPanel is still valid), and that all
additions to deck can be appends.

Note if this gets reverted at some later date: there's currently a bug, which
this change renders moot, where we reinsert a close-undo tab correctly in the
_tabs list, but incorrectly append it to the deck instead of inserting it.

MozReview-Commit-ID: Id7FR1p1nfN

--HG--
extra : rebase_source : 1506f513e653c67d066601fb9038bee098be9479
2017-02-12 16:17:29 -06:00
Jim Chen
1294cccf48 Bug 1337467 - Convert observers to bundle events; r=rbarker r=sebastian
Bug 1337467 - 1. Convert "Window:Resize" observer to event; r=rbarker

Bug 1337467 - 2. Convert "ScrollTo:FocusedInput" observer to event; r=rbarker

Bug 1337467 - 3. Convert "Update:CheckResult" observer to event; r=sebastian

Also remove notifyCheckUpdateResult from GeckoInterface.

Bug 1337467 - 4. Convert "GeckoView:ImportScript" observer to event; r=sebastian

Bug 1337467 - 5. Convert accessibility observers to events; r=sebastian

Bug 1337467 - 6. Convert media/casting observers to events; r=sebastian

Bug 1337467 - 7. Convert "Sanitize:ClearData" observer to event; r=sebastian

Bug 1337467 - 8. Convert "Notification:Event" observer to event; r=sebastian

Bug 1337467 - 9. Convert BrowserApp observers to events; r=sebastian

Bug 1337467 - 10. Convert Tab observers to events; r=sebastian

Bug 1337467 - 11. Convert "Passwords:Init" and "FormHistory:Init" observers to events; r=sebastian

Bug 1337467 - 12. Convert Reader observers to events; r=sebastian

Bug 1337467 - 13. Convert Distribution observers to events; r=sebastian

Bug 1337467 - 14. Convert "Fonts:Reload" observer to event; r=sebastian

Bug 1337467 - 15. Convert RecentTabsAdapter observers to events; r=sebastian

Bug 1337467 - 16. Convert "Session:Prefetch" observer to event; r=sebastian

Bug 1337467 - 17. Convert "Browser:Quit" and "FullScreen:Exit" observers to events; r=sebastian

Bug 1337467 - 18. Convert SessionStore observers to events; r=sebastian

The "Session:NotifyLocationChange" observer is sent by browser.js and
requires passing a browser reference, so it's left as an observer.

Bug 1337467 - 19. Remove unused "Tab:Screenshot:Cancel" notifyObserver call; r=me

Bug 1337467 - 20. Convert "Session:Navigate" observer to event; r=sebastian

Bug 1337467 - 21. Convert "Locale:*" observers to events; r=sebastian

Bug 1337467 - Add log for unhandled events; r=me

Add back the log indicating no listener for an event, which can be
useful when reading logcat. r=me for trivial change.

Bug 1337467 - Don't return error from EventDispatcher when OnEvent fails; r=me

When a listener's OnEvent method returns an error, continue to dispatch
to other listeners and don't return an error from the dispatch function.
This avoids unexpected errors when dispatching events. r=me for trivial
patch.
2017-03-07 12:34:04 -05:00
Jan Henning
ff6a093d9d Bug 1343603 - Part 1 - Immediately clear cached session store history data when clearing history. r=ahunt
The session store keeps a serialised copy of a tab's session history around so that the gathering of the data (which can be somewhat expensive) can be decoupled from writing it to disk.

When the user clears Firefox's history, we therefore need to discard this data as well (except for the currently open entry), so it doesn't stick around until the next time some navigation/history change occurs in that tab. Otherwise, if Firefox or just the tab is closed before the purged state has been re-collected by the session store, the supposedly purged session history will resurface when the tab is restored again.

Bug 1337940 means that we'll now catch the history notifications caused by the session history being purged, however
- we still need to handle zombified tabs separately, since as far as the rest of Gecko is concerned, those simply consist of a plain "about:blank" browser with the true state being stashed away in the session store data, so the purging of the live session history data won't have any real effect
- the history purging on the tab happens after the session store receives the "browser:purge-session-history" notification, meaning that these changes received through the regular history notifications won't get written to disk immediately

Therefore we now explicitly purge the session history data of all tabs in our notification handler, so this state can then immediately be saved to disk.

MozReview-Commit-ID: KkR0Tif9BBk

--HG--
extra : rebase_source : 5744c88e2871cd873e2484e9688deb53bf8d44f2
2017-03-02 20:29:52 +01:00
Jan Henning
659b62bd26 Bug 1340828 - Part 3 - Switch Fennec's session store over to SessionHistory.jsm. r=sebastian
Fennec's session store code was forked from Desktop a few years ago. Since then, the Desktop session store code has been refactored and modularised, which allows us to pull in again the bits the are compatible with our session store architecture and don't require any mobile-specific handling.

The handling of session history is such a case - with the exception of the "wyciwyg" filtering, any differences between SessionHistory.jsm and our equivalent in sessionstore.js seems to stem from Desktop bugfixes that were never ported over to our copy of the code.

Switching Fennec's session store over to use SessionHistory.jsm will prevent those sort of errors from occurring again in the future and hopefully simplify the maintenance of the session history code going forward.

MozReview-Commit-ID: Hm0TWTwtPsI

--HG--
extra : rebase_source : 5935c7baeefbd2c75754fe609b684aaf40ee85e9
2017-02-18 23:35:48 +01:00
Jan Henning
36d681723d Bug 1337940 - Part 1 - Capture session store tab data on history listener notifications. r=ahunt
So far we've simply used DOMTitleChanged as a proxy for navigation, since it's the earliest opportunity at which we have all necessary data for a new history entry (session history itself as well as tab URL and *title*) available.

However it turns out that this is not 100 % reliable, since some pages might e.g. implement their navigation in JS using the history API, which won't necessarily trigger any DOMTitleChanged events. In those case we'd fail to update the tab's session history in the session store unless the user eventually navigated to someplace else that actually triggers a title change event again - if the browser was closed before that, we'd fail to properly restore the user's state.

To fix this, we take a similar approach as the desktop session store and collect a tab's history data again when receiving any history change notification for that tab.

Because the OnHistory... notifications are mostly cancellable, the session history hasn't been actually updated yet at the point the history listener is being called. We therefore can't synchronously call onTabLoad() from within our history change notification handler and have to schedule an async timeout instead so as to give the session history a chance to complete updating its state.

MozReview-Commit-ID: LgHer940QwT

--HG--
extra : rebase_source : f5ec320bd21dac91bf1baa162aaabae3ced911e3
2017-02-11 21:07:29 +01:00
Jan Henning
2d64aff307 Bug 1340875 - Send the URL and title of the history entry that was actually open when the tab was closed. r=sebastian
Currently, Recently Closed is displaying the last available history entry for each closed tab instead of the history entry that was actually being shown at the time the tab was closed.

The Java session parser that is responsible for displaying the last session's tabs when not automatically restoring is already doing the correct thing and therefore doesn't need changing.

MozReview-Commit-ID: DGaD52SzdpP

--HG--
extra : rebase_source : 0f11b32d3d8f1061681706272b62dfb090e8e598
2017-02-19 15:05:39 +01:00
Iris Hsiao
4b9cf39daa Backed out changeset 0172497c1024 (bug 1337940) 2017-02-22 16:16:10 +08:00
Jan Henning
2e443a5728 Bug 1337940 - Part 1 - Capture session store tab data on history listener notifications. r=ahunt
So far we've simply used DOMTitleChanged as a proxy for navigation, since it's the earliest opportunity at which we have all necessary data for a new history entry (session history itself as well as tab URL and *title*) available.

However it turns out that this is not 100 % reliable, since some pages might e.g. implement their navigation in JS using the history API, which won't necessarily trigger any DOMTitleChanged events. In those case we'd fail to update the tab's session history in the session store unless the user eventually navigated to someplace else that actually triggers a title change event again - if the browser was closed before that, we'd fail to properly restore the user's state.

To fix this, we take a similar approach as the desktop session store and collect a tab's history data again when receiving any history change notification for that tab.

Because the OnHistory... notifications are mostly cancellable, the session history hasn't been actually updated yet at the point the history listener is being called. We therefore can't synchronously call onTabLoad() from within our history change notification handler and have to schedule an async timeout instead so as to give the session history a chance to complete updating its state.

MozReview-Commit-ID: LgHer940QwT

--HG--
extra : rebase_source : a9634be57f3f43e30f42431e8a28846d958534ee
2017-02-11 21:07:29 +01:00
Himanshi Jain
a67ba0a237 Bug 1289785 - Remove entry.owner_b64 from SessionStore.js and SessionHistory.jsm. r=ckerschb, r=mdeboer 2016-10-17 14:38:13 +05:30
Jan Henning
cc94d60ffc Bug 1338899 - Part 1 - Use getter/setter for accessing/modifying a tab's parent ID in Gecko. r=sebastian
This should be more foolproof than having to remember to use the dedicated setParentId() function when writing to that variable from outside of the tab constructor.

MozReview-Commit-ID: 1KlXf60VsoF

--HG--
extra : rebase_source : 3ae5234a0113b6077a91e873c7a5e5919b162af3
2017-02-12 15:34:00 +01:00
Jan Henning
55ecb8b313 Bug 1338893 - Don't use the window on application-foreground if it doesn't yet exist. r=sebastian
During a cold startup, depending how this exactly plays out we might receive an application-foreground notification before the browser window is ready. Since the code to restore the selected tab if it has been left zombified while in background is only relevant if Gecko was already running and backgrounded, we can simply add a null check for the window before accessing it.

MozReview-Commit-ID: Ahp5NAODKRF

--HG--
extra : rebase_source : bede266e13f48fbc2f7efd40bb9277be6d2bd3bf
2017-02-12 15:09:32 +01:00
Phil Ringnalda
ea85356f95 Merge m-c to m-i 2017-02-12 15:33:29 -08:00
Christoph Kerschbaumer
1cc7d653f7 Bug 1338009 - Utils#deserializePrincipal should return NullPrincipal if deserialization fails. r=mikedeboer 2017-02-12 11:50:25 +01:00
Jan Henning
f9183caf54 Bug 1338088 - Capture the scroll position for DOMTitleChanged events after the initial page load sequence. r=ahunt
onTabLoad() means we've potentially navigated to a new page, in which case any auxiliary tab data we keep around for the currently loaded page only (form input data, scroll position) would be invalidated and shouldn't be preserved.

Since onTabLoad() can however also be triggered if e.g. just the tab title changed (an additional DOMTitleChanged event), we shouldn't throw away the old data without replacing it with the current state, though. We already do this for the form input data - we need to do it for the scroll position as well.

MozReview-Commit-ID: HG7g6L7htDG

--HG--
extra : rebase_source : 1f7aab26002ee71237dd0a48b872298b39ca7f13
2017-02-11 15:36:17 +01:00
Jan Henning
9c6d725ad7 Bug 1148797 - Don't offer "Undo close tab" for empty tabs with no session history. r=ahunt
MozReview-Commit-ID: CsYgUDrCmUQ

--HG--
extra : rebase_source : 5d5b21563c61333c1061f9f87f49abac4f00263b
2017-01-30 22:40:58 +01:00
Jan Henning
422802efba Bug 1335008 - Part 2 - Replace our own privacy level check implementation with PrivacyLevel.jsm r=sebastian
MozReview-Commit-ID: 6vDZupfdFoj

--HG--
extra : rebase_source : bfa7352ba4d8e30e56d2b4ae236cd7bc4d166e30
2017-01-31 21:17:22 +01:00
Jim Chen
9ad1c54661 Bug 1333590 - 3. Change remaining Messaging calls to EventDispatcher calls; r=sebastian
Convert calls in several places where we still use Messaging.* instead
of EventDispatcher.
2017-02-01 17:35:44 -05:00
Jan Henning
db207e8e6c Bug 1333567 - Send the notification expected by the session store when restarting, too. r=sebastian
Since bug 1228593, the mobile session store
- once again flushes its data when we are quitting, to make sure the latest state (including any potential cleaning of history/tabs) is flushed to disk
- ignores windows/tabs closing as a byproduct of shutdown

The latter point is dependent on a new shutdown notification introduced in that bug. Because we forgot to add that notification to the restart code used for add-on updates, in that case the session store currently doesn't enter shutdown mode and therefore records the window being closed during shutdown before flushing its data to disk, which means that all open tabs are lost.

MozReview-Commit-ID: LgtdQoYwacM

--HG--
extra : rebase_source : 1bf6c544d9e25961a0e64236678ca5938e8a69fe
2017-01-25 20:31:30 +01:00
Florian Quèze
b11907c7aa Bug 1334156 - script-generated patch to replace .ownerDocument.defaultView with .ownerGlobal, r=jaws. 2017-01-27 10:51:03 +01:00
Jan Henning
5812dc3cb2 Bug 1333386 - Use {once: true} for session store window "load" listener. r=sebastian
MozReview-Commit-ID: Kc9ydTUrLy1

--HG--
extra : rebase_source : 5dd77f5bff248c305674ef0f7cfbef53675d0a90
2017-01-25 20:19:14 +01:00
Jan Henning
8464eb0fcf Bug 1333046 - Part 1 - Expose a method to restore delay-loaded tabs via the tab object. r=ahunt
Actors outside of the session store shouldn't have to poke around within the session store's data structure and end up reimplementing parts of the session store code (and cause data loss if the implementation is incomplete) in order to restore delay loaded zombie tabs. Therefore, we simply expose a method for this via BrowserApp's tab object.

To simplify handling and make the method a little more fool-proof for external callers, the check whether the tab is actually zombified is moved into the restoreZombieTab() function.

Later on, we can also hook up this method to the appropriate web extension API (see bug 1322485).

MozReview-Commit-ID: 85lnbCpMcP3

--HG--
extra : rebase_source : a6f1cfa11debcb18471b49804776521c60655fce
2017-01-25 21:33:33 +01:00
Jan Henning
7f37054663 Bug 1332863 - Turn on strict mode for mobile session store. r=sebastian
MozReview-Commit-ID: 20KRW4yxPm4

--HG--
extra : rebase_source : 31cda3723011281523468643a5a48da22066fc6f
2017-01-21 19:58:57 +01:00
Jan Henning
7886887a86 Bug 1330422 - Use arrow functions instead of capturing "this" in the session store. r=sebastian
MozReview-Commit-ID: AlLHJipN6kL

--HG--
extra : rebase_source : f279021f013bcfb4e671b9c6d609f342b57faac9
2017-01-12 21:36:01 +01:00
Jan Henning
629cf290d4 Bug 1329330 - Remove old session store code that's no longer needed. r=sebastian
We've been parsing the session store file and doing the initial tab creation on the Java side for a long time now, so the code to open completely new tabs on the session store side instead of using tab stubs is no longer necessary.

Besides, because of bug 1301160 the on-disk session file is now containing tab IDs as well, so this distinction between tabs read directly from the raw session file and those contained in a session string passed over from the Java UI is no longer available.

MozReview-Commit-ID: Hmq0TwClqMQ

--HG--
extra : rebase_source : 1f9ab6da18a7fd0f40a1cb0784082abb2384404f
2017-01-07 22:26:51 +01:00
Nevin Chen
790b6fa100 Bug 1275662 - Close all tabs and clean up session files when "Open Tabs" is selected in "Clear private data on exit" or "Clear private data" pref. r=JanH,sebastian
MozReview-Commit-ID: GoUQVDIzYbI

--HG--
extra : rebase_source : 13bbf3477a29cf301df72b521a0e02875bb5ef14
2016-12-29 14:22:45 +08:00
Jan Henning
0075616fae Bug 1330079 - Collect window data one more time if a new tab arrives before application-quit. r=sebastian
This is relevant when a new tab is opened (e.g. through an intent from an external app) just as the user has pressed the Quit button (see bug 1266594), in which case the TabOpen event might reach the session store after Gecko shutdown has already started. If we're still in the preliminary phase and the browser window hasn't yet been closed, we can persist this new tab by collecting the session store data from the browser window once more.

Additionally, we now reset the time of the last backup when clearing the session store data, so the backup file is recreated as soon as possible after a history/tabs sanitisation, especially for users who are cleaning private data on exiting Firefox.

MozReview-Commit-ID: 9BmqrSIUJ42

--HG--
extra : rebase_source : be3c413db16523aac69d8283f36057713c1e9367
2017-01-11 22:26:30 +01:00
Florian Quèze
85611a7b6d Bug 1331081 - script generated patch to omit addEventListener/removeEventListener's third parameter when it's false, r=jaws.
--HG--
extra : rebase_source : a22344ee1569f58f1f0a01017bfe0d46a6a14602
2017-01-17 11:50:25 +01:00
Jan Henning
7e58d7d4e5 Bug 1301160 - Part 3 - Pass the saved parent tab ID when restoring tabs. r=sebastian
When restoring recently closed tabs during a browsing session, we can just pass the stored parentId as a parameter to addTab and be done with it.

During startup however, we first need to update the parent tab IDs before being able to use it.

At the moment, new tabs are always opened at the end of the tab list and cannot be resorted by the user, so child tabs always appear *after* their parent tabs in the tab list. However because we don't want to rely on this behaviour, we still need to collect a complete mapping between old and new tab IDs first before being able to update the stored parent tab IDs.

Therefore we cannot use the usual method of passing in the parentId during tab creation and have to set it after the fact for this case.

MozReview-Commit-ID: JT5YSkuOSZw

--HG--
extra : rebase_source : 5487f05ed5fd99e12e4f33170688243b36da55e4
2017-01-07 22:26:36 +01:00
Jan Henning
62eb2dc0df Bug 1301160 - Part 1 - Include tab IDs in the session store data. r=sebastian
Having the previous tab ID in the session store data is required in order to be able to create a mapping between old and new IDs on starting up.
Likewise, the parent ID now needs to be tracked on the Gecko side as well, so it can be saved by the session store and later used when restoring a tab/session.

MozReview-Commit-ID: 3zwoZ9YpZlC

--HG--
extra : rebase_source : 25254f6dbbfbf8291fd1d6dcd194540b15da0cef
2017-01-04 15:34:11 +01:00
Florian Quèze
fc6379e827 Bug 1329182 - remove trailing newURI null parameters in the rest of the tree, r=jaws. 2017-01-09 20:27:26 +01:00
Jan Henning
05c501b32c Bug 1266594 - Part 2 - Fix the session store to handle the new shutdown sequence. r=sebastian
Experimenting with the shutdown sequence for Part 1 has thrown up a few edge cases that aren't yet properly handled by the session store:
- If Gecko is busy (e.g. loading a resource-intensive page), shutdown of the UI can be delayed for a bit - if the user then manually switches away from Firefox, we might get an application-background message which needs to be ignored if we're already quitting
- Backgrounding of the app while quitting can change the event ordering - the "browser:purge-session-history" notification might arrive *after* we've received "quit-application", in which case we need to flush the session history to disk again after having handled the "purge-session-history" notification.
- clearDisk() should rather delete the session store files synchronously when quitting, because otherwise there's a chance that the delete operation runs *after* the new state has already been written out

MozReview-Commit-ID: LZzGcJHxqhz

--HG--
extra : rebase_source : 9f18b99ae92a8ff0753375ea1e279df08d61640e
2017-01-03 20:55:22 +01:00
Jim Chen
89ed582051 Bug 1322714 - Convert RecentTabsAdapter and GeckoPreferences events; r=sebastian
Convert "ClosedTabs:Data" and "Sanitize:Finished" events used in
RecentTabsAdapter and GeckoPreferences from NativeJSObject events to
GeckoBundle events.
2016-12-15 18:23:54 -05:00
Jim Chen
e9532b9a3f Bug 1321418 - Use GekcoBundle events in GeckoApp/BrowserApp; r=snorp r=sebastian r=gbrown
Bug 1321418 - 1. Use GekcoBundle events in GeckoApp; r=snorp r=sebastian

Switch GeckoApp to using GeckoBundle events everywhere. UI or Gecko
events are used if the event requires the UI or Gecko thread,
respectively, and background events are used for all other events.

There are changes to some other Java classes, such as SnackbarBuilder
and GeckoAccessibility, due to the switch to GeckoBundle.

For "Snackbar:Show", we need the global EventDispatcher because the
event can be sent to both GeckoApp and GeckoPreferences. Howveer, we
only want one listener registered at the same time, so we register and
unregister in GeckoApp's and GeckoPreferences's onPause and onResume
methods.

Bug 1321418 - 2. Use appropriate JS EventDispatcher to send GeckoApp events; r=snorp r=sebastian

Change JS code that sends events to GeckoApp to use either the global
EventDispatcher or the per-window EventDispatcher.

"Session:StatePurged" is not used so it's removed. "Gecko:Ready" in
geckoview.js is not necessary because it's only used for GeckoApp, so
it's removed from geckoview.js.

Bug 1321418 - 3. Use GeckoBundle events in BrowserApp; r=snorp r=sebastian

Switch BrowserApp to using GeckoBundle events, in a similar vein as
GeckoApp. UI or Gecko events are used if the event handlers required UI
or Gecko thread, respectively, and background events are used for all
other events.

Some other Java classes also have to be modified as a result of
switching to GeckoBundle.

Bug 1321418 - 4. Use global EventDispatcher to send BrowserApp events; r=snorp r=sebastian

Change JS code that sends events to BrowserApp to use the global
EventDispatcher instead of "Messaging".

Bug 1321418 - 5. Update usages of events in tests; r=gbrown

Update cases where we use or wait for events in tests.
2016-12-09 12:32:45 -05:00
Jan Henning
c2c425bc88 Bug 1320550 - Part 2 - Clear closed tabs when max_tabs_undo is set to 0. r=sebastian
Currently, we stop updating closed tabs if max_tabs_undo is set to 0, however we don't clear that data and carry it around indefinitely unless the user clears the browser history.

This means that when closing a tab, we still show the "Undo close tab" snackbar, however with its contents referring to the last tab the user closed before setting browser.sessionstore.max_tabs_undo to 0.

With this patch, we clear all closed tabs (and don't reload them from disc on startup) if max_tabs_undo is 0, which also stops the snackbar from showing after closing a tab.

MozReview-Commit-ID: PEtminpW4B

--HG--
extra : rebase_source : 7c8039db1d1d7c5bc127cdc11fbc0a1387694ef9
2016-11-27 16:59:53 +01:00
Michael Layzell
8a4c8d5381 Bug 944694 - Part 2: Update SessionStore to use the new docshellID format, r=mikedeboer
MozReview-Commit-ID: 29te1YC9FNo
2016-11-17 16:52:17 -05:00
Geoff Brown
ef3f1323fa Bug 1313397 - Move browser/components/sessionstore/Utils.jsm to toolkit/modules; r=mikedeboer
--HG--
rename : browser/components/sessionstore/Utils.jsm => toolkit/modules/sessionstore/Utils.jsm
2016-11-02 10:56:20 -06:00
Christoph Kerschbaumer
bef2aa6909 Bug 1307235 - Import sessionstore/Utils into android/components/SessionStore. r=jchen 2016-10-04 09:54:10 +02:00
Jan Henning
94429143e5 Bug 1304168 - Use correct function name to remove event listener. r=sebastian
MozReview-Commit-ID: HJgrdLstQ3R

--HG--
extra : rebase_source : 422f45586bef02499e59864d3f449e48567bb18d
2016-09-20 22:20:23 +02:00
Christoph Kerschbaumer
2d6d7a8e05 Bug 1297338 - Introduce concept of principalToInherit to SessionHistory. r=bz,mikedeboer 2016-09-20 08:36:45 +02:00
Jan Henning
d54010ee1f Bug 1300647 - Part 1 - Don't bother reloading a zombified tab if we're about to exit the app. r=ahunt
When pressing the back button reaches the beginning of session history for a tab opened from an external app, we both close the tab and send Firefox into background. Closing the tab leads to some other tab getting selected instead - if that other tab was zombified, this means that we'll then start restoring it.

This behaviour is
- visibly distracting, as that other tab will be visible for a split second while it starts reloading before Firefox finally disappears into the background
- wasteful of resources - while restoring a zombified tab is usually done from cache, at the very least we'll waste some CPU cycles reloading a tab even though we're in background

Therefore, in this situation the UI now alerts the session store that it needn't bother restoring that other tab if it's in a zombie state. Instead, we'll restore it the next time Firefox comes into foreground - if the tab is still selected by then.

MozReview-Commit-ID: 3FcjCZrJ0Ds

--HG--
extra : rebase_source : d071884dd1e78b7da470b042e244093e797dde61
2016-09-13 20:46:03 +02:00
Jan Henning
eaed42e5c6 Bug 1301016 - Part 1 - Wait for custom event instead of pageshow for scroll position restoring in reader mode. r=ahunt
Some further post-processing happens after loading a page in reader mode, so the pageshow event is too early for restoring the scroll position.

The fix is to do the same thing that desktop does in bug 1153393 and wait for a custom event instead.

MozReview-Commit-ID: DuMA0JxnYEY

--HG--
extra : rebase_source : 4b24fedcea974cef4d916fc7e59768c160728b0c
2016-09-08 23:00:08 +02:00
Jan Henning
6afa573825 Bug 1299576 - Part 2 - Cancel edit mode when restoring a recently closed tab. r=sebastian
When restoring a recently closed tab from the corresponding home panel, we normally directly switch to the freshly recreated tab. However if we've entered the home panels through editing mode (as opposed to opening a new tab with about:home), editing mode takes priority and the restored tab is opened in background instead, because we return to the originally selected tab when exiting editing mode.

To fix this inconsistency, we introduce a new parameter for opening tabs from Gecko that cancels editing mode if necessary to allow for directly switching to the new tab.

MozReview-Commit-ID: 4iqPISmtNIx

--HG--
extra : rebase_source : fab9dc911171deef1a984bd96993287d146b370a
2016-09-02 20:43:08 +02:00
Wes Kocher
45575a7f86 Merge m-c to autoland, a=merge
a=release for the webidl hook for a comment-only change

--HG--
extra : amend_source : e590e515ab273d097f88b35be0e5c999502ebdf4
2016-08-16 22:07:30 -07:00
Tuhina
e9dba91d30 Bug 1293002 - Replace in-tree consumer of non-standard Iterator() with Object.{values,entries} in mobile/. r=liuche 2016-08-10 02:01:20 +05:30
Christoph Kerschbaumer
706065f96d Bug 1286472: Replace serializing nsISHEntry.owner with nsISHEntry.triggeringPrincipal. r=bz,mikedeboer 2016-07-28 09:23:25 +02:00
Jan Henning
284a08186d Bug 1190627 - Part 2 - Do regular session data backups. r=sebastian
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

--HG--
extra : rebase_source : a3ebc48970c2cd62da4c8dd34600491f58a81cb8
2016-05-29 21:17:15 +02:00
Jan Henning
a5f88a7573 Bug 1190627 - Part 1 - Reorganise session store file names. r=sebastian
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 what used to be 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

--HG--
extra : rebase_source : 1409fb229ef851d0d0a23552427ae67803c70c7b
2016-05-29 13:25:43 +02:00
Jan Henning
71cbfb28c0 Bug 1284013 - Part 2 - Reduce session store save delays when in background. r=sebastian
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

--HG--
extra : transplant_source : %DA%23%3F%82%92%1E%A8%F5%60%84U%A5%92%FAmcT%A7%D0%AA
2016-04-17 22:06:06 +02:00
Jan Henning
efadd57e7b Bug 1284013 - Part 1 - Use temp file for synchronous writes, too. r=sebastian
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

--HG--
extra : transplant_source : %A7%88y%1D%23%B6%D0%AE%BC%E54R%24%09%E1D%92%0F%8D%3C
2016-04-17 18:22:36 +02:00
Jan Henning
1f19675455 Bug 1284013 - Part 0 - Fix session store logging logic. r=sebastian
MozReview-Commit-ID: EGQzejCPNyS

--HG--
extra : transplant_source : %03.c%B4%BBm%C6%7F%E7%CD%E9%B0%B6%DD%E2_%BBh%01%E1
2016-05-29 16:52:49 +02:00
Jan Henning
47101d08ae Bug 1282902 - Part 3 - Let the MobileViewportManager recalculate the saved resolution if the display width changed before restoring. r=kats
The mobile session store saves the current document resolution in order to restore the previous zoom level when restoring a page. If the display width has changed since the session data was captured (e.g. because the device was rotated), the resolution might have to be scaled appropriately.
Currently, the session store does this scaling by itself by comparing the stored and current window widths, however this implementation is slightly simplified and doesn't cover all use cases, which means some pages can be restored at a wrong zoom level after rotation. To correctly cover all cases, the session store would have to compare viewport widths, too.

Because the MobileViewportManager doesn't wait for the session store to set the restore resolution, the latter has to call setRestoreResolution() as early as possible in order to guarantee that the restore resolution is set before the first paint of the document. Therefore the session store currently calls this after receiving a LocationChange notification. However at that time, the correct viewport for the current document is not yet available, which means the resolution cannot be recalculated by the session store at that point.

Therefore, this patch changes the approach taken and lets the MVM handle all resolution calculations instead. The session store now simply passes the stored previous display dimensions along with the previous document resolution to the MVM, which can then compare them to the current display and viewport widths and scale the resolution appropriately before using it during first paint.


MozReview-Commit-ID: IGxWw87yftK

--HG--
extra : transplant_source : e%8D%BD%26%D2%C3%8E5%E3%2B%C0t%BA%DB%C1%BBs%3F%13%1F
2016-07-01 21:23:25 +02:00
Jan Henning
14cc31c7f4 Bug 1279443 - Don't capture session state during startup before we've restored history. r=sebastian
When restoring tabs on startup, the Java UI creates tab stubs for the tabs from the previous session. The selected foreground tab then starts loading as soon as Gecko is up and running. Meanwhile, the session store gets initialised, too and starts restoring history and other things for that tab.

After history has been restored for an active tab, the session store reloads the current history entry, however by that time, depending on device speed, page size and how many other tabs the session store has to process during startup, the initial page load might have progressed far enough to have already triggered various events monitored by the session store, e.g. "pageshow".

If those events arrive before tab restoring has finished, the session store will attempt to capture that tab's state, which will overwrite the values stored from the previous session. Once the page is then reloaded for restoring, wrong values (e.g. form data, scroll position, zoom level) might then be restored.

Therefore, we now abort any attempts to capture a tab's state
- for all tabs until the "sessionstore-windows-restored" notification has been received as a signal that the initial session restore during startup has finished
- for the restored foreground tab until the location change notification is received after reloading

MozReview-Commit-ID: HbhXcEUnRXQ

--HG--
extra : transplant_source : h%2C%DA%27%28%F0%9F%8F%15-%21F/b%18%B5%DF%F4.%BE
2016-06-29 18:24:13 +02:00
Jan Henning
a8c9dbb72e Bug 1282830 - Trigger session saves when closing zombie tabs, too. r=sebastian
A tab being in a delay-loaded "zombie" state or not shouldn't have any influence on the behaviour of onTabRemove - since we remove it from the session store's sphere of influence, its __SS_data can be safely deleted anyway and whether or not a session save needs to be triggered should depend only on the aNoNotfication parameter passed by the caller.

Otherwise, with the current behaviour, the fact that those tabs have been closed will not get saved to disk if no subsequent session save is triggered through any other means (e.g. selecting a different tab, scrolling, ...) before closing Firefox.

MozReview-Commit-ID: IxjZRRutc7A

--HG--
extra : transplant_source : %3E%21%7B%3F%0Cv%01%82%AC%97%E6p%C5X%C3%90%BC%C8%D8%1B
2016-06-28 23:29:57 +02:00
Andrzej Hunt
9530eee446 Bug 1228593 - Save session store data when quitting fennec r=janh
MozReview-Commit-ID: 13zaHfYgB3U

--HG--
extra : rebase_source : d30d975ca6bfd6e0a9e63fadc526c34cf3f85324
2016-06-07 13:48:19 -07:00
Carsten "Tomcat" Book
c1cb5a12bd Backed out changeset 00312b136937 (bug 968273) for causing regressions 2016-06-28 10:03:25 +02:00
Dragana Damjanovic
87fd6ae3a9 Bug 968273 - On reload load from the original uri, so that all redirects are reloader.r=mayhemer 2016-06-01 11:57:52 +02:00
Jan Henning
4834308be5 Bug 810981 - Part 4 - Test session store scroll position and zoom level handling. r=margaret
MozReview-Commit-ID: 4jZ0ixoJmOO

--HG--
extra : rebase_source : eb39f09fd93d8a50d4e36c1f92667b025cf5e32d
2016-05-06 18:44:42 +02:00
Jan Henning
8268d23f01 Bug 810981 - Part 3 - Recalculate zoom level before restoring to a different screen orientation. r=kats
On pages that aren't "width=device-width" or similar, Gecko adjusts the resolution when the display dimensions change, e.g. because the device has been rotated. The session store needs to do something similar when restoring a page if the device orientation has changed since the moment the tab state was captured.

Therefore, we now include the width of the browser window in the saved zoom data and use it to scale the zoom level as necessary when restoring a tab.

MozReview-Commit-ID: LBbEquO1bZ9

--HG--
extra : rebase_source : 38465ee3f16dded1d1e953fd3cdbf31b821d4777
2016-05-18 22:53:34 +02:00
Jan Henning
c2dbf437b9 Bug 810981 - Part 2 - Save the current zoom level when scrolling. r=kats r=margaret
Since we're now recording the scroll position in the session data, it makes sense to store the zoom level as well.

To do this, we make use of the new facility introduced in bug 1270019, which allows us to provide a desired initial resolution to the MobileViewportManager. For this to work, we need to send our desired zoom level before the MVM calculates the initial page resolution, i.e. before first paint/page load. Therefore, we now have browser.js notify us of location change events, so we can set the zoom level to restore early enough.

This also means that we can no longer restore the scroll position on load, because the MobileViewportManager applies the resolution we provide it via utils.setRestoreResolution() only after the first paint or page load ( whichever happens earlier). In the latter case, our JS load event handler will run shortly before the MVM has applied the desired zoom level in its own event handling code, which means that any scroll attempt which depends on the page already being zoomed in will fail to apply.
Therefore, the scroll position restoring needs to be moved to a later point in time, i.e. in this case the "pageshow" event.

MozReview-Commit-ID: 6NtYqc8pm3N

--HG--
extra : rebase_source : a6737e5c047ab2327e3a0e52c2a1176e9248a361
2016-05-26 23:31:15 +02:00
Jan Henning
ac14326b20 Bug 810981 - Part 1 - Record current scroll position in mobile session store. r=margaret
This copies the approach we've taken for form data saving and applies it to recording the current scroll position of the page, too.

This means that after receiving a scroll event, we capture the scroll position for the top level document and all direct child frames and include it in the session store data. Because compared to the form data input events the scroll event can fire at a relatively high rate, we throttle the scroll position capturing using timeouts to run at most twice per second.

MozReview-Commit-ID: C0lBxzHav7Z

--HG--
extra : rebase_source : 325c0f92ce003ea9026e3206b4bb101db1f037a7
2016-05-18 22:24:16 +02:00
Jan Henning
9a3a2c4c60 Bug 1270011 - Check normalData.windows[0] exists before accessing tab count. r=margaret
There is no window in the normalData when clearing browsing history on quit with tab restore set to "never restore", which breaks the assumption made in the logging function. It also means that in that case, the current session will show up as "Tabs from last time" on next startup despite wanting to clear the history on exit.

MozReview-Commit-ID: Ft4jdomopFL

--HG--
extra : transplant_source : %A5as%14%06%1F%BD%B7c%28%3Bb%A6%A7%19U%2C%1C%2CA
2016-05-01 22:11:17 +02:00
Jan Henning
a0e4718399 Bug 1269189 - Let mobile session store capture frameset navigation, too. r=bnicholson
Since the history restore code now apparently supports restoring subframes, too, we should let the mobile session store capture frameset navigation as well, so we can preserve the full browsing history.

MozReview-Commit-ID: 5SM8eMTfgIH

--HG--
extra : transplant_source : IO%1Bz%CA_%14%D0D%F9Q%FBA%E5S7%85%90%AE%C0
2016-05-02 11:24:18 +02:00
Jan Henning
32bb7eee86 Bug 1263110 - Part 2 - Implement crash loop detection in Java. r=mfinkle r=sebastian
Bug 701092 originally implemented some functionality to detect successive crashes and then turn off session restore for the next start, however that functionality got lost when parts of the startup session restore code were moved to Java.

This patch re-implements this functionality within the Java UI. Unlike the previous implementation, we don't reset the crash counter in onPause(), because often enough onPause() will execute even after a crash. Instead, we check in onResume() whether our last foreground activity cycle crashed or not.

To avoid cross-process writes and reads to shared preferences, the crash reporter no longer sets the relevant flags in GeckoApp's shared prefs directly, but instead writes an empty CRASHED file to the Mozilla directory as a flag, which is then checked for by the main process during startup.

Alternative solutions considered were:
- Using Context.MODE_MULTI_PROCESS for accessing the shared prefs. Works, but forces the shared preferences to always be re-read from storage and is also deprecated from API 23 onwards.
- Using a ContentProvider for managing the cross-process shared prefs as suggested in Google's documentation. Seems somewhat over-engineered for this use case.
- Sending a broadcast from the crash reporter to signal the main process, so it can update the relevant shared prefs from the correct process. Doesn't work reliably immediately after crashing - sometimes the broadcast never arrives.
- Setting the crash flags directly in the crash handling functions in GeckoAppShell. Could work even when not building the crash reporter, however doesn't work easily for native crashes, because those are handled internally by Gecko without going through the Java crash handling code.

MozReview-Commit-ID: 6g7AmnJhoQk

--HG--
extra : transplant_source : %C2%F28%D9%8A8%08%C6%9F%A4%03%D7%EC%81F%B9%21%3A%E2x
2016-04-19 13:51:06 +02:00
Jan Henning
1c26124a19 Bug 1266223 - Add logging for session store closed tab data messaging. r=margaret
MozReview-Commit-ID: AWyq0q7HiB0

--HG--
extra : transplant_source : %FB%BF%DE%00%0F%06%06%86%D3Y%98w%AC%8B%DA%F0%F61%1FA
2016-04-27 16:14:28 +02:00
Jan Henning
a72cf7f810 Bug 1264717 - Part 1 - Add some debug logging to the session store. r=margaret
The logging can be enabled by setting "browser.sessionstore.debug_logging" in about:config.

MozReview-Commit-ID: DCJevcsg549

--HG--
extra : transplant_source : %E3%166%F7%0C%29%C0%FB%0A6E%02Sd%10%9D%9A%5DN%7D
2016-04-18 20:59:50 +02:00
Jan Henning
0eac5af72a Bug 1264717 - Part 0 - Get rid of unbraced ifs in sessionstore.js. r=margaret
MozReview-Commit-ID: CU36X2BD3Q

--HG--
extra : transplant_source : %FC%BA%D7X%14%A2%12Wl%C1%1Cb%94c%E8%3D%C9%CAYL
2016-04-14 17:58:41 +02:00
Jan Henning
92d36d5a63 Bug 1262565 - Replace usage of timeouts in session store form data test with waiting for appropriate events. r=margaret
MozReview-Commit-ID: 55WuGx5P98c

--HG--
extra : transplant_source : %ACT%EEhx%BAoJKb%9D2%85%24%BB%F9%85%B4%91%F7
2016-04-06 22:32:52 +02:00
Jan Henning
2e1ae8cd71 Bug 1261225 - Part 2 - Always capture form data on page navigation. r=margaret
As long as a tab is kept in memory, Gecko handles restoring of the form data during forward/back key navigation internally without involving the session store. After going back/forward, OnTabLoad() is triggered, which throws away the previous session store data for that tab and recreates only the session history part of it. Form data is only captured in OnTabInput(), which means that if Firefox is killed or the tab closed/zombified before the user interacts with the form (triggering input events), form contents won't be captured by the session store and will therefore get lost.

MozReview-Commit-ID: LmZlYrHjw6k

--HG--
extra : transplant_source : %3B%8B%E5%83%CE%EB%FC%25%B7yq%D3%19%10%8F%85%0A%8Do%B7
2016-04-01 18:21:39 +02:00
Jan Henning
2bc58472ea Bug 1261225 - Part 1 - Refactor text data restoring. r=margaret
Previously, when restoring a tab, we made a copy of the whole session data from which we would then extract and restore the form data - if present - after page loading had completed.

With the changes from bug 852267, the original session data - containing any eventual form data - is now always reattached to the restored tab object, therefore we no longer need to make a copy of it. Instead, OnTabLoad() has been adapted to preserve the formdata if it is needed for restoring later on.

MozReview-Commit-ID: D9fQxtVnuZe

--HG--
extra : transplant_source : pl0%21%2C%8C%07Y%8E%5D%D5%F8wa%2A4%DBU%B5%9F
2016-03-31 20:54:03 +02:00
Jan Henning
13436d1f56 Bug 1044556 - Part 1 - Notify the session store about tab zombifications. r=sebastian
The session store relies on a few event listeners to track the history and life cycle of a tab. Under memory pressure, background tabs are zombified in order to reduce our memory usage. This involves destroying the original tab object and then recreating it as a delay loaded tab.

As the session store is never told about this, it will keep the event listeners for the old tab objects - which have now been destroyed - alive and won't receive any future events for the new tab objects. This means that once a zombification has been triggered, the session history for those tabs will become effectively frozen, so after the next zombification or a session restore, the tab will reload the wrong page.

Therefore this patch introduces two new events which are sent during the tab zombification process and allow the session store to detach its event listeners from the old tab object before it is going to be destroyed and subsequently reattach its listeners to the new tab object.

MozReview-Commit-ID: 6xZtsCNZbQY

--HG--
extra : transplant_source : %7D%BB%D6%BA%D9%F6%B8%0E%7D%F6%0A%26%A0Y%3E%1Dr%7B%F1%C5
2016-03-18 11:40:26 +01:00
Jan Henning
bab59d0585 Bug 852267 - Part 2 - Add a null check before restoring history. r=margaret
Normally we shouldn't get into a situation where aTabData will be null/empty when trying to restore history, but bug 1229259 comment 10 shows that this can somehow still happen, most probably because we zombified a tab before it had any chance to build some session data.

MozReview-Commit-ID: 9Mw55NTiVTP

--HG--
extra : transplant_source : %F5%CE%C5%89%E0%3F%3E%F3%23e%AE%1C%DE%117%B4eE%D0%3B
2016-03-31 21:05:02 +02:00
Jan Henning
968c7b3e8c Bug 852267 - Part 1 - Always attach session store data to restored tabs. r=margaret
Up till now, when restoring tabs, the previous session store data was only attached to the tab object where necessary to make delay loaded tabs work. In all other cases, the session store data was left empty and recreated only once page loading had progressed sufficiently far to fire the DOMTitleChanged event. This means that a tab could get lost if the session was saved before this point and Firefox then subsequently killed. In conjunction with bug 1044556, a memory pressure event could also prevent the session store data from being recreated for a tab, because the session store wouldn't recieve any new events for tabs that had been zombified.

Therefore, with this patch we always attach the previous session store data to a freshly restored tab, so it will always be included in a session save even if the save is triggered before tab loading has progressed far enough.

MozReview-Commit-ID: GVupnXwuRDV

--HG--
extra : transplant_source : %AAsbW%B6%10%3A%E9%F1.J%9D%E8W%40%AD%CCkI%1D
2016-03-31 20:53:06 +02:00
Dragana Damjanovic dd.mozilla@gmail.com
496059d377 Bug 1246956 - Add loadReplace to session history. r=yoric r=mfinkle 2016-03-02 12:17:22 +01:00
Dragana Damjanovic
d3fd6043b0 Bug 1246956 - Add originURI to Sessionstore. r=bz,Yoric,mfinkle 2016-02-22 16:38:57 -08:00
ISHIKAWA, Chiaki
be2b50a7f8 Bug 1248252 - Improper outdated octal constant syntax in M-C tree. Use '0o' prefix. r=dao
Be warned. Do not attemp to change the .js "test" source code in ./js
They are meant to check

 - the outdated 0666 octal constant is still parsed correctly,
 - the outdated 0666 octal constant raises syntax error flag
   in strict mode, etc.

So leave them alone.
2016-02-15 08:57:00 +01:00
Olli Pettay
2b2b2cc690 Bug 1155730, implement History.scrollRestoration r=jst 2015-12-26 12:59:09 +02:00
Margaret Leibovic
2c5f96c388 Bug 1231896 - Catch exception thrown if we fail to reload session state for error page. r=bnicholson
--HG--
extra : commitid : EPOzqFWITju
extra : rebase_source : 7f87d1916ee425151c1f1e4ba7f4fbf665a70d56
2015-12-11 09:39:32 -05:00
Margaret Leibovic
7e5cfa466d Bug 1132591 - Unpin shortcut tabs when navigating to a new host. r=mcomella
--HG--
extra : commitid : 9YghmSCOxop
extra : rebase_source : ee33ba044d4b102b2d3b1dea01427f9ab6e08bd2
2015-07-16 11:01:03 -07:00
Martyn Haigh
5cf5532037 Bug 1146589 - Ensure that tab opened with "open now" action is selected and visible when fennec loads (r=mcomella) 2015-03-30 10:45:03 +01:00
Ehsan Akhgari
c33feffe6f Bug 1148787 - Ensure that the sessionstore properties exist on the browser object before reading them; r=bnicholson 2015-03-28 21:23:58 -04:00
Martyn Haigh
5718b3455d Bug 1146325 - Convert loaded tab queue data to the required format and send to gecko to open (r=margaret) 2015-03-27 11:47:41 +00:00
Mark Finkle
a6a78daea2 Bug 671993 - Refactor writeFile to use promises and cleanup the caller code flow r=bnicholson 2015-01-22 23:43:20 -05:00
Mark Finkle
fa70d9ad74 Bug 671993 - Collect some telemetry when writing session state to disk r=bnicholson 2015-01-22 23:43:17 -05:00
Mark Finkle
b8c6f653be Bug 671993 - Save/restore form data for main content and direct frames into session state r=bnicholson 2015-01-22 23:43:15 -05:00
Mark Finkle
726c8df343 Bug 671993 - Don't save session history for dynamic frames but correctly save shentry children r=bnicholson 2015-01-22 23:43:12 -05:00
Nick Alexander
f0a5607b87 Bug 1093358 - Add mobile/android AppConstants.jsm. r=mfinkle,f=rnewman
I did as much conversion to "real Javascript" as I could stomach.  It
is, unfortunately, not feasible to remove all preprocessing from CSS
and XHTML files.

--HG--
extra : rebase_source : 8fb3601d09010d9efa4fa33b507dc327fe4dca47
extra : amend_source : 5f796e7cc131880b12756e17240396b040ae981c
2015-01-20 15:17:58 -08:00
vivek
092f4014ef Bug 1015516 - Save closedTabs when saving session to disk. r=bnicholson 2014-12-17 20:06:50 +02:00
vivek
a6f00268e4 Bug 732752 - Restore a closed tab with previous session history r=bnicholson. 2014-12-06 13:33:34 -08:00
Lucas Rocha
459f23d9b3 Bug 1100897 - Avoid duplicate RESTORED tab event on startup (r=mhaigh) 2014-11-27 17:13:02 +00:00
Bill McCloskey
cb01bf980d Bug 1069059 - [e10s] Convert isWindowPrivate calls to isBrowserPrivate/isContentWindowPrivate as appropriate (r=mconley,margaret) 2014-09-23 15:48:52 -07:00
Brian Nicholson
58055f5a0b Bug 1043633 - Change sendMessageToJava to Messaging.sendRequest. r=wesj 2014-09-02 11:59:05 -07:00
Chenxia Liu
b040d8c033 Bug 1031273 - "Clear Private Data" does not clear "Recently closed tabs" from Recent Tabs. r=margaret 2014-08-28 18:20:03 -07:00
Wes Johnston
d04881178e Bug 1052387 - Don't save session history if clearing history on exit. r=bnicholson 2014-08-21 11:35:16 -07:00
Brian Nicholson
c1aa659ddd Bug 1054537 - Change restoreLastSession to use Task.async. r=wesj 2014-08-19 16:28:54 -07:00