Commit graph

50 commits

Author SHA1 Message Date
dennisschagt
cafa1d9807 Bug 1556151 - SessionStore: Save and restore cookie.sameSite flag r=mikedeboer
Differential Revision: https://phabricator.services.mozilla.com/D38792

--HG--
extra : moz-landing-system : lando
2019-07-24 20:02:38 +00:00
Victor Porof
1f830c96da Bug 1561435 - Format browser/components/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D36042

--HG--
extra : source : d3afcafdce650a6f36cebbc126ee93b17f13cf52
2019-07-05 09:53:32 +02:00
Andrea Marchesini
b1b122fb20 Bug 1554464 - Merge nsICookie2 and nsICookie in 1 single interface, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D33031

--HG--
extra : moz-landing-system : lando
2019-05-31 09:36:44 +00:00
Andrea Marchesini
4c6ace6ac6 Bug 1551798 - Rename nsICookie2.SAMESITE_UNSET to nsICookie2.SAMESITE_NONE, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D31214

--HG--
extra : moz-landing-system : lando
2019-05-29 15:55:03 +00:00
arthur.iakab
944263f18a Backed out 5 changesets (bug 1551798) for multiple build bustages on StaticPrefList.h CLOSED TREE
Backed out changeset c89daff34d97 (bug 1551798)
Backed out changeset bbc3f88b8c03 (bug 1551798)
Backed out changeset b87996b8a411 (bug 1551798)
Backed out changeset d88b0002d736 (bug 1551798)
Backed out changeset 0fe740c90e2b (bug 1551798)
2019-05-29 18:07:26 +03:00
Andrea Marchesini
e9bbb85ed1 Bug 1551798 - Rename nsICookie2.SAMESITE_UNSET to nsICookie2.SAMESITE_NONE, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D31214

--HG--
extra : moz-landing-system : lando
2019-05-24 15:18:49 +00:00
Andrea Marchesini
b958c6f170 Bug 1260399 - Remove deprecated messages in nsICookieManager methods - part 3 - nsICookieManager.cookieExists, r=ehsan 2018-09-24 11:37:57 +02:00
Andrea Marchesini
61a7f9a598 Bug 1260399 - Remove deprecated messages in nsICookieManager methods - part 1 - nsICookieManager.add(), r=ehsan 2018-09-24 11:37:56 +02:00
Mark Banner
691543ee89 Bug 1486739 - Add missing dangling commas in browser/, services/, taskcluster/ and toolkit/. r=mossop
Automatic changes by ESLint, except for manual corrections for .xml files.

Differential Revision: https://phabricator.services.mozilla.com/D4439

--HG--
extra : moz-landing-system : lando
2018-08-31 05:59:17 +00:00
Kris Maglione
80327d3561 Bug 1484496: Part 5a - Convert browser/ nsISimpleEnumerator users to use JS iteration. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D3729

--HG--
extra : rebase_source : e187b8e9a6b6db7ebc762adda5e489b25c7a7e43
extra : histedit_source : 868cb99d09954a51d6be321fcb516475ef70eb33
2018-08-18 19:27:33 -07:00
Mark Banner
6feaa5a9c3 Bug 1478308 - Remove unnecessary ChromeUtils.imports in browser/ r=mikedeboer
MozReview-Commit-ID: BYTDdLU2HoM

--HG--
extra : rebase_source : 1e31ff288280d09ae226cdc698331263ba969205
2018-07-25 09:10:07 +01:00
Narcis Beleuzu
d47c829065 Backed out 4 changesets (bug 1478308) for ESlint failure on AttributionCode.jsm. CLOSED TREE
Backed out changeset a809b45ff49b (bug 1478308)
Backed out changeset c68131530742 (bug 1478308)
Backed out changeset 0e4ba7a6dc1a (bug 1478308)
Backed out changeset 32a27f317a77 (bug 1478308)
2018-07-26 11:13:28 +03:00
Mark Banner
180233c593 Bug 1478308 - Remove unnecessary ChromeUtils.imports in browser/ r=mikedeboer
MozReview-Commit-ID: BYTDdLU2HoM

--HG--
extra : rebase_source : 67dc15c0cdff0234d3274f1a8978d1f2a5b3f411
2018-07-25 09:10:07 +01:00
Mike de Boer
ca6f45143e Bug 1434252 - nsICookieService may throw an error in certain circumstances, so let's make SessionCookies::restore infallible. r=dao
Please see bug 1462402 for more details and the root cause.
SessionCookies.jsm uses nsICookieService::CookieExists and nsICookieService::Add
to restore session-cookies. These currently throw for hostnames that contain a
leading '.' and maybe other cases, so we need to wrap the calls in a try..catch
block to prevent breakage, leading to an unrestored session.

MozReview-Commit-ID: 9gZ7K6lwcQF

