Commit Graph

2212 Commits

Author SHA1 Message Date
Panos Astithas
8845d63ca0 Don't show 'Connecting' and 'Loading' labels in tab while loading pages (bug 1359352). r=dao
MozReview-Commit-ID: HMs0ri5kLw3
2017-05-05 16:52:03 +03:00
Carsten "Tomcat" Book
cf58f6b4c2 Merge mozilla-central to mozilla-inbound 2017-05-11 12:53:41 +02:00
Dão Gottwald
f957bb9a4f Bug 1362595 - Clean up handling of hidden tabs in restoreWindow. r=mikedeboer
restoreWindow only opens new tabs rather than re-use pre-existing tabs, so
there's no point in calling showTab anymore. hideTab also will not hide the
selected tab, so the "all tabs to be restored are hidden" case can't happen.

MozReview-Commit-ID: FzmRcjprkuN
2017-05-06 01:20:29 +02:00
Frederik Braun
fda653356c Bug 1359350: Add no-eval rule to eslint config (and whitelist failures in tests) r=standard8
MozReview-Commit-ID: 4nYlX4sSdbF
2017-05-08 14:50:50 +02:00
Wes Kocher
21b23ebf9d Merge inbound to m-c a=merge
MozReview-Commit-ID: KSYtdX2VPce
2017-05-05 14:03:31 -07:00
Tim Taubert
9a647dd9b7 Bug 1362058 - Further limit the amount of sessionStorage data we store and serialize r=mikedeboer 2017-05-05 12:17:09 +02:00
Carsten "Tomcat" Book
4e415a660d Merge mozilla-central to autoland 2017-05-05 15:27:55 +02:00
Dão Gottwald
79b9e1a0c0 Bug 1054740 - Stop reusing tabs when restoring windows since at this point it's counterproductive rather than a useful optimization. r=mikedeboer
MozReview-Commit-ID: EuM08mEhDqZ
2017-05-04 14:26:32 +02:00
Honza Bambas
e8227e774f Bug 1319111 - Expose URI to make security check against on LoadInfo (no LOAD_REPLACE flag). r=bz 2017-01-27 19:10:01 +01:00
Tim Taubert
92228631e0 Bug 1360916 - Fix timeouts in browser_sessionStorage_size.js r=bustage 2017-05-03 17:22:07 +02:00
Tim Taubert
d4d952e6ac Bug 1360916 - Update telemetry code in sessionstore content script r=mikedeboer data-r=bsmedberg
This patch replaces FX_SESSION_RESTORE_CONTENT_COLLECT_DATA_LONGEST_OP_MS with
a more fine-grained data collection via a keyed histogram so that we can
determine which type of data collection we spend a lot of time on.

