summaryrefslogtreecommitdiffstats
path: root/net/disk_cache
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup histogram classes mixing SetFlags into FactoryGet argumentsjar@chromium.org2009-12-281-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Generic cleanup of histogram class, renaming *FactoryGet to FactoryGet, along with reformatting. The macros were cleaned up to use common sub-macros rather than repeating code as much. Removed ThreadSafeHistogram (and associated ASSET_HISTOGRAM macros) since this class was not getting used. I introduced UMA_HISTOGRAM_ENUMERATION to support the common use of LinearHistograms to count various enumerated values. I added a Flags argument to all the FactoryGet routines to help avoid needing to call SetFlags each time a new sample is Add()ed. This also simplifies the code. This will all help prepare for a "don't histogram at all" macro setting so that I can test the impact of the histogram macro calls on performance (since there are now so many active histograms). BUG=31206 r=raman.tenneti Review URL: http://codereview.chromium.org/515033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35295 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Add a test to make sure that the cachervargas@google.com2009-12-184-34/+8
| | | | | | | | | | | | | | | | works as expected with synchronous responses. As an added bonus, now changing the default test mode of kRangeGET_TransactionOK doesn't end up with some tests hanging, so it is easy to manually verify that all tests work as expected. BUG=26729 TEST=unittests Review URL: http://codereview.chromium.org/501099 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34914 0039d316-1c4b-4281-b951-d872f2087c98
* Use factory to create histograms, and refcounts to track lifetimesjar@chromium.org2009-12-065-7/+53
| | | | | | | | | | | | | | | This is CL patch 377028 by Raman Tenneti, with minor changes to make the try-bots happier. It is cleanup that better ensures lifetimes of histograms (making it harder for users to abuse them). bug=16495 (repairs leak induced by the first landing) bug=18840 (should make leaks less possible) tbr=raman.tenneti Review URL: http://codereview.chromium.org/462027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33933 0039d316-1c4b-4281-b951-d872f2087c98
* Add compiler-specific "examine printf format" attributes to printfs.evan@chromium.org2009-11-201-2/+3
| | | | | | | | | | | | 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
* Fix integer overflow in calculation of sparse I/O extent.cevans@chromium.org2009-11-101-1/+1
| | | | | | | | | BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/372076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31532 0039d316-1c4b-4281-b951-d872f2087c98
* Second patch in making destructors of refcounted objects private.jam@chromium.org2009-11-053-4/+7
| | | | | | | | BUG=26749 Review URL: http://codereview.chromium.org/368001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31165 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: New interface that enables asynchronous completionrvargas@google.com2009-11-059-6/+239
| | | | | | | | | | | of any operation that may block. BUG=26730 TEST=none Review URL: http://codereview.chromium.org/355028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31160 0039d316-1c4b-4281-b951-d872f2087c98
* Don't hang during DiskCacheEntryTest.CancelSparseIO on infinitely fast disks.dkegel@google.com2009-10-281-1/+9
| | | | | | Review URL: http://codereview.chromium.org/341006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30291 0039d316-1c4b-4281-b951-d872f2087c98
* Remove deprecated CommandLine(std::wstring) ctor.evan@chromium.org2009-10-261-1/+1
| | | | | | | | | | | Add a ctor for creating a CommandLine for carrying arguments; convert all the users to either that or the FilePath version. BUG=24672 Review URL: http://codereview.chromium.org/329017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30117 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Fix a race accessing a file's reference counterrvargas@google.com2009-10-211-3/+10
| | | | | | | | | | | from a worker thread. BUG=24307 TEST=current unit tests / valgrind Review URL: http://codereview.chromium.org/309001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29720 0039d316-1c4b-4281-b951-d872f2087c98
* Mark some disabled tests as flaky to increase test coverage.phajdan.jr@chromium.org2009-10-161-3/+3
| | | | | | | | | | | | When a test doesn't hang or crash, it can run on the bots and on developers' machines. BUG=none TEST=none Review URL: http://codereview.chromium.org/269104 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29279 0039d316-1c4b-4281-b951-d872f2087c98
* Final patch to convert disk cache to using FilePath instead oftony@chromium.org2009-10-1510-85/+59
| | | | | | | | | | | wstring. After this patch, I'm able to start chrome in a user data dir with non-ascii characters on non-utf8 systems. BUG=24444 Review URL: http://codereview.chromium.org/267085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29136 0039d316-1c4b-4281-b951-d872f2087c98
* A couple new io buffers that encapsulate more data and are therefore easier ↵vandebo@chromium.org2009-10-143-33/+21
| | | | | | | | | | | to use and easier to reason about. Inspired by RequestHeaders and ResponseHeaders in http_network_transaction.h Separated out of the refactoring of HttpNetworkTransaction to support pipelining. (http://codereview.chromium.org/249031) BUG=13289 TEST=none Review URL: http://codereview.chromium.org/264025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28978 0039d316-1c4b-4281-b951-d872f2087c98
* Convert SysInfo::AmountOfFreeDiskSpace from wstring to FilePath.tony@chromium.org2009-10-141-1/+1
| | | | | | | | BUG=24672 Review URL: http://codereview.chromium.org/276012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28927 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Re-enable DiskCacheEntryTest.CancelSparseIOrvargas@google.com2009-10-141-2/+2
| | | | | | | | | | | | | | | | I still don't know why it failed, but the only difference that I could see in this test between xp and vista is that xp accepts a lot of small IOs before returning pending, so this change results in similar behavior in both platforms and a faster run on xp. BUG=23862 TEST=none Review URL: http://codereview.chromium.org/273024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28921 0039d316-1c4b-4281-b951-d872f2087c98
* Move disk_cache::MappedFile to use FilePath instead of wstring.tony@chromium.org2009-10-1312-33/+32
| | | | | | | | | | | Also add some FilePath methods in disk_cache_util.h and obsolete the old. BUG=24444 Review URL: http://codereview.chromium.org/266069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28910 0039d316-1c4b-4281-b951-d872f2087c98
* Convert BlockFiles to use FilePath instead of wstring.tony@chromium.org2009-10-1310-48/+43
| | | | | | | | BUG=24444 Review URL: http://codereview.chromium.org/274012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28873 0039d316-1c4b-4281-b951-d872f2087c98
* Step 2 in porting disk cache to using FilePath.tony@chromium.org2009-10-127-9/+16
| | | | | | | | BUG=24444 Review URL: http://codereview.chromium.org/270066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28742 0039d316-1c4b-4281-b951-d872f2087c98
* Start migrating the disk cache to using FilePath.tony@chromium.org2009-10-1211-71/+99
| | | | | | | | | | This converts BackendImpl to using FilePath. BUG=24444 Review URL: http://codereview.chromium.org/261045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28711 0039d316-1c4b-4281-b951-d872f2087c98
* Move more ICU-dependent stuff from base into base/i18n. Some test stuff alsobrettw@chromium.org2009-10-091-1/+1
| | | | | | | | | | | | depended on this, so to make the DEPS work out, I made a new base/test directory where I moved the testing-related files into a new directory base/test. TEST=none BUG=none Review URL: http://codereview.chromium.org/266038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28569 0039d316-1c4b-4281-b951-d872f2087c98
* Disable CancelSparseIO unit test while I see what's going on.rvargas@google.com2009-10-081-1/+1
| | | | | | | | | | BUG=none TEST=none TBR=nsylvain Review URL: http://codereview.chromium.org/265051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28481 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Add a method to cancel pending sparse operations.rvargas@google.com2009-10-088-1/+155
| | | | | | | | | | | | | | | | | | | The sparse IO methods require exclusive use of the cache entry and they complain when that requirement is violated. When the user cancels a request and reissues another one to the same entry, we may be waiting for the previous operation to finish when we receive a new IO request, so we fail. This CL add a way for the HTTP cache to cancel IO operations and get a notification when the disk cache is able to operate on that entry again. BUG=23862 TEST=unittests Review URL: http://codereview.chromium.org/256090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28475 0039d316-1c4b-4281-b951-d872f2087c98
* Handle reading to the end of a sparse entryhclam@chromium.org2009-10-011-1/+1
| | | | | | | | | | | | TEST=run chrome with --enable-byte-range-support --incognito and watch a video in http://tinyvid.tv/, seeking should be fine. http_cache::PartialData used to read a length of zero when reading has reached the end. The zero parameter will cause MemEntryImpl to complain about invalid argument, so early return for the case that we know we have nothing to read. Review URL: http://codereview.chromium.org/255034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27776 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: End the experiment and use the new evictionrvargas@google.com2009-09-295-96/+78
| | | | | | | | | | | | algorithm by default. BUG=none TEST=none Review URL: http://codereview.chromium.org/248022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27514 0039d316-1c4b-4281-b951-d872f2087c98
* Disable flaky DiskCacheBackendTest.NewEvictionDisableSuccess4.phajdan.jr@chromium.org2009-09-161-1/+3
| | | | | | | | | | This is #9 flaky test and rising (#5 in tests failing recently). TBR=rvargas Review URL: http://codereview.chromium.org/193127 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26345 0039d316-1c4b-4281-b951-d872f2087c98
* Avoids the use of "namespace using-directives" in a few places.thakis@chromium.org2009-09-071-2/+1
| | | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/183008 Patch from tfarina. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25607 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing bugs in sparse cache when dealing with GetAvailableRange queries not ↵hclam@chromium.org2009-09-022-5/+24
| | | | | | | | | | | | | | | | | aligned TEST=net_unittests --gtest_filter=DiskCacheEntryTest.PartialSparseEntry In handling GetAvailableRange() queries, if the start offset is not aligned to 1KB, there was some strange behaviors: 1. The start offset found is smaller than the input offset 2. Number of continus bytes doesn't take into account offset in a block. This patch will fix the above problems. Review URL: http://codereview.chromium.org/186002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25225 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing a crash in disk_cache::SparseControl::UpdateRange()hclam@chromium.org2009-09-023-1/+15
| | | | | | | | | | | | | | | TEST=net_unittests --gtest_filter=DiskCacheEntryTest::PArtialSparseEntry If we do a partial write with the following criteria, disk_cache::SparseControl will crash: 1. first_byte and last_byte in the same 1KB block 2. first_byte % 1024 != 0 3. (first_byte >> 10) % 32 == 31 Review URL: http://codereview.chromium.org/176067 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25134 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Function re-ordering. No code change.rvargas@google.com2009-08-313-94/+101
| | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/182023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24900 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Add a histogram to measure the latency ofrvargas@google.com2009-08-282-13/+20
| | | | | | | | | | | asynchronous IO. BUG=none TEST=none Review URL: http://codereview.chromium.org/178023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24829 0039d316-1c4b-4281-b951-d872f2087c98
* Fix DiskCacheEntryTest.MemoryOnlyDoomSparseEntryhclam@chromium.org2009-08-272-2/+2
| | | | | | | | | | | | | | BUG=12258 TEST=DiskCacheEntryTest.MemoryOnlyDoomSparseEntry The sequence that caused this test to break was to doom to the entry while it is still opened. Since closing the parent entry only delete itself and then child entries are not cleaned up. This is corrected by using InternalDoom() for destruction. Review URL: http://codereview.chromium.org/174592 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24594 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Reduce the chance of failing a unit test under Posix.rvargas@google.com2009-08-251-4/+15
| | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/174374 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24246 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Implement asynchronous IO for Posix.rvargas@google.com2009-08-219-47/+326
| | | | | | | | | | BUG=16507 TEST=Unittests Review URL: http://codereview.chromium.org/173170 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23990 0039d316-1c4b-4281-b951-d872f2087c98
* Revert cl 23919 to investigate valgrind failures.rvargas@google.com2009-08-219-312/+45
| | | | | | | | | | | TBR=willchan TEST=none BUG=none Review URL: http://codereview.chromium.org/174205 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23926 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Close the experiment for new users.rvargas@google.com2009-08-211-20/+15
| | | | | | | | | | | | Also, make sure that only the main cache runs an experiment. BUG=none TEST=none Review URL: http://codereview.chromium.org/173132 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23923 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Implement asynchronous IO for Posix.rvargas@google.com2009-08-219-45/+312
| | | | | | | | | | BUG=16507 TEST=Unittests Review URL: http://codereview.chromium.org/171085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23919 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Lower the definition of a loaded system fromrvargas@google.com2009-08-113-15/+19
| | | | | | | | | | | | | | | 10 pending operations to 5. Data from the Beta channel shows that for all group sizes except one, the 99.90% cutoff of number of pending operations falls below 5 (in fact, below 3). BUG=none TEST=none Review URL: http://codereview.chromium.org/164355 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23120 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: cleanup of OpenBlockFile.rvargas@google.com2009-08-113-7/+31
| | | | | | | | | | | | Don't add the file to the list of open files until it passes all sanity checks. BUG=18174 TEST=unittest Review URL: http://codereview.chromium.org/164336 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23090 0039d316-1c4b-4281-b951-d872f2087c98
* Try again: Check blockfile size before attempting to read the header.mattm@chromium.org2009-08-083-18/+53
| | | | | | | | | | | Reading past the last page of a mmapped file will SIGBUS. BUG=18174 TEST=truncate Default/Cache/data_* to zero bytes, launch chrome, try to load a website. It shouldn't crash. Review URL: http://codereview.chromium.org/165174 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22843 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Check blockfile size before attempting to read the header."mattm@chromium.org2009-08-072-26/+0
| | | | | | | | | | | | The unittest isn't liked by windows. This reverts commit c0be0e8cda2bfe9c1eccb662ccdad9a2b7768132. TBR=rvargas Review URL: http://codereview.chromium.org/165157 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22786 0039d316-1c4b-4281-b951-d872f2087c98
* Check blockfile size before attempting to read the header.mattm@chromium.org2009-08-072-0/+26
| | | | | | | | | | | Reading past the last page of a mmapped file will SIGBUS. BUG=18174 TEST=truncate Default/Cache/data_* to zero bytes, launch chrome, try to load a website. It shouldn't crash. Review URL: http://codereview.chromium.org/164132 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22781 0039d316-1c4b-4281-b951-d872f2087c98
* Relanding Coverity fixes from http://codereview.chromium.org/159862 ↵phajdan.jr@chromium.org2009-08-061-1/+1
| | | | | | | | | | | | | excluding the broken ones. The change of GURL -> const GURL& caused some nasty crash and the change got reverted. TEST=none BUG=none Review URL: http://codereview.chromium.org/164095 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22682 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Don't depend on the backend being enabled torvargas@google.com2009-08-064-21/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | be able to return the key of an open entry. Whenever a critical corruption is detected by the disk cache, the backend disables itself and starts failing all requests until it's able to re-create the backing store. Key's longer than 928 bytes are not stored inside the entry itself, so a file object is required to access them. The backend will reject any request for a file object after it is disabled, so a user's request for the key of an open entry will also fail. Now we keep a pointer to the related file object (if needed) so that we don't have to ask the backend for it when the user requests the current key. BUG=9952 TEST=unittest Review URL: http://codereview.chromium.org/165030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22637 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of r22559.aa@chromium.org2009-08-061-1/+1
| | | | | | | | | | | | | | | | | | This caused an easily reproducible crash: 1. Start with a fresh profile 2. Navigate to google.com 3. Restart 4. Navigate to google.com 5. crash The change from pass-by-value to pass-by-ref in fav_icon_helper.* seems to be to blame, but I can't see it right off. TBR=phajdan.jr@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22595 0039d316-1c4b-4281-b951-d872f2087c98
* Bunch of Coverity fixes, rather minor severity.phajdan.jr@chromium.org2009-08-061-1/+1
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/159862 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22559 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Open the disk cache experiment for new users.rvargas@google.com2009-08-013-9/+25
| | | | | | | | | | | | Also, fix the code that makes the unit tests have consistent results. BUG=none TEST=none Review URL: http://codereview.chromium.org/160485 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22238 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Remove remaining uses of RankingsNode.pointer.rvargas@google.com2009-07-3010-46/+117
| | | | | | | | | | | | | We now have a map of open entries so we don't need to do a lookup through the rankings node anymore. This simplifies the 64 bit version of the code. BUG=17881 TEST=unittests Review URL: http://codereview.chromium.org/159643 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22074 0039d316-1c4b-4281-b951-d872f2087c98
* Assorted fixes for 64-bit.deanm@chromium.org2009-07-281-2/+2
| | | | | | | Review URL: http://codereview.chromium.org/160288 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21891 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Delete chained block files when they become empty.rvargas@google.com2009-07-284-22/+121
| | | | | | | | | | | | | | | We were leaving empty block files in the chain, and worst of all, not reusing them because we were thinking that these files were "almost full". Now we also check for empty files when the cache starts. BUG=16740 TEST=unittest. Review URL: http://codereview.chromium.org/159451 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21762 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Avoid restarting the cache while it may be in use.rvargas@google.com2009-07-243-5/+19
| | | | | | | | | | | | | | Now the code that releases resources runs from the message loop so that methods can cause the cache to disable itself while still being able to touch internal state. BUG=17604 TEST=unittests. Review URL: http://codereview.chromium.org/159327 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21550 0039d316-1c4b-4281-b951-d872f2087c98