--HG--
extra : rebase_source : 0c1bff428225a78a30c83187c455277372efe7e5
2018-05-17 19:09:08 +02:00
Kris Maglione
a7b308c3a2 Bug 1456686: Part 1 - Fix unused and shadowed explicit imports. r=standard8
These issues were previously ignored due to the nature of our global import
rules. They need to be fixed before that rule can be updated.

MozReview-Commit-ID: DCChktTc5TW

--HG--
extra : rebase_source : cffb1c9762191c579d1397c8169e6e7635d229da
extra : histedit_source : dea59ddd2daaae52069c5faceae9149a4f08dd73
2018-04-24 20:18:09 -07:00
Florian Quèze
682b1ec3b2 Bug 1440284 - change this.EXPORTED_SYMBOLS back to var EXPORTED_SYMBOLS in JS modules, r=mccr8. 2018-02-23 20:50:01 +01:00
Andrew McCreight
5dec0e0beb Bug 1432992, part 1 - Remove definitions of Ci, Cr, Cc, and Cu. r=florian
This patch was autogenerated by my decomponents.py

It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.

It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.

It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)

MozReview-Commit-ID: DeSHcClQ7cG

--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
2018-02-06 09:36:57 -08:00
Kris Maglione
918ed6c474 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
extra : intermediate-source : 34c999fa006bffe8705cf50c54708aa21a962e62
extra : histedit_source : b2be2c5e5d226e6c347312456a6ae339c1e634b0
2018-01-29 15:20:18 -08:00
Cosmin Sabou
9a65a40178 Backed out 3 changesets (bug 1431533) for Android mochitest failures on testEventDispatcher on a CLOSED TREE
Backed out changeset a1eca62826a1 (bug 1431533)
Backed out changeset 34c999fa006b (bug 1431533)
Backed out changeset e2674287e57f (bug 1431533)
2018-01-30 07:17:48 +02:00
Kris Maglione
6476f95b13 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
2018-01-29 15:20:18 -08:00
Brindusan Cristian
af8879d1eb Backed out 2 changesets (bug 1431533) for ESlint failures on a CLOSED TREE
Backed out changeset 6e56f4c8843e (bug 1431533)
Backed out changeset 12fc4dee861c (bug 1431533)
2018-01-30 02:32:43 +02:00
Kris Maglione
c276bb9375 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : rebase_source : c004a023389f1f6bf3d2f3efe93c13d423b23ccd
2018-01-29 15:20:18 -08:00
Nicole Byer
8f2ad475dc Bug 1410067 - Changed use of 2^62 to Number.MAX_SAFE_INTEGER (represents 2^53 - 1) to avoid faulty behavior. r=mikedeboer 2017-10-24 13:58:55 -03:00
Will Wang
dd03c7ac9b Bug 1366213: Part 2 - Make session restore component switch to observe new topic 'session-cookie-changed' instead of 'cookie-changed'. r=mikedeboer
--HG--
extra : rebase_source : beabb6499eb9c00cd0eda70fe7f08acefd4f7ed1
2017-06-30 12:09:31 -07:00
Will Wang
15fb67470c Bug 1356605 - Part 2: Use the new sessionEnumerator to iterate only the cookies we need. r=mikedeboer 2017-05-10 12:14:31 +08:00
Florian Queze
37ff4fc7cc Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +02:00
Sebastian Hengst
a07223d699 Backed out changeset 322fde2d53bf (bug 1356569) so bug 1355161 can be backed out. r=backout 2017-04-14 23:39:22 +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
Tim Taubert
afed0705da 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
Tim Taubert
63d25c5647 Bug 1353533 - Don't create maps for non-session cookies when reloading all cookies r=mikedeboer
When initializing the service in SessionCookies.jsm,
SessionCookies._reloadCookies() currently iterates all cookies held by the
coookie service and calls _updateCookie() to add them. _updateCookie() however
is supposed to deal with cookie modifications, including session cookies being
converted to longer-lived ones, and thus handles deletion too.

This patch ensures a fast startup path by ignoring cookie deletion, we only
ever need to add new session cookies when initializing on startup. It also
changes the "cookie added" notification handler to ignore deletion.

Additionally, CookieStore.delete() is a little more intelligent now and avoids
the creation of maps only to find out the cookie didn't exist after all.
2017-04-05 16:05:46 +02:00
Tim Taubert
ff47acdd0e Bug 1352365 - Remove duplicate PrivacyLevel checks in SessionCookies.jsm r=mikedeboer
PrivacyLevel checks currently allow to disable storing secure cookies and any
cookies belonging to an HTTPS host, or completely disable storing cookies. We
call PrivacyLevel.canSave() for every host found in the shistory of a given
window's tabs. We then call it again for every cookie when retrieving all
cookies stored for a given host.