Additionally, it abandons sending telemetry data from the content to the parent
via custom messages and instead uses the Telemetry service directly. Thus it
also gets rid of a bug that currently overrides measurements for the same
histogram done quickly in succession
2017-05-03 12:06:34 +02:00
Christoph Kerschbaumer
1acdc61a26 Bug 1361387 - Update callsites of loadURI() within browser/ to pass a triggeringPrincipal. r=gijs 2017-05-03 10:23:59 +02:00
Wes Kocher
e8ad3cabdb Merge m-c to autoland, a=merge
MozReview-Commit-ID: 1peTFbNMVnU
2017-05-02 17:38:11 -07:00
Dão Gottwald
e7a2bf745c Bug 1361428 - Split up browser_615394-SSWindowState_events.js. r=mikedeboer
MozReview-Commit-ID: 53FZf1xXd1K
2017-05-02 19:41:12 +02:00
Tim Taubert
5f5a52febb Bug 1360810 - Add telemetry for session restore privacy levels chosen by users r=mikedeboer data-r=bsmedberg 2017-05-02 11:10:41 +02:00
Kevin Jones
0d6fe141b4 Bug 1360239 - Explicitly make pinned tabs nonlazy. r=dao
MozReview-Commit-ID: 7fOboqJamqE
2017-04-28 09:08:38 +02:00
Sebastian Hengst
6d4b7656d3 Backed out changeset 88c2a0b2dde5 (bug 1319111) for crashing Talos. r=backout 2017-04-28 00:16:39 +02:00
Honza Bambas
b8b338133e Bug 1319111 - Exposing URI to make security check against on LoadInfo (no LOAD_REPLACE flag). r=bz 2017-01-27 19:10:01 +01:00
Kevin Jones
342732dec8 Bug 1358735 - Ensure userContextId is always set in TabStateCache. r=mikedeboer 2017-04-25 04:54:00 -04:00
Sebastian Hengst
fcd4b2c6f9 Backed out changeset db9f3b377504 (bug 1054740) for failing Marionette's test_prefs.py TestPreferences.test_clear_pref, at least on Linux in non-e10s mode. r=backout on a CLOSED TREE 2017-05-03 23:15:56 +02:00
Wes Kocher
2d4208ef39 Merge m-c to autoland, a=merge
MozReview-Commit-ID: F7qkNALe0WT
2017-05-03 13:52:24 -07:00
Dão Gottwald
41b5761852 Bug 1054740 - Stop reusing tabs when restoring windows since at this point it's counterproductive rather than a useful optimization. r=mikedeboer
MozReview-Commit-ID: LhJDs9GSxuK
2017-05-03 21:57:06 +02:00
Sebastian Hengst
7f6430e0b4 Backed out changeset 43f195f28f6a (bug 1054740) for failing test_quit_restart.py TestQuitRestart.test_in_app_restart_with_callback in Mn-e10s on OSX 10.10 opt. r=backout 2017-05-03 18:50:18 +02:00
Dão Gottwald
1e2b6e9834 Bug 1054740 - Stop reusing tabs when restoring windows since at this point it's counterproductive rather than a useful optimization. r=mikedeboer
MozReview-Commit-ID: EgninUdUHir
2017-05-03 11:19:31 +02:00
Wes Kocher
5965dfb921 Merge m-c to inbound, a=merge
MozReview-Commit-ID: DimBmdgo95e
2017-04-26 17:35:26 -07:00
Christoph Kerschbaumer
bcf80cb593 Bug 1359545 - Update tests to pass triggeringPrincipal to loadURI. r=bz, r=gijs 2017-04-26 21:45:30 +02:00
Tim Taubert
747ba454cd Bug 1359429 - Remove superfluous telemetry probes r=mikedeboer f=bsmedberg
FX_SESSION_RESTORE_COLLECT_DATA_LONGEST_OP_MS can go because that's exactly the same as FX_SESSION_RESTORE_COLLECT_DATA_MS now.

We can remove FX_SESSION_RESTORE_COLLECT_COOKIES_MS because that's just a flat line since bug 912717 landed.
2017-04-25 21:48:22 +02:00
Gabor Krizsanits
57873c6622 Bug 1352961 - P2: Measure for the delay before a new tab starts processing the first URL. r=mconley, data-r=bsmedberg
Opening pages in a new tab might suffer an extra delay from e10s-multi because
the new process has to start up and then run all the process / frame scripts
before it can react on the request from the parent to load the first page.

There are two code paths. Either we start the tab with a remote browser and
then the RemoteWebNavigation will send the request. Or we start with a non-remote
browser and have to change the remoteness flag on it, and then the SessionStore
will send the request.

In each cases we start the timer on the parent side, send it with the message,
and when the child receives it it stops the timer and reports the measured delay.
2017-04-25 17:11:12 +02:00
Tim Taubert
55be5ff70c Bug 1359344 - Properly clear cookies on clean shutdown if requested by the user r=mikedeboer
Since bug 912717 the cookies moved from state.windows[x].cookies (i.e. stored
per-window) to state.cookies (i.e. one global list of cookies). We forgot to
update the code in SessionSaver._saveState() that purges cookies upon clean
shutdown if requested by the user's preferences.
2017-04-25 12:59:16 +02:00
Florian Queze
c9a0637249 Bug 1359111 - stop using BrowserUtils.makeURI, r=jaws. 2017-04-25 09:21:49 +02:00
Mike Conley
edbfb32649 Bug 1357098 - Fix off-by-one error in SessionStore when preparing deferred restore data. r=mikedeboer
Bug 588482 made it possible to restore pinned tabs in windows before restoring the rest of the
tabs. Part of this involves extracting the pinned tab data from the last session, and make it
the default state to restore. The rest can be restored later.

