summaryrefslogtreecommitdiffstats
path: root/net/url_request/url_request_throttler_manager.h
Commit message (Collapse)AuthorAgeFilesLines
* Move some files from base to base/memory.levin@chromium.org2011-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw_scoped_refptr_mismatch_checker.h ref_counted.cc ref_counted.h ref_counted_memory.cc ref_counted_memory.h ref_counted_unittest.cc scoped_callback_factory.h scoped_comptr_win.h scoped_handle.h scoped_native_library.cc scoped_native_library.h scoped_native_library_unittest.cc scoped_nsobject.h scoped_open_process.h scoped_ptr.h scoped_ptr_unittest.cc scoped_temp_dir.cc scoped_temp_dir.h scoped_temp_dir_unittest.cc scoped_vector.h singleton.h singleton_objc.h singleton_unittest.cc linked_ptr.h linked_ptr_unittest.cc weak_ptr.cc weak_ptr.h weak_ptr_unittest.cc BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6714032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
* Add an opt-out header for HTTP throttling. Never throttle for localhost.joi@chromium.org2011-03-251-0/+13
| | | | | | | | | | | | | | | | | Added net::IsLocalhost() function to net/base/net_utils.h Unit tests for the above. Also fix flakiness in the ReceivedContentMalformed test that was caused by non-zero jitter. Modify back-off policy to ignore first 4 errors to help avoid back-off from erroneously kicking in on flaky connections. Make maximum back-off period 15 minutes instead of 60. Added documentation of results of analyzing behavior this new policy will give. Add a simple server for manual testing of the throttling feature. BUG=66062 TEST=net_unittests Review URL: http://codereview.chromium.org/6711046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79464 0039d316-1c4b-4281-b951-d872f2087c98
* Support enabling/disabling the URL request throttler via the ↵joi@chromium.org2011-03-251-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | about:net-internals page: - Add a new tab to the about:net-internals page. - Add a preference item to persist user's choice. - Remove the command line switch --disable-enforced-throttling. - Make throttling feature off by default for now. This is 95% based on yzshen@chromium.org's patch http://codereview.chromium.org/6286001/ which was never landed. The changes that have been made from that patch are mostly cosmetic, apart from updating it to match the codebase (the patch was prepared ~2 months ago) and responding to eroman@'s initial round of code review comments. BUG=66062 TEST=Make sure the checkbox on about:net-internals > HTTP Throttling is checked. (1) Type in the addresss bar a URL which is expected to return 5XX. (2) Keep clicking the "reload" button. (3) After a few clicks, Chrome displays an error page explaining why a net::ERR_TEMPORARILY_THROTTLED error occurs. Make sure the checkbox on about:net-internals > HTTP Throttling is unchecked. Following step (1) and (2) described above won't result in a net::ERR_TEMPORARILY_THROTTLED error page. Review URL: http://codereview.chromium.org/6677085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79455 0039d316-1c4b-4281-b951-d872f2087c98
* Remove minidump analysis aides from URLRequestThrottlerManager. Leavejoi@chromium.org2011-03-171-19/+5
| | | | | | | | | | | | | | | in guard against null values. We are no longer getting any new information from more minidumps for this particular crash, so the aides are no longer necessary and I'm leaving the guard in place to minimize the impact on our users. BUG=71721 TEST=net_unittests Review URL: http://codereview.chromium.org/6698033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78552 0039d316-1c4b-4281-b951-d872f2087c98
* Extracting core back-off logic into a separate class,joi@chromium.org2011-03-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | BackoffEntry. Simplifying the logic slightly while I'm there, removing special support for "after the fact" malformed bodies (the error count doesn't need to be 100% accurate) and removing a constant value added to back-off times (it was only being added once anyway, had close to zero effect). Modifying URLRequestThrottlerEntry and related tests to use the new class instead of co-mingling sliding window logic and exponential back-off logic. Removing now-unnecessary StressTest and associated ugly wart "SetEntryLifetimeMsForTest" method on the URLRequestThrottlerEntryInterface class. Fixing up a few minor things e.g. #pragma once while I'm in there. BUG=none TEST=net_unittests.exe, unit_tests.exe Review URL: http://codereview.chromium.org/6697001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78548 0039d316-1c4b-4281-b951-d872f2087c98
* Modify ThreadChecker and NonThreadSafe so that theirjoi@chromium.org2011-03-031-27/+2
| | | | | | | | | | | | | | | functionality is available in release builds if explicitly requested by using their Impl types. The default usage remains that they do nothing in release mode. Also, update unit tests to run in release mode, verifying that the release versions of NonThreadSafe and ThreadChecker do nothing in release builds. BUG=none TEST=base unit tests Review URL: http://codereview.chromium.org/6599004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76833 0039d316-1c4b-4281-b951-d872f2087c98
* Single-threaded stress test for URLRequestThrottlerManagerjoi@chromium.org2011-03-021-0/+10
| | | | | | | | | | | | | | | to try to reproduce bug seen only in the wild. On my system, it does not reproduce the bug. Want to check in in case it reproduces on any of the bots. Also, add code that will make minidumps of this crash more information-rich, to help track down problem. Add guard buffers around a couple of key things, to help identify memory overwrite. Add simple unit test to make sure the new style of CHECK for one or more null values in the map works correctly. BUG=71721 TEST=none Review URL: http://codereview.chromium.org/6598043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76487 0039d316-1c4b-4281-b951-d872f2087c98
* Add a hard CHECK on use from a single thread to URLRequestThrottlerManager. ↵joi@chromium.org2011-02-251-8/+49
| | | | | | | | | | | | | This is done via a temporary copy of ThreadChecker so it can be made to work in release builds as well. Revert iterator use back to most optimal approach (previous changes were intended as temporary). BUG=71721 TEST=net_unittest Review URL: http://codereview.chromium.org/6581014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76018 0039d316-1c4b-4281-b951-d872f2087c98
* Removing AccessLog class. This is a partial revert of yzshen's r74872.joi@chromium.org2011-02-181-6/+0
| | | | | | | | | | | | | | | | | | | | The AccessLog class was something we added to track down a crash, which is no longer happening after that change. Reverting piece by piece and waiting for the next canary build before doing the next part. Note that the use of the AccessLog class could have introduced slight serialization to the method URLRequestThrottlerManager::RegisterRequestUrl as it would call the AccessLog::Add method which synchronized on a lock. So removing is not 100% safe; I will watch for crashes in the canary builds after this. BUG=71721 TEST=none Review URL: http://codereview.chromium.org/6538061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75438 0039d316-1c4b-4281-b951-d872f2087c98
* Add checks to URLRequestThrottlerManager to help identify the cause of crashes.yzshen@chromium.org2011-02-141-3/+7
| | | | | | | | | BUG=71721 TEST=None Review URL: http://codereview.chromium.org/6474024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74872 0039d316-1c4b-4281-b951-d872f2087c98
* Reorder the methods in net/url_request/.erg@google.com2011-01-201-0/+1
| | | | | | | | | BUG=68682 TEST=compiles Review URL: http://codereview.chromium.org/6382003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72013 0039d316-1c4b-4281-b951-d872f2087c98
* Give user the ability to disable the URL request throttler:yzshen@google.com2010-12-231-0/+10
| | | | | | | | | | | | | | | | | | - Support the command line switch --disable-enforced-throttling. With this switch specified, the URL request throttler won't reject outgoing requests during the back-off peroid. Please note that in this case we still keep track of the back-off period, since we need it to determine retry intervals. - Add a more detailed error page description for net::ERR_TEMPORARILY_THROTTLED. BUG=66062 TEST=Without --disable-enforced-throttling switch: (1) Type in the addresss bar a URL which is expected to return 5XX. (2) Keep clicking the "reload" button. (3) After a few clicks, Chrome displays an error page explaining why a net::ERR_TEMPORARILY_THROTTLED error occurs. With --disable-enforced-throttling switch: Following step (1) and (2) described above won't result in a net::ERR_TEMPORARILY_THROTTLED error page. Review URL: http://codereview.chromium.org/5961008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70022 0039d316-1c4b-4281-b951-d872f2087c98
* Implement exponential back-off mechanism.joi@chromium.org2010-11-251-0/+101
Contributed by yzshen@google.com, original review http://codereview.chromium.org/4194001/ Implement exponential back-off mechanism. Enforce it at the URLRequestHttpJob level for all outgoing HTTP requests. The reason why to make this change is that we need back-off logic at a lower enough level to manage all outgoing HTTP traffic, so that the browser won't cause any DDoS attack. This change: 1) patches http://codereview.chromium.org/2487001/show, which is the exponential back-off implementation. 2) resolves conflicts with URLFetcher, by removing its own back-off logic: -- removes url_fetcher_protect.{h,cc}; -- integrates the sliding window mechanism of URLFetcherProtectEntry into RequestThrottlerEntry. 3) resolves conflicts with CloudPrintURLFetcher. 4) makes unit tests of CloudPrintURLFetcher, URLFetcher and URLRequest work. BUG=none TEST=pass all existing tests and also the newly-added request_throttler_unittest.cc Review URL: http://codereview.chromium.org/5276007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67375 0039d316-1c4b-4281-b951-d872f2087c98