summaryrefslogtreecommitdiffstats
path: root/net
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Update eTLD data for changes to .cr. Parallels ↵pkasting@chromium.org2009-08-262-3/+16
| | | | | | | | | | https://bugzilla.mozilla.org/show_bug.cgi?id=512774 BUG=19808 TEST=Type "sauny.cr" into Omnibox and check that default action is navigation, not search. Review URL: http://codereview.chromium.org/173513 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24523 0039d316-1c4b-4281-b951-d872f2087c98
* POSIX: Don't convert backslashes in filenames into forward slashes.estade@chromium.org2009-08-261-0/+5
| | | | | | | | BUG=19436 Review URL: http://codereview.chromium.org/173426 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24517 0039d316-1c4b-4281-b951-d872f2087c98
* Fix transaction hang when downloading certain FTP files.phajdan.jr@chromium.org2009-08-264-4/+105
| | | | | | | | | TEST=Covered by net_unittests. http://crbug.com/19855 Review URL: http://codereview.chromium.org/174428 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24492 0039d316-1c4b-4281-b951-d872f2087c98
* Implement RestartWithAuth for NewFtpTransaction.phajdan.jr@chromium.org2009-08-267-35/+198
| | | | | | | | | TEST=Covered by net_unittests. http://crbug.com/20112 Review URL: http://codereview.chromium.org/173270 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24449 0039d316-1c4b-4281-b951-d872f2087c98
* Convert internal time format to Windows 1601 epoch on Linux & Mac.brettw@chromium.org2009-08-261-0/+11
| | | | | | | | | | | Although we represent time internally starting from 1601, there are still things like time explosion that will not work before the year 1900. This limitation is the same as it was previously. BUG=14734 Review URL: http://codereview.chromium.org/173296 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24417 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ability to not send cookies or send user name/password.levin@chromium.org2009-08-266-6/+170
| | | | | | | | | | | Added unit tests for the above functionality plus the do not save cookies functionality. BUG=http://crbug.com/10961 TEST=Added unit tests for this. Also, this isn't yet called from the rest of the code. Review URL: http://codereview.chromium.org/173206 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24412 0039d316-1c4b-4281-b951-d872f2087c98
* Moving NetTestSuite to a header file for reuse.tommi@chromium.org2009-08-262-36/+53
| | | | | | | | I'm also factoring initialization of the NetTestSuite instance to a separate method so that per NetTestSuite instance initialization can be done separate of TestSuite::Initialize() (which does global initialization). Review URL: http://codereview.chromium.org/174438 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24379 0039d316-1c4b-4281-b951-d872f2087c98
* Correctly join paths in FTP directory listing.phajdan.jr@chromium.org2009-08-251-2/+2
| | | | | | | | | TEST=See bug. http://crbug.com/20232 Review URL: http://codereview.chromium.org/174406 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24366 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor function to unpack an Entry from its pickle to a HttpResponseInfo.mbelshe@google.com2009-08-252-12/+22
| | | | | | | | | | | This will be used for some dump_cache modifications which are coming. BUG=none TEST=none Review URL: http://codereview.chromium.org/174388 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24319 0039d316-1c4b-4281-b951-d872f2087c98
* Alphabetize and detabify some gyp files.mdm@chromium.org2009-08-251-2/+2
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/173310 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24275 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
* Add UMA Histogram for FieldTrial for Async Socket SlowStartmbelshe@google.com2009-08-251-1/+14
| | | | | | | | | | | | algorithm to monitor the time between the connect and the first byte on a new connection. BUG=none TEST=none Review URL: http://codereview.chromium.org/174390 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24221 0039d316-1c4b-4281-b951-d872f2087c98
* Try one more time to lock down content sniffing foraa@chromium.org2009-08-251-1/+2
| | | | | | | | | | | | | | | | | | Chrome extensions. Last time I tried to check this in, I had to roll it back because it made installing extensions from file:// URLs not work. Turned out that we just have to add a single line mapping the ".crx" extension to our mimetype. BUG=13296 TEST=Install an extension from the interweb, it should install. Install an extension from disk, it should install. Review URL: http://codereview.chromium.org/174380 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24216 0039d316-1c4b-4281-b951-d872f2087c98
* Implement a read-size throttle within the TCP socket.mbelshe@google.com2009-08-251-1/+42
| | | | | | | | | | | Add a field-group trial for testing it. BUG=none TEST=none Review URL: http://codereview.chromium.org/173259 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24211 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a typo IsCertStatusError. It should be IsCertificateError.wtc@chromium.org2009-08-251-3/+5
| | | | | | | | | | | | | | | | | | This typo causes us to call GetServerCert at the wrong time. We found that SSLCopyPeerCertificates may succeed (return noErr) but return a nil CFArrayRef. So we check for that to avoid a crash. Finally, errSSLIllegalParam means we received an SSL invalid_parameter error alert message, rather than an invalid function argument. It should be mapped to ERR_SSL_PROTOCOL_ERROR. R=avi BUG=http://crbug.com/19837 TEST=Visit https://stud.infostud.uniroma1.it:4445/Sest/Log/Corpo.html. Chromium should not crash. Review URL: http://codereview.chromium.org/173328 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24209 0039d316-1c4b-4281-b951-d872f2087c98
* Remove uses of deprecated version of FileUtil::ResolveShortcut.evan@chromium.org2009-08-251-2/+2
| | | | | | | | | | BUG=None TEST=run base_unittests.exe Review URL: http://codereview.chromium.org/173181 Patch from Thiago Farina <thiago.farina@gmail.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24208 0039d316-1c4b-4281-b951-d872f2087c98
* Only retry on unused, idle sockets if the socket error is ERR_CONNECTION_RESET.willchan@chromium.org2009-08-243-6/+9
| | | | | | | | | In particular, don't do it on ERR_CONNECTION_ABORT or ERR_CONNECTION_CLOSED. Fix spelling error in ClientSocketHandle comment. Review URL: http://codereview.chromium.org/173278 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24152 0039d316-1c4b-4281-b951-d872f2087c98
* Clear the gzip filter to file names with gz/tgz extensions only when the ↵thestig@chromium.org2009-08-242-12/+168
| | | | | | | | | | | | mime type is unsupported. We have cases where supported mime types like javascript/html urls end in .gz. These files should go through the gzip filter. I manually tested the behavior with Firefox and a fake web server, and wrote unit tests based on them. BUG=16430 TEST=see bug Review URL: http://codereview.chromium.org/165035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24151 0039d316-1c4b-4281-b951-d872f2087c98
* Add more histograms to understand idle sockets.willchan@chromium.org2009-08-241-10/+50
| | | | | | | | | Add Net.SocketIdleTimeBeforeNextUse histograms to track how long a socket is idle before being requested again. Replace Net.SocketIdleTimeOnIOError with Net.SocketIdleTimeOnIOError2 which raises the sample max to 6 seconds and increases to 100 buckets. I had incorrectly misread the code and assumed we closed idle sockets after 10 seconds. We close idle sockets between 5 minutes and 5 minutes and 10 seconds of idle time. Review URL: http://codereview.chromium.org/173256 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24130 0039d316-1c4b-4281-b951-d872f2087c98
* Add code for enabling or disabling CRLs and OCSP correctly.wtc@chromium.org2009-08-241-2/+18
| | | | | | | | | | | | | | Previously we varied the number of elements in the method_flags array to enable/disable OCSP. It turns out that's the wrong way. Between CRLs and OCSP, we prefer OCSP. R=ukai BUG=http://crbug.com/10911 TEST=none Review URL: http://codereview.chromium.org/174283 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24126 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Enable experimental support for byte range requests.rvargas@google.com2009-08-243-39/+56
| | | | | | | | | | | Requires --enable-byte-range-support BUG=12258 TEST=covered by unit tests. Review URL: http://codereview.chromium.org/173231 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24113 0039d316-1c4b-4281-b951-d872f2087c98
* Resend on IO errors on late bound sockets that were idle.willchan@chromium.org2009-08-222-4/+5
| | | | | | | | | | | According to UMA data, late bound sockets that were idle are significantly more likely to get (reset/close/abort) errors. Currently, we don't resend on late bound sockets that were idle because they weren't reused. This changes that. TODO: determine how long a socket has to be idle before it is likely to get a TCP RST if we try to reuse it. Also document the ClientSocketHandle::ReuseSocketType values. BUG=http://crbug.com/18192. Review URL: http://codereview.chromium.org/174287 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24084 0039d316-1c4b-4281-b951-d872f2087c98
* Consider "certificate revoked" as the most serious certificatewtc@chromium.org2009-08-221-2/+2
| | | | | | | | | | | error. R=abarth BUG=none TEST=none Review URL: http://codereview.chromium.org/171056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24048 0039d316-1c4b-4281-b951-d872f2087c98
* Improve certificate error mapping.wtc@chromium.org2009-08-211-2/+9
| | | | | | | | | | | | | Fix leaks of (encoded) certificate extensions returned by CERT_FindCertExtension. They can be freed as soon as they are decoded. R=ukai BUG=http://crbug.com/10911 TEST=none Review URL: http://codereview.chromium.org/173154 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24041 0039d316-1c4b-4281-b951-d872f2087c98
* If the HTTP response code is -1, don't call OCSPSetResponse because thewtc@chromium.org2009-08-211-1/+6
| | | | | | | | | | | | request failed and there is no response. This fixes the crashes in OCSPTrySendAndReceive. R=willchan BUG=http://crbug.com/19915 TEST=See issue 19915 for steps to reproduce the crash. Review URL: http://codereview.chromium.org/174248 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24040 0039d316-1c4b-4281-b951-d872f2087c98
* Revert cl 24015rvargas@google.com2009-08-213-55/+39
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/174260 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24026 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Enable experimental support for byte range requests.rvargas@google.com2009-08-213-39/+55
| | | | | | | | | | | Requires --enable-byte-range-support BUG=12258 TEST=covered by unit tests. Review URL: http://codereview.chromium.org/173173 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24015 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanups for SSLConfigService and SSLConfigServiceManager.mattm@chromium.org2009-08-217-19/+43
| | | | | | | | | | | | | | | | | Make SSLConfig.rev_checking_enable default to true (which also affects the defaults set by SSLConfigServicePref.) Add static SSLConfigService::CreateSystemSSLConfigService which creates a standalone SSLConfigService (either SSLConfigServiceWin or SSLConfigServiceDefaults.) Use CreateSystemSSLConfigService in fetch_client and test_shell_request_context. Merge SSLConfigServiceManagerWin and SSLConfigServiceManagerDefaults into SSLConfigServiceManagerSystem, which uses CreateSystemSSLConfigService. BUG=11507,19290 TEST=only visible change should be linux defaults to having rev checking option enabled. Review URL: http://codereview.chromium.org/173097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23998 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
* Pulling new version of googleurl into the tree.cira@chromium.org2009-08-211-4/+2
| | | | | | | | | | Fixing a net_unittest case that wasn't updated when googleurl code was changed (but not down integrated to chrome). BUG=5490 Review URL: http://codereview.chromium.org/174093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23965 0039d316-1c4b-4281-b951-d872f2087c98
* Followup after http://codereview.chromium.org/165167, fixing the nits in ↵phajdan.jr@chromium.org2009-08-212-9/+9
| | | | | | | | | | | FtpAuthCache. TEST=Covered by net_unittests. BUG=none Review URL: http://codereview.chromium.org/174184 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23961 0039d316-1c4b-4281-b951-d872f2087c98
* Prevent a crash that can occur when redirecting a file URL.darin@chromium.org2009-08-218-10/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We redirect a file URL that corresponds to a directory when the file URL does not end in a slash. We redirect to the same URL with a slash appended to simplify other code, which can then rely on the presence of a trailing slash for all file URLs that correspond to a directory. It turns out that following the redirect could result in the job being used after free. The code in URLRequestJob::FollowDeferredRedirect clears some fields after calling FollowRedirect. For all other jobs this is not a problem since the process of following a redirect causes the job to be killed, and URLRequestJob::Kill takes a reference to the job. It turns out that URLRequestFileDirJob was not calling URLRequestJob::Kill, and so this extra reference was not being taken. The fix is two-fold: 1- Make URLRequestFileDirJob call URLRequestJob::Kill just like the rest of the jobs. This seems like a good idea for other reasons as well. 2- Make URLRequestJob::FollowDeferredRedirect not depend on itself being alive after the FollowRedirect call. This just seems good for future cases where a special URLRequestJob subclass might not call URLRequestJob::Kill for some reason or another. Finally, some minor changes were rqeuired to URLRequestFileDirJob to support the call to Kill. See changes to OnListDone. Writing a unit test for this was a bit tricky. It turns out that while the URLRequestFileDirJob is waiting for the client to call FollowDeferredRedirect, it is still traversing the directory. It does not pause the directory listing. The crash could only happen if the directory listing completed before the consumer called FollowDeferredRedirect because a reference to the job was taken on behalf of the DirectoryLister. To test this condition, I made it possible for a test to poll the URLRequestFileDirJob::list_completed_ flag. Once that is set, I then have the test call FollowDeferredRedirect. NOTE: When running within net_unittests, NetModule::SetResourceProvider has not been called. So, I downgraded a NOTREACHED to a DLOG(WARNING). NOTREACHED was a bit excessive since it is a condition that can be reached, and I don't see any problem with allowing unit tests to function without a resource provider. R=wtc BUG=18686 TEST=URLRequestTest.FileDirRedirectNoCrash Review URL: http://codereview.chromium.org/174076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23944 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
* Linux: make the "change proxy settings" button able to start several proxy ↵mdm@chromium.org2009-08-201-1/+2
| | | | | | | | | | | | config utilities. Currently it still only ever starts gnome-network-properties but it is now easy to update. BUG=none TEST=none Review URL: http://codereview.chromium.org/174106 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23910 0039d316-1c4b-4281-b951-d872f2087c98
* Fix some style nits in unittests.eroman@chromium.org2009-08-204-142/+140
| | | | | | | | | * Changed the indentation for long lines of "ExpectLogContains()". * Moved host_resolver_impl_unittest into the net namespace to avoid lots of redundant net:: prefixes. Review URL: http://codereview.chromium.org/173137 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23902 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Fix the code that handles 206s when revalidatingrvargas@google.com2009-08-203-22/+91
| | | | | | | | | | | a range from the cache. BUG=12258 TEST=unittests Review URL: http://codereview.chromium.org/174039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23881 0039d316-1c4b-4281-b951-d872f2087c98
* Fix gcc warning about possible unused variable experienced with Apple gcc 4.2mark@chromium.org2009-08-201-1/+1
| | | | | | | in an -O3 experiment. Review URL: http://codereview.chromium.org/173125 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23861 0039d316-1c4b-4281-b951-d872f2087c98
* Add instrumentation to ClientSocketPool, that writes to LoadLog.eroman@chromium.org2009-08-209-59/+377
| | | | | | | | BUG=http://crbug.com/14478 Review URL: http://codereview.chromium.org/174101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23855 0039d316-1c4b-4281-b951-d872f2087c98
* Change an ASSERT_TRUE to a CHECK() to remove the gtest dependency.evan@chromium.org2009-08-201-1/+1
| | | | | | | | This fixes the shared build. Review URL: http://codereview.chromium.org/173083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23814 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor OCSP handler.ukai@chromium.org2009-08-201-141/+48
| | | | | | | | | | | | | | Get rid of the Core class and merge into OCSPRequestSession. OCSPCreate adds ref to the OCSPRequestSession and OCSPFree calls OCSPRequestSession::Cancel and releases a reference to it. BUG=none TEST=none Review URL: http://codereview.chromium.org/173051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23806 0039d316-1c4b-4281-b951-d872f2087c98
* Add missing break statement.jhawkins@chromium.org2009-08-191-3/+5
| | | | | | | | | CID=5724 BUG=none TEST=none Review URL: http://codereview.chromium.org/173078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23766 0039d316-1c4b-4281-b951-d872f2087c98
* Add icu:: qualifiers to a couple of more files. They're missed in the ↵jshin@chromium.org2009-08-191-2/+2
| | | | | | | | | | | previous CL. BUG=8198 TEST=Building all targets succeed without an error. TBR=darin Review URL: http://codereview.chromium.org/173076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23762 0039d316-1c4b-4281-b951-d872f2087c98
* Pref-backed SSLConfigService for Linux.mattm@chromium.org2009-08-1920-113/+238
| | | | | | | | | | Makes SSLConfigService into a ref-counted interface, and makes Profile own an SSLConfigServiceFactory which is used to create the SSLConfigService and pass it through the URLRequestContext on down to where it is actually used. R=eroman,wtc BUG=11507,19290 Review URL: http://codereview.chromium.org/165003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23757 0039d316-1c4b-4281-b951-d872f2087c98
* Make ClientSocketHandle::Init() typesafe.willchan@chromium.org2009-08-1912-120/+153
| | | | | | | | | | | Introduce a REGISTER_SOCKET_PARAMS_FOR_POOL macro to register valid SocketParams for a ClientSocketPool subtype. Update HttpNetworkSession's ClientSocketPool to return the concrete TCPClientSocketPool instead of the parent interface. Renamed the member variable&accessor. Updated tests. BUG=http://crbug.com/13289 Review URL: http://codereview.chromium.org/173018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23743 0039d316-1c4b-4281-b951-d872f2087c98
* Try to fix crash in OCSP handlers.ukai@chromium.org2009-08-192-24/+21
| | | | | | | | | | | | | | | Make sure OCSPRequestSession::Core is cancelled when OCSPRequestSession is deleted as URLFetcher does. Revert http://src.chromium.org/viewvc/chrome?view=rev&revision=23575 BUG=18907,10911 TEST=none Review URL: http://codereview.chromium.org/165362 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23696 0039d316-1c4b-4281-b951-d872f2087c98
* Renames the function CreateTemporaryFilename to CreateTemporaryFile and ↵erikkay@chromium.org2009-08-182-4/+4
| | | | | | | | | | | | | | track down all callers, also removes the deprecated function that uses std::wstring. BUG=3078 (http://crbug.com/3078) TEST=run base_unittests, installer_util_unittests, net_unittests, setup_unittests, and unit_tests. Review URL: http://codereview.chromium.org/164537 Patch from Thiago Farina. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23631 0039d316-1c4b-4281-b951-d872f2087c98
* Change ClientSocketHandle to take the pool as a parameter to Init() rather ↵willchan@chromium.org2009-08-188-145/+169
| | | | | | | | | | than the constructor. The purpose of this change is to allow ClientSocketHandle to be able to accept ClientSocketPools of different types, since we will want to pass a TCPClientSocketPool or an SSLClientSocketPool or whatever to it. BUG=http://crbug.com/13289 Review URL: http://codereview.chromium.org/171003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23629 0039d316-1c4b-4281-b951-d872f2087c98