If one of the pinned tabs in a window were selected, the code that was preparing the default
state for that window set the selection value by calculating the length of the tabs array
(before adding the selected one), and adding 2. Presumably, 1 count is because of the tab
we're about to add, and another count is due to how the "selected" value in SessionStore
is 1-indexed (where "0" means, "don't change the selection").

This is an off-by-one error though, since the tabs array length already cancels out the
need for the extra "1-index" difference. It is sufficient to just add 1 to the length of
the tabs array to calculate the selected value.

This appears to have been a bug for a while, but was covered up by the fact that the old
tab selection code exited early if the 0-indexed value of the selected tab was not within
the length of the tabs array. Bug 1351677 uncovered this bug by removing that second check.

This patch fixes the off-by-one error, and also puts a check back in to ensure that the tab
we're going to select is at a valid index.

MozReview-Commit-ID: 9WbbU0vUJHG
2017-04-25 18:03:12 -04:00
Kevin Jones
8593e2602b Bug 1345090 - Modify SessionStore to restore tabs with lazy browsers. r=mikedeboer,dao
MozReview-Commit-ID: 5J5UqlWMxKX
2017-04-20 11:01:09 +02:00
Jim Porter
e6d010d8bf Bug 1352069 - Introduce a pref that allows for disabling cosmetic animations r=jaws
This rolls browser.tabs.animate, browser.fullscreen.animate, and
alerts.disableSlidingEffect into a single pref; if any of these are disabled,
we'll disable the new pref too (toolkit.cosmeticAnimations.enabled). Most
future animations will also be subject to this pref.

MozReview-Commit-ID: 77pLMtERDna
2017-04-11 13:47:31 -05:00
Florian Queze
ddf0cda8da Bug 1355161 - script-generated patch to replace .{currentThread,mainThread}.dispatch(..., Ci.nsIThread.DISPATCH_NORMAL) with .dispatchToMainThread(...), r=froydnj. 2017-04-14 18:29:12 +02:00
Florian Queze
451928e614 Bug 1356569 - Remove notifyObservers' last parameter when it is falsy, r=jaws. 2017-04-14 21:51:39 +02:00
Florian Queze
d3c36892fa Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +02:00
Sebastian Hengst
4cd95d4a02 Backed out changeset 18d45aa984d6 (bug 1355161) 2017-04-14 23:39:23 +02:00
Sebastian Hengst
42670ceca0 Backed out changeset 322fde2d53bf (bug 1356569) so bug 1355161 can be backed out. r=backout 2017-04-14 23:39:22 +02:00
Sebastian Hengst
f75839c723 Backed out changeset 55f3df15eaa6 (bug 1356569) 2017-04-14 23:39:17 +02:00
Florian Queze
61aabdf237 Bug 1356569 - Remove notifyObservers' last parameter when it is falsy, r=jaws. 2017-04-14 21:51:39 +02:00
Florian Queze
9b4f73599f Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +02:00
Florian Queze
35cd8ba883 Bug 1355161 - script-generated patch to replace .{currentThread,mainThread}.dispatch(..., Ci.nsIThread.DISPATCH_NORMAL) with .dispatchToMainThread(...), r=froydnj. 2017-04-14 18:29:12 +02:00
Eugen Sawin
1f617c1192 Bug 1355542 - [2.0] Remove unused web progress callbacks and add missing progress filters. r=felipe 2017-04-13 23:20:17 +02:00
Wes Kocher
197a1c4128 Merge autoland to central, a=merge CLOSED TREE 2017-04-12 15:13:30 -07:00
Michael Layzell
97b0a7dde1 Bug 1353844 - Part 2: Send permissions to the content process before restoring SessionStorage, r=mikedeboer
MozReview-Commit-ID: 3oyQfHdls2
2017-04-12 11:54:41 -04:00
Michael Layzell
b8dfe4d0a6 Bug 1353844 - Part 1: Parse origin strings correctly in SessionStorage::restore, r=mikedeboer
MozReview-Commit-ID: CL459U1jU3I
2017-04-12 11:54:41 -04:00
Tim Huang
e5139054ad Bug 1351084 - Making the TabState.jsm collecting 'iconLoadingPrincipal' from browser.mIconLoadingPrincipal. r=mikedeboer
The browser.contentPrincpal will report a null prinicpal instead of the actual
content principal if the tab is not loaded. So the SessionStore will collect a
wrong principal for the 'iconLoadingPrincipal', and it will use this wrong
principal to load favicon when session restoring.