The two different privacy checks exist because in the past an HTTP site could
send a secure cookie too. Since Firefox 52 this isn’t possible anymore, only
HTTPS sites can send secure cookies. So as soon as nsICookie.isSecure=true
we know the site was loaded over TLS.

That means there are the following scenarios:

[PRIVACY_LEVEL=NONE] (default)
We store all cookies.

[PRIVACY_LEVEL=FULL]
We store no cookies at all.

[PRIVACY_LEVEL=ENCRYPTED]
HTTP site sends cookie: Store.
HTTP site sends secure cookie: Can't happen since Fx52
HTTPS site sends cookie: Store. The site is HTTPS but we should store the
cookie anyway because the "Secure" directive is missing. That means the
site wants us to send it for HTTP requests too.
HTTPS site sends secure cookie: Don't store.

This allows us to simplify the code and remove the per-host PrivacyLevel
checks. Checking nsICookie.isSecure is enough to tell whether we want
to keep a cookie or not.
2017-03-31 11:54:18 +02:00
Tim Taubert
890672d7f9 Bug 1351835 - Update PrivacyLevel.canSave() calls in SessionCookies.jsm r=mikedeboer
The first change we can make is to simplify the PrivacyLevel.canSave() method
itself as it only takes a single argument, `isHTTPS`. Callers shouldn't be
required to pass an object, they should simply pass a boolean.

The second change here is to cleanup SessionCookies.jsm that still passes the
old `isPinned` argument that's no longer needed. We can remove some house
keeping and simplify the cookie collection code.

SessionCookies.getHostsForWindow() that previously returned a map from hostnames
to a site's pinned status (tab.pinned) can now simply return a Set containing
all hostnames found in a window.
2017-03-30 13:57:42 +02:00
Mark Banner
c26710ebe4 Bug 1311347 - Enable eslint of browser/components/sessionstore/. Manual fixes. r=jaws
MozReview-Commit-ID: AupJNLZJ2Ye

--HG--
extra : rebase_source : b9113d1ca913d399ca4e831f3c381e8fa45847bd
2017-03-13 10:32:03 +00:00
Mark Banner
4acba13973 Bug 1311347 - Enable eslint of browser/components/sessionstore/. Autofix changes. r=jaws
MozReview-Commit-ID: 5LKHbcmjSy

--HG--
extra : rebase_source : d7e4571dae5c5770c7908579d7634419382d78e2
2017-03-10 19:51:20 +00:00
Jan Henning
a3d15d9ae4 Bug 1335008 - Part 1 - Move PrivacyLevel.jsm to toolkit. r=mikedeboer
... so we can use it on Android, too. Also fix ESLint errors that are appearing at the new file location.

MozReview-Commit-ID: 3A3aoHm00RJ

