Commit Graph

64 Commits

Author SHA1 Message Date
Mark Banner
3475182904 Bug 1608272 - Remove 'this' as the second argument to 'ChromeUtils.import', use object destructuring instead (application changes). r=geckoview-reviewers,Gijs,agi
Differential Revision: https://phabricator.services.mozilla.com/D104684
2021-02-11 22:02:15 +00:00
Andrea Marchesini
aed7c3bd35 Bug 1638358 - Cookie Schemeful Same-Site - part 3 - update add/addNative methods, r=mayhemer,remote-protocol-reviewers,marionette-reviewers,maja_zf,MattN,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D75627
2020-06-02 13:49:27 +00:00
Csoregi Natalia
80d9cd436c Backed out 7 changesets (bug 1640405, bug 1638358) for failures on browser_webconsole_network_messages_status_code.js. CLOSED TREE
Backed out changeset ef5f7479ddf8 (bug 1640405)
Backed out changeset 286e0c83eb30 (bug 1638358)
Backed out changeset 89e396b2896e (bug 1638358)
Backed out changeset 33ad5fa05209 (bug 1638358)
Backed out changeset d213264c1379 (bug 1638358)
Backed out changeset 6bc05236afb4 (bug 1638358)
Backed out changeset 87e9d0ed3982 (bug 1638358)
2020-06-02 15:16:42 +03:00
Andrea Marchesini
bb142bc869 Bug 1638358 - Cookie Schemeful Same-Site - part 3 - update add/addNative methods, r=mayhemer,remote-protocol-reviewers,marionette-reviewers,maja_zf,MattN,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D75627
2020-06-02 09:13:51 +00:00
Razvan Maries
8b85757eae Backed out 6 changesets (bug 1638358) for perma failures on browser_webconsole_navigate_to_parse_error.js. CLOSED TREE
Backed out changeset beb85cf281d5 (bug 1638358)
Backed out changeset 39f2e21623aa (bug 1638358)
Backed out changeset 2c873c72bf1f (bug 1638358)
Backed out changeset e91292c7c719 (bug 1638358)
Backed out changeset 0219ef931cd9 (bug 1638358)
Backed out changeset 4ac06f3992f4 (bug 1638358)
2020-06-02 00:24:46 +03:00
Andrea Marchesini
7ac10a6d8d Bug 1638358 - Cookie Schemeful Same-Site - part 3 - update add/addNative methods, r=mayhemer,remote-protocol-reviewers,marionette-reviewers,maja_zf,MattN,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D75627
2020-06-01 17:59:13 +00:00
Noemi Erli
31652de3f9 Backed out 6 changesets (bug 1638358) for causing failures in test_Chrome_cookies.js CLOSED TREE
Backed out changeset 4e8fbe01aa38 (bug 1638358)
Backed out changeset 532731e94bb2 (bug 1638358)
Backed out changeset fad2ba760157 (bug 1638358)
Backed out changeset 932a3fdbd07c (bug 1638358)
Backed out changeset 05a62901a3f5 (bug 1638358)
Backed out changeset cddeada5c4a6 (bug 1638358)
2020-06-01 19:45:46 +03:00
Andrea Marchesini
b4cb833817 Bug 1638358 - Cookie Schemeful Same-Site - part 3 - update add/addNative methods, r=mayhemer,remote-protocol-reviewers,marionette-reviewers,maja_zf,MattN,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D75627
2020-06-01 11:43:19 +00:00
Dorel Luca
d6e8a26ed6 Backed out 6 changesets (bug 1638358) for XPCShell failures in netwerk/cookie/test/unit/test_schemeMap.js. CLOSED TREE
Backed out changeset 745eab35e851 (bug 1638358)
Backed out changeset a45df1876e37 (bug 1638358)
Backed out changeset 1a85cc92d2fb (bug 1638358)
Backed out changeset 2156294cb158 (bug 1638358)
Backed out changeset 31101054c52c (bug 1638358)
Backed out changeset d284b50551ab (bug 1638358)
2020-06-01 14:38:22 +03:00
Andrea Marchesini
9542c15aa9 Bug 1638358 - Cookie Schemeful Same-Site - part 3 - update add/addNative methods, r=mayhemer,remote-protocol-reviewers,marionette-reviewers,maja_zf,MattN,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D75627
2020-06-01 10:28:51 +00:00
Andrea Marchesini
1ec6d0ac63 Bug 1624146 - Cookie code refactoring - part 10 - CookieService under mozilla::net, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D67759
2020-04-06 12:26:14 +00:00
Ehsan Akhgari
b2859185fc Bug 1595934 - Make nsICookieManager cookie enumerators return Array<nsICookie> instead of nsISimpleEnumerator; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D52761
2019-12-03 17:08:25 +00:00
Daniel Varga
cadfc27039 Backed out changeset afe80b4ff889 (bug 1595934) Requested by ehsan to see if it fixex bug 1597915. On a CLOSED TREE 2019-11-22 02:01:51 +02:00
Ehsan Akhgari
2310616795 Bug 1595934 - Make nsICookieManager cookie enumerators return Array<nsICookie> instead of nsISimpleEnumerator; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D52761
2019-11-17 07:21:14 +00:00
dennisschagt
a314434db5 Bug 1556151 - SessionStore: Save and restore cookie.sameSite flag r=mikedeboer
Differential Revision: https://phabricator.services.mozilla.com/D38792
2019-07-24 20:02:38 +00:00
Victor Porof
8eb72fd3fc Bug 1561435 - Format browser/components/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D36042
2019-07-05 09:53:32 +02:00
Andrea Marchesini
5cde15b155 Bug 1554464 - Merge nsICookie2 and nsICookie in 1 single interface, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D33031
2019-05-31 09:36:44 +00:00
Andrea Marchesini
da871a46a1 Bug 1551798 - Rename nsICookie2.SAMESITE_UNSET to nsICookie2.SAMESITE_NONE, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D31214
2019-05-29 15:55:03 +00:00
arthur.iakab
f6d085aa58 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
f2a2bcb708 Bug 1551798 - Rename nsICookie2.SAMESITE_UNSET to nsICookie2.SAMESITE_NONE, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D31214
2019-05-24 15:18:49 +00:00
Andrea Marchesini
490dc4db93 Bug 1260399 - Remove deprecated messages in nsICookieManager methods - part 3 - nsICookieManager.cookieExists, r=ehsan 2018-09-24 11:37:57 +02:00
Andrea Marchesini
624a129768 Bug 1260399 - Remove deprecated messages in nsICookieManager methods - part 1 - nsICookieManager.add(), r=ehsan 2018-09-24 11:37:56 +02:00
Mark Banner
462116b7f9 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
2018-08-31 05:59:17 +00:00
Kris Maglione
f6a4413b4c Bug 1484496: Part 5a - Convert browser/ nsISimpleEnumerator users to use JS iteration. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D3729
2018-08-18 19:27:33 -07:00
Mark Banner
9723b146c2 Bug 1478308 - Remove unnecessary ChromeUtils.imports in browser/ r=mikedeboer
MozReview-Commit-ID: BYTDdLU2HoM
2018-07-25 09:10:07 +01:00
Narcis Beleuzu
c2c876bd2a 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
adf561b1ad Bug 1478308 - Remove unnecessary ChromeUtils.imports in browser/ r=mikedeboer
MozReview-Commit-ID: BYTDdLU2HoM
2018-07-25 09:10:07 +01:00
Mike de Boer
1b45f26475 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
2018-05-17 19:09:08 +02:00
Kris Maglione
b3990a2d91 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
2018-04-24 20:18:09 -07:00
Florian Quèze
f1a55f73f8 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
272cee1e65 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
2018-02-06 09:36:57 -08:00
Kris Maglione
0bb74efdf1 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
2018-01-29 15:20:18 -08:00
Cosmin Sabou
f09d6d985d 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
fd67f090b2 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
2018-01-29 15:20:18 -08:00
Brindusan Cristian
483ba301cb 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
683a97d172 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
2018-01-29 15:20:18 -08:00
Nicole Byer
805628be4e 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
5b70a21197 Bug 1366213: Part 2 - Make session restore component switch to observe new topic 'session-cookie-changed' instead of 'cookie-changed'. r=mikedeboer 2017-06-30 12:09:31 -07:00
Will Wang
2b998772a1 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
d3c36892fa Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +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
Florian Queze
9b4f73599f Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +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
Tim Taubert
bfabacfbd3 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
494458c7cb 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
a40eda9c9e 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
e20b9ee0f3 Bug 1311347 - Enable eslint of browser/components/sessionstore/. Manual fixes. r=jaws
MozReview-Commit-ID: AupJNLZJ2Ye
2017-03-13 10:32:03 +00:00
Mark Banner
03b4896b94 Bug 1311347 - Enable eslint of browser/components/sessionstore/. Autofix changes. r=jaws
MozReview-Commit-ID: 5LKHbcmjSy
2017-03-10 19:51:20 +00:00
Jan Henning
9755aa98b0 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
2017-01-31 23:05:31 +01:00
Geoff Brown
131dda1304 Bug 1313397 - Move browser/components/sessionstore/Utils.jsm to toolkit/modules; r=mikedeboer 2016-11-02 10:56:20 -06:00