To fix this problem, this patch makes the TabState.jsm to collect
'iconLoadingPrincipal' from browser.mIconLoadingPrincipal which will be the
correct principal for loading favicon.

MozReview-Commit-ID: AYUbHFKaG8v
2017-03-29 10:46:01 +08:00
Carsten "Tomcat" Book
0175d8a0b6 Merge mozilla-central to mozilla-inbound 2017-04-07 15:33:03 +02:00
Tim Taubert
7869adb102 Bug 912717 - Tiny follow-up to fix ESLint bustage caused by a test file r=bustage 2017-04-07 15:09:46 +02:00
Tim Taubert
bcbae8d1a4 Bug 912717 - Don't let SessionCookie collection jank the chrome process r=mikedeboer
Current state:
--------------

Session cookies - those that have no Expires or Max-Age directive, sent as a
header or set via document.cookie - are meant to live for the duration of a
session. SessionStore is a feature that aims to enable users to resume where
they left off last time they closed the browser. So SessionStore will persist
and restore those cookies that the cookie service only keeps in memory.

SessionCookies.jsm registers observers with the cookie service and is thus
notified of cookie additions, deletions, and modifications as-it-happens. It
has its own internal storage that we could easily serialize and write to disk
together with the rest of the session data.

The hangs shown in various profiles stem from the fact that since the inception
of SessionStore as an add-on around Firefox 2, cookies have been tacked to
windows. This means that whenever we collect session data for a specific
window (i.e. tabs, their shistory entries, etc.) we have to iterate *all* its
tabs and *all* their shistory entries to enumerate the hosts contained in that
window. We will then ask the internal cookie store in SessionCookies.jsm to
give us all cookies for these hosts and then store them together with the
window. This way we filter out cookies from tabs/hosts that have no active
documents (BFCache counts as "active").

Changes in this patch:
----------------------

Instead of trying to only retain cookies from “active” documents, i.e. those
contained somewhere in the shistory of a tab, we now simply save all session
cookies of the session. This will surely reduce user complaints about us
"logging them out" too fast because we discard cookies from tabs they
open only once in a while, although those definitely belong to the
browsing session.

Instead of storing the cookies per each window we now have a top-level
"cookies" attribute that is a list of cookies. These get restored whenever we
restore a session. Legacy window.cookies attributes will still be restored to
support older session formats for a while.

The DEFER_SESSION startup mode is active by default when a user choses not to
restore their whole session automatically but they still have one or more
pinned tabs. These pinned tabs are restored automatically and split off of the
rest of the session. The rest can be restored manually if the user chooses to
do so.

In the past, we here extracted and restored only the pinned tabs' cookies from
the last session. This filtering also works against how some sites (e.g.
Google) use session cookies. It also means we have to iterate all windows,
tabs, shistory entries, and cookies to find the data we want.

This patch changes our past behavior so that we now restore only pinned tabs
but all session cookies. So we don't have to filter, and pages will break less
likely. We hereby assume that a user having pinned tabs wants to continue their
browsing session partially, although without Firefox remembering the exact list
of tabs. Or they simply like starting off of a clean slate.
2017-04-07 14:41:38 +02:00