--HG--
rename : browser/components/sessionstore/PrivacyLevel.jsm => toolkit/modules/sessionstore/PrivacyLevel.jsm
extra : rebase_source : 3c43dbe46d3f5b0ac567eb67a003f772bb907b06
2017-01-31 23:05:31 +01: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
Andrea Marchesini
14d32a0990 Bug 1280590 - nsICookieManager2.cookieExists must use the originAttributes, r=smaug 2016-09-30 08:24:21 +02:00
Carsten "Tomcat" Book
c89ca66d22 Backed out changeset 826cc48624a3 (bug 1280590) for windows m-oth and xpc crashes
--HG--
extra : rebase_source : 895634096f3c1e275ab4f74f1d93691f5b55e22c
2016-09-29 15:28:53 +02:00
Andrea Marchesini
f69927d55d Bug 1280590 - nsICookieManager2.cookieExists must use the originAttributes, r=smaug 2016-09-29 12:02:30 +02:00
Carsten "Tomcat" Book
baff2f0613 Backed out changeset 885e361d4c73 (bug 1280590) for xpcshell bustage 2016-09-28 15:08:45 +02:00
Andrea Marchesini
cd5d3f1870 Bug 1280590 - nsICookieManager2.cookieExists must use the originAttributes, r=smaug 2016-09-28 08:05:12 +02:00
Jonathan Hao
5f61825cd1 Bug 1283709 - Map SessionCookies by origin attributes. r=mikedeboer
MozReview-Commit-ID: IAuKZdVWgNl
2016-07-06 01:45:00 +08:00
Tim Huang
8ec727cd19 Bug 1267910 - Part 2: Update all existing functions of add() and getCookiesFromHost() to make them origin attributes aware. r=jdm, r=mratcliffe
--HG--
extra : rebase_source : 288c9cab8340c5cc06861d4f2c7ee43ae4de608e
2016-05-25 11:54:21 +08:00
Wes Kocher
2596f34110 Backed out 3 changesets (bug 1267910) for reports of it breaking session restore a=backout
Backed out changeset 5962f8e6d030 (bug 1267910)
Backed out changeset f8afc5cf9e0e (bug 1267910)
Backed out changeset cc202e0ac0dd (bug 1267910)
2016-05-20 21:15:17 -07:00
Tim Huang
ad550d017f Bug 1267910 - Part 2: Update all existing functions of add() and getCookiesFromHost() to make them origin attributes aware. r=jdm, r=mratcliffe
--HG--
extra : rebase_source : 3d8b306dfa83363c01c4db5d018c55fddf6d1595
2016-05-18 20:42:00 -04:00
Honza Bambas
2e65c432f0 Bug 1239671 - Don't let session store override persistent cookies, r=ehsan 2016-02-23 14:32:00 +01:00
Shu-yu Guo
64db2267cf Bug 1202902 - Mass replace toplevel 'let' with 'var' in preparation for global lexical scope. (rs=jorendorff) 2015-09-15 11:19:45 -07:00
Tim Taubert
aca4ef500c Bug 1156721 - Move restoreCookies() implementation to SessionCookies.jsm r=smacleod
Also, remove the try/catch clause as nsCookieService::Add() will only fail if the profile was already closed or we're OOM, aborting in those cases is absolutely fine.
2015-03-30 10:41:57 +02:00
Tim Taubert
cf757fc5fc Bug 950399 - SessionStore shouldn't forget domain cookies r=yoric 2015-01-15 11:22:21 +01:00
Birunthan Mohanathas
da44ab0e02 Bug 1038458 - Part 6: Flatten browser/components/sessionstore/src/ directory. r=mak
--HG--
rename : browser/components/sessionstore/src/ContentRestore.jsm => browser/components/sessionstore/ContentRestore.jsm
rename : browser/components/sessionstore/src/DocShellCapabilities.jsm => browser/components/sessionstore/DocShellCapabilities.jsm
rename : browser/components/sessionstore/src/FrameTree.jsm => browser/components/sessionstore/FrameTree.jsm
rename : browser/components/sessionstore/src/GlobalState.jsm => browser/components/sessionstore/GlobalState.jsm
rename : browser/components/sessionstore/src/PageStyle.jsm => browser/components/sessionstore/PageStyle.jsm
rename : browser/components/sessionstore/src/PrivacyFilter.jsm => browser/components/sessionstore/PrivacyFilter.jsm
rename : browser/components/sessionstore/src/PrivacyLevel.jsm => browser/components/sessionstore/PrivacyLevel.jsm
rename : browser/components/sessionstore/src/RecentlyClosedTabsAndWindowsMenuUtils.jsm => browser/components/sessionstore/RecentlyClosedTabsAndWindowsMenuUtils.jsm
rename : browser/components/sessionstore/src/SessionCookies.jsm => browser/components/sessionstore/SessionCookies.jsm
rename : browser/components/sessionstore/src/SessionFile.jsm => browser/components/sessionstore/SessionFile.jsm
rename : browser/components/sessionstore/src/SessionHistory.jsm => browser/components/sessionstore/SessionHistory.jsm
rename : browser/components/sessionstore/src/SessionMigration.jsm => browser/components/sessionstore/SessionMigration.jsm
rename : browser/components/sessionstore/src/SessionSaver.jsm => browser/components/sessionstore/SessionSaver.jsm
rename : browser/components/sessionstore/src/SessionStorage.jsm => browser/components/sessionstore/SessionStorage.jsm
rename : browser/components/sessionstore/src/SessionStore.jsm => browser/components/sessionstore/SessionStore.jsm
rename : browser/components/sessionstore/src/SessionWorker.js => browser/components/sessionstore/SessionWorker.js
rename : browser/components/sessionstore/src/SessionWorker.jsm => browser/components/sessionstore/SessionWorker.jsm
rename : browser/components/sessionstore/src/TabAttributes.jsm => browser/components/sessionstore/TabAttributes.jsm
rename : browser/components/sessionstore/src/TabState.jsm => browser/components/sessionstore/TabState.jsm
rename : browser/components/sessionstore/src/TabStateCache.jsm => browser/components/sessionstore/TabStateCache.jsm
rename : browser/components/sessionstore/src/Utils.jsm => browser/components/sessionstore/Utils.jsm
rename : browser/components/sessionstore/src/nsSessionStartup.js => browser/components/sessionstore/nsSessionStartup.js
rename : browser/components/sessionstore/src/nsSessionStore.js => browser/components/sessionstore/nsSessionStore.js
rename : browser/components/sessionstore/src/nsSessionStore.manifest => browser/components/sessionstore/nsSessionStore.manifest
2014-07-26 09:32:08 -07:00
Renamed from browser/components/sessionstore/src/SessionCookies.jsm (Browse further)