| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
gets uninstalled.
BUG=27938,39177
TEST=Unittest in extension_service_unitttest.cc
Review URL: http://codereview.chromium.org/1257005
Patch from Mattias Nissler.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42611 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
about changes to cookies.
This change will allow implementing the experimental cookie extension API, specifically the cookies.onChaned event
BUG=none
TEST=net_unittests
TBR=jochen@
Review URL: http://codereview.chromium.org/1287001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42586 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
TEST=valgrind test: unit should turn green
BUG=38398
BUG=39177
Review URL: http://codereview.chromium.org/1313003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42569 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
"Clear cookies, local storage and databases when an extension gets uninstalled."
BUG=39177
BUG=38398
Review URL: http://codereview.chromium.org/1210004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42520 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
gets uninstalled."
It introduced a memory leak, causing a regression on valgrind test: unit.
TBR=jochen
Review URL: http://codereview.chromium.org/1295001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42499 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
about changes to cookies.
This change will allow implementing the experimental cookie extension API, specifically the cookies.onChanged event
BUG=38398
TEST=net_unittests
Review URL: http://codereview.chromium.org/1023004
TBR=jochen@chromium.org
Review URL: http://codereview.chromium.org/1256003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42478 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cookies.
This change will allow implementing the experimental cookie extension API, specifically the cookies.onChanged event
BUG=38398
TEST=net_unittests
Review URL: http://codereview.chromium.org/1023004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42473 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=27938
TEST=Unittest in extension_service_unitttest.cc
Review URL: http://codereview.chromium.org/1095003
Patch from Mattias Nissler.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42467 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
explicit path set. This CL also ensures that we set the expiry info properly.
This means using CanonPath and CanonExpiration from cookie_monster.cc. Instead
of exposing those methods, I just expose a CanonicalCookie constructor that
takes a ParsedCookie.
R=pkasting
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/597031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38984 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, if the database has multiple cookies defined for the same (host, cookie name, cookie path), we will delete all but the most recently created cookie.
This step happens right after loading the cookie database.
I don't expect this to have any real impact on startup performance, since the cookie database is small, and compared to the cost of reading the DB from disk, should be cheap.
This CL also includes two other related changes:
(1) Added a histogram "Net.NumDuplicateCookiesInDb" that measures how common the need to remove duplicates is.
(2) If the in-memory store is ever found to contain duplicates after initializion, fail hard (crash).
The effect of this change will be users that had a bad database will get it fixed, and will no longer be sending duplicate cookies to servers.
-----------------------
Background:
-----------------------
Ok, so why does the corruption happen in the first place?
From what I can tell, the problem stems from how the interface between CookieMonster and the PersistentCookieStore is defined. Notably:
* It implements overwrites as "delete" + "insert" operations.
* It doesn't define the behavior when a "delete" or "insert" operation fails.
The steps that CookieMonster() runs through to overwrite a cookie is:
(a) Find the existing cookie, |old_cookie|, in the in-memory store.
(b) Delete |old_cookie| from the in-memory store.
(c) Ask the persistent cookie backing store to delete |old_cookie| (keyed by its creation time)
(d) Insert |new_cookie| into the in-memory store.
(e) Ask the persistent backing store to insert |new_cookie|.
This ordering assumes that no failures can happen during steps (c) and (e).
However in actuality, SQLitePersistentCookieStore swallows any errors it encounters writing to the DB, and does not attempt retries.
Here is one sequence of steps that could lead to your database getting hosed:
(1) Your cookie database becomes temporarily unwritable (maybe your home directory is network mounted and your kerberose ticket just expired).
(2) The browser gets a set-cookie to overwrite an existing cookie (perhaps a ping-back from gmail, which happen often).
Clearly steps (c) and (e) will now fail, since the database is offline. So the in-memory store will get changed, but the on-disk one won't.
(3) Now your cookie database becomes writable again (maybe you renewed the ticket).
(4) Another cookie update is received. This time, the update will cause us to insert a duplicate into the cookie database.
This happens because in step (c) the on-disk database is asked to delete the previous (at least according to the in-memory store) cookie. Well, the on-disk DB never wrote that value, so this has no effect, and the actual previous value remains. Next we insert the new value, kaboom.
A next step will be to re-work the PersistentCookieStore interface so SQLitePersistentCookieStore isn't as fragile to errors while overwriting.
BUG=17855
TEST=CookieMonsterTest.DontImportDuplicateCookies
Review URL: http://codereview.chromium.org/602029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38880 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The chrome frame failure appears to be unrelated.
Add some tests to CookieMonster for overwriting persistent cookies, and checking that the PersistentCookieStore interface is exercised correctly.
Review URL: http://codereview.chromium.org/600040
TBR=eroman@chromium.org
Review URL: http://codereview.chromium.org/596048
TBR=eroman@chromium.org
Review URL: http://codereview.chromium.org/604012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38728 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
even though this should be a strictly no-op change...
Add some tests to CookieMonster for overwriting persistent cookies, and checking that the PersistentCookieStore interface is exercised correctly.
Review URL: http://codereview.chromium.org/600040
TBR=eroman@chromium.org
Review URL: http://codereview.chromium.org/596048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38707 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
checking that the PersistentCookieStore interface is exercised correctly.
Review URL: http://codereview.chromium.org/600040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38694 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
session cookies.
Introduces a new CookiePolicy result code OK_FOR_SESSION_ONLY.
R=eroman
BUG=34571
TEST=none
Review URL: http://codereview.chromium.org/577013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38179 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/573011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38112 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify CookiePolicy to work asynchronously
This change will enable us to prompt the user before setting a cookie. While
we only need to prompt before setting, we actually need to make both
CanSetCookie and CanGetCookies asynchronous. This is necessary in order to
preserve FIFO ordering since the value returned by GetCookies depends on the
changes made to the cookie DB by SetCookie.
This change also includes some simplification of CookieStore. Instead of N
virtual functions, I distilled it down to only 4. The remaining functions are
instead expressed in terms of those.
While studying all the places where we currently use CookiePolicy, I found that
some of them were not appropriate. After discussing with Amit, I decided to
remove the policy checks in URLRequestAutomationJob. See the comments in the
code regarding this.
I changed the signature of CookieMonster::GetRawCookies to GetAllCookiesForURL
to better match GetAllCookies. Related to this change webkit/glue/webcookie.h
grows a constructor that takes a CanonicalCookie to help clean up some code.
On the Chrome side, ChromeURLRequestContext now has a ChromeCookiePolicy
object. That object is threadsafe ref counted because it is passed between the
UI and IO threads. It is responsible for implementing the queuing logic
described above. It will also in the future trigger the Chrome UI code to
actually show the setcookie prompt.
Please review the state machinery changes in URLRequestHttpJob carefully.
R=eroman
BUG=34331
TEST=no tests yet for prompting.
Review URL: http://codereview.chromium.org/564045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38028 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify CookiePolicy to work asynchronously
This change will enable us to prompt the user before setting a cookie. While we only need to prompt before setting, we actually need to make both CanSetCookie and CanGetCookies asynchronous. This is necessary in order to preserve FIFO ordering since the value returned by GetCookies depends on the changes made to the cookie DB by SetCookie.
This change also includes some simplification of CookieStore. Instead of N virtual functions, I distilled it down to only 4. The remaining functions are instead expressed in terms of those.
While studying all the places where we currently use CookiePolicy, I found that some of them were not appropriate. After discussing with Amit, I decided to remove the policy checks in URLRequestAutomationJob. See the comments in the code regarding this.
I changed the signature of CookieMonster::GetRawCookies to GetAllCookiesForURL to better match GetAllCookies. I also filed a bug about making it even closer in functionality. Related to this change webkit/glue/webcookie.h grows a constructor that takes a CanonicalCookie to help clean up some code.
On the Chrome side, ChromeURLRequestContext now has a ChromeCookiePolicy object. That object is threadsafe ref counted because it is passed between the UI and IO threads. It is responsible for implementing the queuing logic described above. It will also in the future trigger the Chrome UI code to actually show the setcookie prompt.
Please review the state machinery changes in URLRequestHttpJob carefully.
R=eroman
BUG=34331
TEST=no tests yet for prompting.
Review URL: http://codereview.chromium.org/567015
TBR=darin@chromium.org
Review URL: http://codereview.chromium.org/562037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38002 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change will enable us to prompt the user before setting a cookie. While we only need to prompt before setting, we actually need to make both CanSetCookie and CanGetCookies asynchronous. This is necessary in order to preserve FIFO ordering since the value returned by GetCookies depends on the changes made to the cookie DB by SetCookie.
This change also includes some simplification of CookieStore. Instead of N virtual functions, I distilled it down to only 4. The remaining functions are instead expressed in terms of those.
While studying all the places where we currently use CookiePolicy, I found that some of them were not appropriate. After discussing with Amit, I decided to remove the policy checks in URLRequestAutomationJob. See the comments in the code regarding this.
I changed the signature of CookieMonster::GetRawCookies to GetAllCookiesForURL to better match GetAllCookies. I also filed a bug about making it even closer in functionality. Related to this change webkit/glue/webcookie.h grows a constructor that takes a CanonicalCookie to help clean up some code.
On the Chrome side, ChromeURLRequestContext now has a ChromeCookiePolicy object. That object is thread-safe ref counted because it is passed between the UI and IO threads. It is responsible for implementing the queuing logic described above. It will also in the future trigger the Chrome UI code to actually show the set-cookie prompt.
Please review the state machinery changes in URLRequestHttpJob carefully.
R=eroman
BUG=34331
TEST=no tests yet for prompting.
Review URL: http://codereview.chromium.org/567015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37998 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
GC upon raw cookies request.
TBR=yurys
Review URL: http://codereview.chromium.org/564039
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37985 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/565035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37978 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
http and https URLs. For other schemes (like chrome-extension), use the host
itself as the effective TLD.
BUG=31867
Review URL: http://codereview.chromium.org/536017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36035 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Functions that take a printf-style format get a new annotation, which
produces a bunch of compiler warnings when you use printf impoperly.
This change adds the annotations and fixes the warnings.
We now must use PRId64 for 64-bit numbers and the PRIsz for size_t.
Review URL: http://codereview.chromium.org/339059
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32600 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
TBR=yurys
Review URL: http://codereview.chromium.org/348021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30583 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
TBR=yurys
Review URL: http://codereview.chromium.org/342057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30580 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/350001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30578 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/294025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30457 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we have several uses of %I64d in format strings to indicate
a 64-bit value. This does not work on Mac or Linux, where 'I'
indicates the use of locale specific digits.
Instead, we introduce base/format_macros.h which mimic the C99
standard macros for 64-bit values in a cross-platform manner.
Dean pointed out that V8 is handling this themselves rather than use
inttypes.h. Maybe we'll end up going down the same path but, for the
moment, we'll try and do it the 'correct' way and see how it works
out.
http://codereview.chromium.org/147154
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19500 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Pull in googleurl r107, which includes the new CanonicalizeHostVerbose()
function:
http://code.google.com/p/google-url/source/detail?r=107
- Atomically update Chromium to make use of this new function. This allows us
to extract better information about IP addresses using fewer, and cleaner, calls
to googleurl.
- Also, change a call to CanonicalizeIPAddress() to stay compatible with r107.
The upshot of all this is, Chrome will no longer try to connect to IPv4
addresses with overflow "http://192.168.0.257", or hostnames surrounded by
square brackets "http://[google.com]"
BUG=none
TEST={unit_tests,googleurl_unittests,net_unittests}
Review URL: http://codereview.chromium.org/146053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19076 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
trunk.BUG=8850
Review URL: http://codereview.chromium.org/118011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17501 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/113470
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16163 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
BUG=10502
Review URL: http://codereview.chromium.org/87047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16158 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
Modify CookieMonster to support overriding the "cookieable schemes".
Review URL: http://codereview.chromium.org/115204
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16083 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/49019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12542 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/42102
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11502 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
Normalize end of file newlines in net/. All files end in a single newline.
Review URL: http://codereview.chromium.org/43079
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11442 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This doesn't do anything special to handle ipv6, dotless ip address, etc.
BUG=3699
Review URL: http://codereview.chromium.org/18657
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8551 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes one bug where a cookie like:
A="BBB" ;
Would be "BBB"; in all other browser, but
"BBB" ; in Chrome. Additionally it fixes creating unintentional (but harmless) empty attributes.
We had previously tried to match Firefox, but after long discussions we decided it makes more sense to match Internet Explorer and Safari. This means not explicitly handling quoted-string as proposed in the newer RFCs.
Before: A="B;C"; -> A="B;C";
After: A="B;C"; -> A="B;
Review URL: http://codereview.chromium.org/17045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7810 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/17014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7499 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
javascript from setting a new httponly cookie, and more importantly from overwriting httponly cookies.
Patch from Marius Schilder.
Review URL: http://codereview.chromium.org/11275
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5700 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
vector growth / copies for the typical cookie database.
Review URL: http://codereview.chromium.org/9437
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4889 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
BUG=2906
Review URL: http://codereview.chromium.org/8753
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4354 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
style fixes (function arguments on one line, remove braces on some single-line loop bodies). Remove some code to count how many cookies we garbage collected, since we never do anything with those numbers. Remove some TODOs that we shouldn't do (per deanm).
This is a by-product of my in-progress cookie fixes.
Review URL: http://codereview.chromium.org/8683
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4247 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/7995
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4022 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
| |
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1287 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
platforms
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1164 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
| |
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1156 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
platforms
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1154 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
namespace in favor of the net namespace.
This is a purely mechanical change. There should be no logic changes.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192 0039d316-1c4b-4281-b951-d872f2087c98
|
|
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14 0039d316-1c4b-4281-b951-d872f2087c98
|