summaryrefslogtreecommitdiffstats
path: root/net
Commit message (Collapse)AuthorAgeFilesLines
* net: Remove typedef net::URLRequest URLRequest;tfarina@chromium.org2010-11-3037-234/+250
| | | | | | | | | BUG=64263 TEST=compiled locally, trybots Review URL: http://codereview.chromium.org/5384002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67762 0039d316-1c4b-4281-b951-d872f2087c98
* Patch from kelindsay@strangeloop.commbelshe@google.com2010-11-302-56/+192
| | | | | | | | | | | | | | | General fixes to spdy test server: * Add ability to disable compression on the SSL server. * Modified the SSL cipher list. * Updated the --help command line argument. * Ignore SIGPIPE signals. BUG=none TEST=none Review URL: http://codereview.chromium.org/5290008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67735 0039d316-1c4b-4281-b951-d872f2087c98
* Remove duplicate SetSSL3Enabled and SetTLS1Enabled testswtc@chromium.org2010-11-301-26/+0
| | | | | | | | | | | | inside SSLConfigServiceWinTest.SetTest, likely the result of a merging error. R=agl BUG=53659 TEST=none Review URL: http://codereview.chromium.org/5382007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67733 0039d316-1c4b-4281-b951-d872f2087c98
* Remove SSL 2.0 support.wtc@chromium.org2010-11-3012-80/+45
| | | | | | | | | R=agl BUG=53659 TEST=none Review URL: http://codereview.chromium.org/4091005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67722 0039d316-1c4b-4281-b951-d872f2087c98
* net: limit HSTS ages to one year.agl@chromium.org2010-11-303-8/+38
| | | | | | | | | BUG=64635 TEST=net_unittests http://codereview.chromium.org/5376005/ git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67709 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67662 - FBTF: Remove unneeded headers from base/ (part 10)thestig@chromium.org2010-11-305-12/+12
| | | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/5139006 TBR=thestig@chromium.org Review URL: http://codereview.chromium.org/5270010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67674 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 10)thestig@chromium.org2010-11-305-12/+12
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/5139006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67662 0039d316-1c4b-4281-b951-d872f2087c98
* Support predictive request for multiple preconnectionsjar@chromium.org2010-11-303-5/+8
| | | | | | | | | | | | | | | [reland CL 5271002... with CrOS / ARM interface update] Connected up to the API for requesting more than one preconnect at a time (that API also explicitly tags requsets as preconnects, so that they can be merged with actual navication requests). BUG=64246 r=willchan,mbelshe Review URL: http://codereview.chromium.org/5400002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67654 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67614 - Support predictive request for multiple preconnectionsjar@chromium.org2010-11-303-8/+5
| | | | | | | | | | | | | | | | Connected up to the API for requesting more than one preconnect at a time (that API also explicitly tags requsets as preconnects, so that they can be merged with actual navication requests). BUG=64246 r=willchan,mbelshe Review URL: http://codereview.chromium.org/5271002 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/5397003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67622 0039d316-1c4b-4281-b951-d872f2087c98
* Support predictive request for multiple preconnectionsjar@chromium.org2010-11-293-5/+8
| | | | | | | | | | | | | Connected up to the API for requesting more than one preconnect at a time (that API also explicitly tags requsets as preconnects, so that they can be merged with actual navication requests). BUG=64246 r=willchan,mbelshe Review URL: http://codereview.chromium.org/5271002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67614 0039d316-1c4b-4281-b951-d872f2087c98
* net: Add namespace net to URLRequest and URLRequestJob classes.tfarina@chromium.org2010-11-2818-51/+74
| | | | | | | | | BUG=64263 TEST=compiled locally and trybots Review URL: http://codereview.chromium.org/5298008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67497 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Make sync integration tests use local xmpp servers.akalin@chromium.org2010-11-272-2/+12
| | | | | | | | | | | Fixed signed/unsigned bug with the port number. BUG=53934 TEST=sync integration tests Review URL: http://codereview.chromium.org/5239001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67491 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed port boundary check in test_server.ccakalin@chromium.org2010-11-271-1/+1
| | | | | | | | | BUG=53934 TEST=manual Review URL: http://codereview.chromium.org/5377005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67487 0039d316-1c4b-4281-b951-d872f2087c98
* Spin up XMPP server for testservers of type sync.akalin@chromium.org2010-11-272-10/+92
| | | | | | | | | | | The XMPP server will be used by the sync integration tests in a future CL. BUG=53934 TEST=Sync integration tests still work Review URL: http://codereview.chromium.org/5104004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67483 0039d316-1c4b-4281-b951-d872f2087c98
* Made testserver communicate to parent process with JSONakalin@chromium.org2010-11-275-16/+74
| | | | | | | | | | | | | | | | | | | | | This is so that if the testserver needs to communicate anything more than the port in the future (e.g., xmpp port for the test sync server), it can do so in a flexible manner. BUG=53934 TEST=manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66879 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67018 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67386 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67398 Review URL: http://codereview.chromium.org/5196001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67481 0039d316-1c4b-4281-b951-d872f2087c98
* Make URLRequestThrottlerEntryInterface inherit RefCountedThreadSafe,joi@chromium.org2010-11-261-1/+2
| | | | | | | | | | | | | as a quick fix for bug 64501. yzshen is planning to refactor these classes significantly, so I won't make a bigger change at this point (e.g. to prevent use of the interface on different threads). BUG=64501 TEST=ThreadSanitizer complains no more. Review URL: http://codereview.chromium.org/5364003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67471 0039d316-1c4b-4281-b951-d872f2087c98
* Added server_data json dictionary to testserver.pyakalin@chromium.org2010-11-261-0/+4
| | | | | | | | | | | | | | | | This is split off from 5196001. BUG=53934 TEST=manually TBR=cbentzel Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67428 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67437 Review URL: http://codereview.chromium.org/5262005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67467 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed UnblockPipe() in test_server_win.cc to work with any number of bytesakalin@chromium.org2010-11-261-7/+11
| | | | | | | | | | | | Since ReadData() can be told to read any number of bytes, UnblockPipe() must write at least that number of bytes to guarantee to unblock ReadData(). BUG=53934 TEST=Manual Review URL: http://codereview.chromium.org/5329004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67445 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67437 - Added server_data json dictionary to testserver.pyakalin@chromium.org2010-11-261-5/+0
| | | | | | | | | | | | | | | | | This is split off from 5196001. BUG=53934 TEST=manually TBR=cbentzel Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67428 Review URL: http://codereview.chromium.org/5262005 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/5359004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67441 0039d316-1c4b-4281-b951-d872f2087c98
* Added server_data json dictionary to testserver.pyakalin@chromium.org2010-11-261-0/+5
| | | | | | | | | | | | | | This is split off from 5196001. BUG=53934 TEST=manually TBR=cbentzel Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67428 Review URL: http://codereview.chromium.org/5262005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67437 0039d316-1c4b-4281-b951-d872f2087c98
* Added simplejson import line to testserver.py.akalin@chromium.org2010-11-261-0/+1
| | | | | | | | | | | | | This is split off from 5196001 (to try to narrow down the test failures on XP). BUG=53934 TEST=manually TBR=cbentzel Review URL: http://codereview.chromium.org/5330008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67435 0039d316-1c4b-4281-b951-d872f2087c98
* Added third_party to python path for testserver.akalin@chromium.org2010-11-261-0/+5
| | | | | | | | | | | | This is split off from 5196001. BUG=53934 TEST=manually TBR=cbentzel Review URL: http://codereview.chromium.org/5370003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67434 0039d316-1c4b-4281-b951-d872f2087c98
* Added ReadData() function to test_server_{posix,win}.ccakalin@chromium.org2010-11-262-64/+92
| | | | | | | | | | This is split off from 5196001. BUG=53934 TEST=manually TBR=cbentzel git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67430 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67428 - Added server_data json dictionary to testserver.pyakalin@chromium.org2010-11-262-13/+1
| | | | | | | | | | | | | This is split off from 5196001. BUG=53934 TEST=manually TBR=cbentzel TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/5279005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67429 0039d316-1c4b-4281-b951-d872f2087c98
* Added server_data json dictionary to testserver.pyakalin@chromium.org2010-11-262-1/+13
| | | | | | | | | | This is split off from 5196001. BUG=53934 TEST=manually TBR=cbentzel git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67428 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67398 - Made testserver communicate to parent process with JSONakalin@chromium.org2010-11-255-159/+71
| | | | | | | | | | | | | | | | | | | | | | This is so that if the testserver needs to communicate anything more than the port in the future (e.g., xmpp port for the test sync server), it can do so in a flexible manner. BUG=53934 TEST=manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66879 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67018 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67386 Review URL: http://codereview.chromium.org/5196001 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/5373004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67400 0039d316-1c4b-4281-b951-d872f2087c98
* Made testserver communicate to parent process with JSONakalin@chromium.org2010-11-255-71/+159
| | | | | | | | | | | | | | | | | | | This is so that if the testserver needs to communicate anything more than the port in the future (e.g., xmpp port for the test sync server), it can do so in a flexible manner. BUG=53934 TEST=manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66879 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67018 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67386 Review URL: http://codereview.chromium.org/5196001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67398 0039d316-1c4b-4281-b951-d872f2087c98
* Pass cookie options to content settings delegate.jochen@chromium.org2010-11-254-0/+6
| | | | | | | | | BUG=63650 TEST=unit tests Review URL: http://codereview.chromium.org/5261004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67394 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67386 - Made testserver communicate to parent process with JSONakalin@chromium.org2010-11-255-151/+74
| | | | | | | | | | | | | | | | | | | | This is so that if the testserver needs to communicate anything more than the port in the future (e.g., xmpp port for the test sync server), it can do so in a flexible manner. BUG=53934 TEST=manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66879 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67018 Review URL: http://codereview.chromium.org/5196001 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/5343003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67393 0039d316-1c4b-4281-b951-d872f2087c98
* Made testserver communicate to parent process with JSONakalin@chromium.org2010-11-255-74/+151
| | | | | | | | | | | | | | | | | This is so that if the testserver needs to communicate anything more than the port in the future (e.g., xmpp port for the test sync server), it can do so in a flexible manner. BUG=53934 TEST=manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66879 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=67018 Review URL: http://codereview.chromium.org/5196001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67386 0039d316-1c4b-4281-b951-d872f2087c98
* Implement exponential back-off mechanism.joi@chromium.org2010-11-2513-2/+1139
| | | | | | | | | | | | | | | | | | | | | | | 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
* net: Implement DNS certificate provenance check uploads.agl@chromium.org2010-11-243-5/+47
| | | | | | | | | BUG=none TEST=none http://codereview.chromium.org/4830001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67275 0039d316-1c4b-4281-b951-d872f2087c98
* Landing fix for keindsay@gmail.com (Strangeloop Networks)mbelshe@google.com2010-11-2410-641/+1668
| | | | | | | | | | | | | Added proxy and NPN support as well as basic command line configuration for the flip server. Turn on building of flip server for linux by default. BUG=none TEST=test tool Review URL: http://codereview.chromium.org/5255008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67245 0039d316-1c4b-4281-b951-d872f2087c98
* Prevent re-entrancy into ProxyScriptFetcherImpl from ~URLRequestContext.willchan@chromium.org2010-11-231-0/+3
| | | | | | | | | | | | | | | The problem is that ProxyScriptFetcherImpl::OnFetchComplete() will delete the URLRequest, which may hold the last reference to the URLRequestContext, which will destroy the ProxyScriptFetcherImpl, which still thinks the URLRequest is alive, although we are in its destructor. Furthermore, even if we dodge that bullet, ProxyScriptFetcherImpl::OnFetchComplete() will invoke the user callback after deleting the URLRequest. This callback is to the InitProxyResolver object, which got deleted in ~URLRequestContext. So, we work around both of these problems by extending the lifetime of the URLRequestContext by acquiring a reference, which we release after deleting the URLRequest and invoking the user callback. The real solution is to stop refcounting URLRequestContext and do explicit destruction ordering. That's beyond the scope of this changelist. BUG=64253 TEST=none Review URL: http://codereview.chromium.org/5256002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67181 0039d316-1c4b-4281-b951-d872f2087c98
* Fix shutdown crash in CertVerifier by using a MessageLoopProxy.willchan@chromium.org2010-11-231-16/+19
| | | | | | | | | | | The CertVerifier is not getting Cancel()'d because something which owns it is getting leaked, most likely a URLRequestJob. Therefore, we can end up accessing a deleted MessageLoop on shutdown. MessageLoopProxy prevents accessing a deleted MessageLoop on shutdown, instead it just deletes the task, which isn't great, but it's better than crashing. We should fix the root cause eventually, which is a leak of the URLRequestJob. BUG=42275,chromium-os:8179 TEST=none Review URL: http://codereview.chromium.org/5347001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67172 0039d316-1c4b-4281-b951-d872f2087c98
* Make NetLog::EventParameters RefCountedThreadSafe.mmenke@chromium.org2010-11-231-1/+1
| | | | | | | | | | | | | This avoids a potential race condition in events logged on other threads and then passed to the IO thread by a ForwardingNetLog (Such as ProxyResolvers do). BUG=64188 TEST=none Review URL: http://codereview.chromium.org/5354001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67142 0039d316-1c4b-4281-b951-d872f2087c98
* Implements openssl session cachingjoth@chromium.org2010-11-232-56/+172
| | | | | | | | | | | Also fixes up the ssl socket handling of the OpenSSL error stack, and resolves a few TODOs. BUG=None TEST=opening https: pages with vlog=3 enabled and expected the log Review URL: http://codereview.chromium.org/5100010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67087 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed handling of context_ in URLRequestHttpJobakalin@chromium.org2010-11-231-1/+4
| | | | | | | | | | | | | | This prevents crashes due to URLRequestHttpJobs hanging on past IOThread destruction. Fixed bugs in proxy script fetcher IOThread cleanup. BUG=chromium-os:8179,63692,63796 TEST=sync integration tests, chromeos browser tests Review URL: http://codereview.chromium.org/5306001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67076 0039d316-1c4b-4281-b951-d872f2087c98
* Reconstructing 67000.bradnelson@google.com2010-11-232-2/+2
| | | | | | | | | | | | | | (python24 -> python26). Regression in nacl fixed, new DEPS change. BUG=None TEST=NOne Review URL: http://codereview.chromium.org/5310001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67057 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67018 - Made testserver communicate to parent process with JSONakalin@chromium.org2010-11-235-151/+63
| | | | | | | | | | | | | | | | | | This is so that if the testserver needs to communicate anything more than the port in the future (e.g., xmpp port for the test sync server), it can do so in a flexible manner. BUG=53934 TEST=manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66879 Review URL: http://codereview.chromium.org/5196001 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/5291002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67025 0039d316-1c4b-4281-b951-d872f2087c98
* Made testserver communicate to parent process with JSONakalin@chromium.org2010-11-225-63/+151
| | | | | | | | | | | | | | | This is so that if the testserver needs to communicate anything more than the port in the future (e.g., xmpp port for the test sync server), it can do so in a flexible manner. BUG=53934 TEST=manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66879 Review URL: http://codereview.chromium.org/5196001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67018 0039d316-1c4b-4281-b951-d872f2087c98
* nss: add support for OCSP stapling.agl@chromium.org2010-11-2211-1/+778
| | | | | | | | | | | | This patch adds support in libssl for requesting and storing OCSP stapled responses. BUG=none TEST=none (yet) http://codereview.chromium.org/5045001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67005 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 67000.bradnelson@google.com2010-11-222-2/+2
| | | | | | | | | | BUG=None TEST=None TBR=nsylvain Review URL: http://codereview.chromium.org/5272001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67004 0039d316-1c4b-4281-b951-d872f2087c98
* Switching chrome to use python26 in place of python24.bradnelson@google.com2010-11-222-2/+2
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/5121009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67000 0039d316-1c4b-4281-b951-d872f2087c98
* Add delay when resuming load when network connection is restured.oshima@chromium.org2010-11-221-5/+5
| | | | | | | | | | | | | | | | | Without delay, chrome silently fails to load the page. This is a wordaround and should be remoevd once the root cause is fixed. * Different delays for secure and non secure connection as secure connection needs longer delay. * I simply shortened proxy resolution as this may hit the same issue, and short enough that the page load happens after proxy resolution. BUG=chromium-os:8285 TEST=see the bug description for repro steps. Review URL: http://codereview.chromium.org/5156007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66990 0039d316-1c4b-4281-b951-d872f2087c98
* Remove two placeholder files.agl@chromium.org2010-11-222-2/+0
| | | | | | These files were needed for the tryservers to handle r66985. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66986 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert "net: Plumb DnsCertProvenanceChecker around.""agl@chromium.org2010-11-2239-316/+470
| | | | | | (See r66623 for details.) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66985 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "net: Plumb DnsCertProvenanceChecker around."agl@chromium.org2010-11-2239-467/+316
| | | | | | This reverts commit r66970. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66974 0039d316-1c4b-4281-b951-d872f2087c98
* net: Plumb DnsCertProvenanceChecker around.agl@chromium.org2010-11-2239-316/+467
| | | | | | (Reland of r66623, reverted in r66687 due to Chrome Frame linking issues.) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66970 0039d316-1c4b-4281-b951-d872f2087c98
* Always send the device ID when making device management requests.mnissler@chromium.org2010-11-221-1/+3
| | | | | | | | | | | While at it, clean up use of policy constants. BUG=62060 TEST=Compiles and passes existing tests. Review URL: http://codereview.chromium.org/5162006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66949 0039d316-1c4b-4281-b951-d872f2087c98