aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2013-01-08 14:23:50 -0800
committerIgor Minar2013-01-08 14:23:50 -0800
commit5b5f35d5e41a5930f7a685a02d0d20b8585a1420 (patch)
tree978d0d9b68bee3253c235cdb9e107ed0c5b9a931
parent14948cf5d97fbe0be6fc7f884af65fd73c50e572 (diff)
downloadangular.js-5b5f35d5e41a5930f7a685a02d0d20b8585a1420.tar.bz2
refactor($browser): remove faulty 20+ cookies warning
the warning is defunct (and the test is incorrect) so obviously nobody is using it and it just takes up space. also the browser behavior varies (ff and chrome allow up to 150 cookies, safari even more), so it's not very useful. Closes #1712
-rw-r--r--src/ng/browser.js9
-rw-r--r--test/ng/browserSpecs.js27
2 files changed, 5 insertions, 31 deletions
diff --git a/src/ng/browser.js b/src/ng/browser.js
index 39253483..9682cd28 100644
--- a/src/ng/browser.js
+++ b/src/ng/browser.js
@@ -276,14 +276,15 @@ function Browser(window, document, $log, $sniffer) {
} else {
if (isString(value)) {
cookieLength = (rawDocument.cookie = escape(name) + '=' + escape(value) + ';path=' + cookiePath).length + 1;
+
+ // per http://www.ietf.org/rfc/rfc2109.txt browser must allow at minimum:
+ // - 300 cookies
+ // - 20 cookies per unique domain
+ // - 4096 bytes per cookie
if (cookieLength > 4096) {
$log.warn("Cookie '"+ name +"' possibly not set or overflowed because it was too large ("+
cookieLength + " > 4096 bytes)!");
}
- if (lastCookies.length > 20) {
- $log.warn("Cookie '"+ name +"' possibly not set or overflowed because too many cookies " +
- "were already set (" + lastCookies.length + " > 20 )");
- }
}
}
} else {
diff --git a/test/ng/browserSpecs.js b/test/ng/browserSpecs.js
index 3f28c605..53ca2642 100644
--- a/test/ng/browserSpecs.js
+++ b/test/ng/browserSpecs.js
@@ -277,33 +277,6 @@ describe('browser', function() {
expect(browser.cookies().x).toEqual('shortVal');
});
-
- it('should log warnings when 20 cookies per domain storage limit is reached', function() {
- var i, str, cookieStr;
-
- for (i=0; i<20; i++) {
- str = '' + i;
- browser.cookies(str, str);
- }
-
- i=0;
- for (str in browser.cookies()) {
- i++;
- }
- expect(i).toEqual(20);
- expect(logs.warn).toEqual([]);
- cookieStr = document.cookie;
-
- browser.cookies('one', 'more');
- expect(logs.warn).toEqual([]);
-
- //if browser dropped a cookie (very likely), make sure that the cache is not out of sync
- if (document.cookie === cookieStr) {
- expect(size(browser.cookies())).toEqual(20);
- } else {
- expect(size(browser.cookies())).toEqual(21);
- }
- });
});