summaryrefslogtreecommitdiffstats
path: root/net/socket_stream
Commit message (Collapse)AuthorAgeFilesLines
* Revert 42074 - Try to fix flaky websocket tests.amit@chromium.org2010-03-191-2/+3
| | | | | | | | | | | | | | | | | | | Some websoket layout tests became flaky from r41818. This is because it adds websocket throttling in WebSocketJob. Make sure Close() will call OnClose() even if it is waiting resolving or waiting in throttling queue, so that WebSocketJob is removed from throttling queue and wake up next WebSocketJob. BUG=38397 TEST=layout tests websocket/tests passes Review URL: http://codereview.chromium.org/1096001 TBR=ukai@chromium.org Review URL: http://codereview.chromium.org/1120004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42078 0039d316-1c4b-4281-b951-d872f2087c98
* Try to fix flaky websocket tests.ukai@chromium.org2010-03-191-3/+2
| | | | | | | | | | | | | | | | Some websoket layout tests became flaky from r41818. This is because it adds websocket throttling in WebSocketJob. Make sure Close() will call OnClose() even if it is waiting resolving or waiting in throttling queue, so that WebSocketJob is removed from throttling queue and wake up next WebSocketJob. BUG=38397 TEST=layout tests websocket/tests passes Review URL: http://codereview.chromium.org/1096001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42074 0039d316-1c4b-4281-b951-d872f2087c98
* EndEvent when context has been changedukai@chromium.org2010-03-181-1/+1
| | | | | | | | | | | as URLRequest::set_context() does. BUG=none TEST=none Review URL: http://codereview.chromium.org/1000006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41933 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor WebSocket throttling feature.ukai@chromium.org2010-03-174-176/+9
| | | | | | | | | Protocol specific handling should be done in SocketStreamJob subclasss, so websocket throttling should be handled in WebSocketJob. Review URL: http://codereview.chromium.org/669157 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41818 0039d316-1c4b-4281-b951-d872f2087c98
* Generalize the net module's LoadLog facility from a passive container, to an ↵eroman@chromium.org2010-03-163-46/+27
| | | | | | | | | | | | | | | | event stream (NetLog). This makes it possible to associate a single NetLog with a URLRequestContext, and then attach observers to that log to watch the stream of events. This changelist attempts to do the most direct translation, so there will be subsequent iterations to clean up. The user-visible behavior should remain unchanged. BUG=37421 Review URL: http://codereview.chromium.org/848006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41689 0039d316-1c4b-4281-b951-d872f2087c98
* Fix memory leak in WebSocketJobTest.ukai@chromium.org2010-03-011-1/+1
| | | | | | | | | BUG=none TEST=no memory leak in valgrind test: net_unittests Review URL: http://codereview.chromium.org/661266 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40258 0039d316-1c4b-4281-b951-d872f2087c98
* Support HttpOnly cookie on Web Socketukai@chromium.org2010-03-016-11/+227
| | | | | | | | | | | | | | | | | | | | | | | | Web Socket should send "HttpOnly" cookie when handshaking. In WebKit/WebCore, WebSocketHandshake uses cookieRequestHeaderFieldValue() to get cookies including HttpOnly cookie. However, Chrome doesn't trunk renderer process, so we're not allowed to access HttpOnly cookie in WebCore. Thus, we handle HttpOnly cookies in browser process. Add SocketStreamJob as interface for protocol specific handling on SocketStream. WebSocketJob implements Web Socket specific handling. For now, it handles cookies in Web Socket. It checks Web Socket handshake request message from renderer process, and replaces Cookie: header to include HttpOnly cookies. It also checks Web Socket handshake response message, sets cookies if any, and strips Set-Cookie: header, so that renderer process couldn't see Set-Cookie: header. BUG=35660 TEST=net_unittests and layout_tests passes Review URL: http://codereview.chromium.org/601077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40250 0039d316-1c4b-4281-b951-d872f2087c98
* Really connect to the same server in FTP network transaction.phajdan.jr@chromium.org2010-02-201-1/+1
| | | | | | | | | | | | Also create necessary infrastructure to know the address a client socket is connected to. TEST=Covered by net_unittests. BUG=35670 Review URL: http://codereview.chromium.org/598071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39559 0039d316-1c4b-4281-b951-d872f2087c98
* Pulled out Callback code into base/callback.h. This is the first step ↵akalin@chromium.org2010-02-191-0/+1
| | | | | | | | | | | | | towards redoing the Callback interfaces. Added and removed includes as needed. BUG=35223 TEST=trybots Review URL: http://codereview.chromium.org/646061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39419 0039d316-1c4b-4281-b951-d872f2087c98
* Added factories for HttpAuthHandler.cbentzel@chromium.org2010-02-152-5/+10
| | | | | | | | | | | | | | | | | | | The driving rationale for this change was to prevent choosing an AuthHandler when it is not supported on the system due to a missing runtime component (such as not being able to locate a gssapi shared library when seeing a Negotiate scheme). It also has the advantage (currently unused) of determining some per-auth-scheme properties only the first time that a challenge for that scheme is seen (such as maximum token length for the SSPI implementation of NTLM). Finally, it may make unit tests easier to generate since the factory can be easily mocked. BUG=34795 TEST=New unit test for HttpAuthHandlerDispatchFactory. Review URL: http://codereview.chromium.org/582007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39065 0039d316-1c4b-4281-b951-d872f2087c98
* Add bounds checking to StaticSocketDataProvider, to make tests more reliablephajdan.jr@chromium.org2010-02-091-2/+4
| | | | | | | | | | | when they fail. TEST=net_unittests BUG=27567 Review URL: http://codereview.chromium.org/582020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38453 0039d316-1c4b-4281-b951-d872f2087c98
* Add Single Sign On support to HTTP Authentication handlers.cbentzel@chromium.org2010-02-051-4/+11
| | | | | | | | | | | | | | | Currently this is implemented on Windows for the NTLM and Negotiate schemes. This CL does not introduce the hooks to actually use Single Sign On in response to a 401/407 request - that will come in a later CL. This behavior is disabled for now as well. BUG=29862 TEST=Ran unittests, and Chrome against a server with authentication challenges. Review URL: http://codereview.chromium.org/555174 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38227 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup the unittest helpers in load_log_unittest.h.eroman@chromium.org2010-01-291-7/+4
| | | | | | | | | | | Consolidates all the callers to using the testing::AssertionResult() flavor, and renames them to have "Event" in the name. This rename is in anticipation of adding testers for other entry types. BUG=NONE TEST=existing Review URL: http://codereview.chromium.org/551135 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37501 0039d316-1c4b-4281-b951-d872f2087c98
* Fix secure websocket (wss) on Mac.ukai@chromium.org2010-01-191-2/+35
| | | | | | | | | | | | | | | | When SSLClientSocket of Mac reports certificate error (e.g. ERR_CERT_AUTHORITY_INVALID), it hasn't finish the SSL handshake and doesn't report the socket is connected. So, even if we tricks the result from SSLClientSocket::Connect by HandleCertificateError, it will be handled as ERR_CONNECTION_FAILED because socket_->IsConnected() is false. So, when SSLClientSocket::Connect reported certificate error and socket_->IsConnectedAndIdle() is false, get the certificate and retry establishing connection again with the certificate in allowed bad certificates, so we could ignore the certificate verify error. Without this fix, websocket live experiment on mac always fails for secure connection. BUG=32569 TEST=try open wss: connection and got open events. Review URL: http://codereview.chromium.org/543111 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36519 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup histogram classes mixing SetFlags into FactoryGet argumentsjar@chromium.org2009-12-282-21/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Extend LoadLog to support logging of arbitrary strings, and of network error ↵eroman@chromium.org2009-12-211-1/+1
| | | | | | | | | | | | | | codes. - The logging of error codes is intended to be used in passive mode. - The logging of string messages is intended to be used when in full-logging mode. - The logging of string literal messages is intended to be used in passive mode. BUG=27552 Review URL: http://codereview.chromium.org/503066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35103 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ability to enable full logging for LoadLogs.eroman@chromium.org2009-12-211-4/+8
| | | | | | | | | | | | | | | | | This works by clicking a button in about:net-internals to turn on active logging. Right now full logging means: - Instead of just the most recent 25 requests, keep all requests info. - Instead of limiting each request to 50 log entries, keep all log entries. - Instead of saving the first 1000 bytes of request URLs, save all its bytes. In the future full logging will be expanded to include other log events, and also string messages (so it can mirror what was sent to LOG(INFO) / LOG(WARNING)). BUG=27552 Review URL: http://codereview.chromium.org/507055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35098 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove the support for IPv4 and IPv6 addressing types in the SOCKS5 ↵eroman@chromium.org2009-12-181-1/+1
| | | | | | | | | | | | | implementation. This is no longer used by chrome, and it is unlikely that embedders would want to use this. The default will just use the DOMAIN addressing type. BUG=29914 Review URL: http://codereview.chromium.org/507048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34928 0039d316-1c4b-4281-b951-d872f2087c98
* When talking to a SOCKS v5 proxy, default to sending addresses as raw ↵eroman@chromium.org2009-12-181-1/+1
| | | | | | | | | | | | | | | domains rather than IP addresses. Before, we would default to client-side DNS resolution (sending IP addresses to the proxy) for both v4 and v5. However if you are using a v5 server, it is most likely that you want to do the resolves on the proxy-side. And in fact if you are using a SOCKS 5 proxy to anonymize your browsing, you definitely don't want that as the default policy. Embedders of the network stack can select the alternate policy by passing a non-NULL Host resolver into SOCKS5ClientSocket. BUG=29914 TEST=HttpNetworkTransactionTest.SOCKS5_HTTP_GET, HttpNetworkTransactionTest.SOCKS5_SSL_GET Review URL: http://codereview.chromium.org/507033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34903 0039d316-1c4b-4281-b951-d872f2087c98
* <html>ukai@chromium.org2009-12-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <style type="text/css"> <!-- body { font-family: arial,sans-serif; background-color: #fff; margin-top: 2; } .c { width: 4; height: 4; } a:link { color: #00c; } a:visited { color: #551a8b; } a:active { color: #f00; } .form-noindent { background-color: #fff; border: 1px solid #c3d9ff; } --> </style> <style type="text/css"><!-- .gaia.le.lbl { font-family: Arial, Helvetica, sans-serif; font-size: smaller; } .gaia.le.fpwd { font-family: Arial, Helvetica, sans-serif; font-size: 70%; } .gaia.le.chusr { font-family: Arial, Helvetica, sans-serif; font-size: 70%; } .gaia.le.val { font-family: Arial, Helvetica, sans-serif; font-size: smaller; } .gaia.le.button { font-family: Arial, Helvetica, sans-serif; font-size: smaller; } .gaia.le.rem { font-family: Arial, Helvetica, sans-serif; font-size: smaller; } .gaia.captchahtml.desc { font-family: arial, sans-serif; font-size: smaller; } .gaia.captchahtml.cmt { font-family: arial, sans-serif; font-size: smaller; font-style: italic; } --></style> <head> <title>Google Accounts</title> <style type="text/css"><!-- body { font-family: arial, sans-serif; margin: 0; padding: 13px 15px 15px; } .body { margin: 0; } div.errorbox-good {} div.errorbox-bad {} div.errormsg { color: red; font-size: smaller; font-family: arial,sans-serif;} font.errormsg { color: red; font-size: smaller; font-family: arial,sans-serif;} div.topbar { font-size:smaller; margin-right: -5px; text-align:right; white-space:nowrap; } div.header { margin-bottom: 9px; margin-left: -2px; position:relative; zoom: 1 } div.header img.logo { border: 0; float:left; } div.header div.headercontent { float:right; margin-top:17px; } div.header:after{ content:"."; display:block; height:0; clear:both; visibility:hidden; } div.pagetitle { font-weight:bold; } .footer { color: #666; font-size: smaller; margin-top: 40px; text-align: center; } table#signupform { left: -5px; top: -7px; position:relative; } table#signupform td{ padding: 7px 5px; } table#signupform td table td{ padding: 1px; } hr { border: 0; background-color:#DDDDDD; height: 1px; width: 100%; text-align: left; margin: 5px; } --></style> </head> <body dir="ltr" onLoad= "gaia_setFocus();" > <div id="main"> <div class=header> <a href='https://www.google.com/accounts/'> <img class=logo src='https://www.google.com/intl/en/images/logos/accounts_logo.gif' alt="Google" /> </img> </a> </div> <div id=maincontent> <table border="0" width="100%" cellpadding=0 cellspacing=0> <tr> <td width="75%" valign="top"> <h3> Chromium Code Reviews uses Google Accounts for Sign In. </h3> <p><font size=-1> Google is not affiliated with the contents of <b>Chromium Code Reviews</b> or its owners. If you sign in, Google will share your email address with <b>Chromium Code Reviews</b>, but not your password or any other personal information. </font></p> <p><font size=-1> <b>Chromium Code Reviews</b> may use your email address to personalize your experience on their website. </font></p> </td> <td style="padding-left: 10px;" valign="top" align="center"> <div id="rhs"> <div id="rhs_login_signup_box"> <script><!-- function gaia_onLoginSubmit() { if (window.gaiacb_onLoginSubmit) { return gaiacb_onLoginSubmit(); } else { return true; } } function gaia_setFocus() { var f = null; if (document.getElementById) { f = document.getElementById("gaia_loginform"); } else if (window.gaia_loginform) { f = window.gaia_loginform; } if (f) { if (f.Email && (f.Email.value == null || f.Email.value == "")) { f.Email.focus(); } else if (f.Passwd) { f.Passwd.focus(); } } } --></script> <style type="text/css"><!-- div.errormsg { color: red; font-size: smaller; font-family:arial,sans-serif; } font.errormsg { color: red; font-size: smaller; font-family:arial,sans-serif; } --></style> <style type="text/css"><!-- .gaia.le.lbl { font-family: Arial, Helvetica, sans-serif; font-size: smaller; } .gaia.le.fpwd { font-family: Arial, Helvetica, sans-serif; font-size: 70%; } .gaia.le.chusr { font-family: Arial, Helvetica, sans-serif; font-size: 70%; } .gaia.le.val { font-family: Arial, Helvetica, sans-serif; font-size: smaller; } .gaia.le.button { font-family: Arial, Helvetica, sans-serif; font-size: smaller; } .gaia.le.rem { font-family: Arial, Helvetica, sans-serif; font-size: smaller; } .gaia.captchahtml.desc { font-family: arial, sans-serif; font-size: smaller; } .gaia.captchahtml.cmt { font-family: arial, sans-serif; font-size: smaller; font-style: italic; } --></style> <form id="gaia_loginform" action="https://www.google.com/accounts/ServiceLoginAuth?service=ah&amp;sig=d71ef8b8d6150b23958ad03b3bf546b7" method="post" onsubmit= "return(gaia_onLoginSubmit());" > <div id="gaia_loginbox"> <table class="form-noindent" cellspacing="3" cellpadding="5" width="100%" border="0"> <tr> <td valign="top" style="text-align:center" nowrap="nowrap" bgcolor="#e8eefa"> <input type="hidden" name="ltmpl" value="gm"> <div class="loginBox"> <table id="gaia_table" align="center" border="0" cellpadding="1" cellspacing="0"> <tr> <td colspan="2" align="center"> <font size="-1"> Sign in with your </font> <table> <tr> <td valign="top"> <img src="google_transparent.gif" alt="Google"> </img> </td> <td valign="middle"> <font size="+0"><b>Account</b></font> </td> </tr> </table> </td> </tr> <script type="text/javascript"><!-- function onPreCreateAccount() { return true; } function onPreLogin() { if (window["onlogin"] != null) { return onlogin(); } else { return true; } } --></script> <tr> <td colspan="2" align="center"> </td> </tr> <tr> <td nowrap="nowrap"> <div align="right"> <span class="gaia le lbl"> Email: </span> </div> </td> <td> <input type="hidden" name="continue" id="continue" value="http://codereview.chromium.org/_ah/login?continue=http://codereview.chromium.org/505032/description" /> <input type="hidden" name="service" id="service" value="ah" /> <input type="hidden" name="dsh" id="dsh" value="-228459803188649000" /> <input type="hidden" name="ltmpl" id="ltmpl" value="gm" /> <input type="hidden" name="ltmpl" id="ltmpl" value="gm" /> <input type="hidden" name="ahname" id="ahname" value="Chromium Code Reviews" /> <input type="hidden" name="GALX" value="Z-oARm-lgTQ" /> <input type="text" name="Email" id="Email" size="18" value="" class='gaia le val' /> </td> </tr> <tr> <td></td> <td align="left"> </td> </tr> <tr> <td align="right" nowrap="nowrap"> <span class="gaia le lbl"> Password: </span> </td> <td> <input type="password" name="Passwd" id="Passwd" size="18" class="gaia le val" /> </td> </tr> <tr> <td> </td> <td align="left"> </td> </tr> <tr> <td align="right" valign="top"> <input type="checkbox" name="PersistentCookie" id="PersistentCookie" value="yes" checked='checked' /> <input type="hidden" name='rmShown' value="1" /> </td> <td> <label for="PersistentCookie" class="gaia le rem"> Stay signed in </label> </td> </tr> <tr> <td> </td> <td align="left"> <input type="submit" class="gaia le button" name="signIn" value="Sign in" /> </td> </tr> <tr id="ga-fprow"> <td colspan="2" height="33.0" class="gaia le fpwd" align="center" valign="bottom"> <a href="http://www.google.com/support/accounts/bin/answer.py?answer=48598&amp;hl=en&amp;ctx=ch_ServiceLogin&amp;p=ah&amp;fpUrl=https%3A%2F%2Fwww.google.com%2Faccounts%2FForgotPasswd%3FfpOnly%3D1%26continue%3Dhttp%253A%252F%252Fcodereview.chromium.org%252F_ah%252Flogin%253Fcontinue%253Dhttp%253A%252F%252Fcodereview.chromium.org%252F505032%252Fdescription%26service%3Dah%26ltmpl%3Dgm" target=_top> Can&#39;t access your account? </a> </td> </tr> </table> </div> </td> </tr> </table> </div> <input type="hidden" name="asts" id="asts" value=""> </form> <form id="gaia_universallogin" action="https://www.google.com/accounts/ServiceLoginAuth?service=ah&amp;sig=d71ef8b8d6150b23958ad03b3bf546b7" method="post" onsubmit="return(gaia_onLoginSubmit());"> <input type="hidden" name="continue" id="continue" value="http://codereview.chromium.org/_ah/login?continue=http://codereview.chromium.org/505032/description" /> <input type="hidden" name="service" id="service" value="ah" /> <input type="hidden" name="dsh" id="dsh" value="-228459803188649000" /> <input type="hidden" name="ltmpl" id="ltmpl" value="gm" /> <input type="hidden" name="ltmpl" id="ltmpl" value="gm" /> <input type="hidden" name="ahname" id="ahname" value="Chromium Code Reviews" /> <input type="hidden" name="ltmpl" id="ltmpl" value="gm" /> </form> <br/> <table class="form-noindent" border="0" cellpadding="6" cellspacing="3" width="100%"> <tr> <td bgcolor="#e8eefa" align="center" style="font-size:83%"> <b>Don't have a Google Account? </b><br/> <a href='https://www.google.com/accounts/NewAccount?continue=http%3A%2F%2Fcodereview.chromium.org%2F_ah%2Flogin%3Fcontinue%3Dhttp%3A%2F%2Fcodereview.chromium.org%2F505032%2Fdescription&amp;service=ah&amp;ltmpl=gm&amp;sig=14656a8ac80c71318bdaaf14b1c8bc1a' > <b>Create an account now</b> </a> </td> </tr> </table> </div> <br/> </div> </td> </tr> </table> </div> <div class="footer"> &copy;2009 Google - <a href='http://www.google.com/'>Google Home</a> - <a href='https://www.google.com/accounts/TOS?hl=en'>Terms of Service</a> - <a href='http://www.google.com/intl/en/privacy.html'>Privacy Policy</a> - <a href='http://www.google.com/support/accounts?hl=en'>Help</a> </div> </div> </body> </html> Review URL: http://codereview.chromium.org/505032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34806 0039d316-1c4b-4281-b951-d872f2087c98
* Add tests for SocketStreamMetrics.satorux@chromium.org2009-12-152-1/+183
| | | | | | | | | | | | | | Tests for SocketStreamMetrics were missing, which is not great. Note that the tests became a bit more complex than I originally thought as the global histograms are shared by other tests in other files. TEST=net_unittests BUG=none Review URL: http://codereview.chromium.org/491045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34536 0039d316-1c4b-4281-b951-d872f2087c98
* Use factory to create histograms, and refcounts to track lifetimesjar@chromium.org2009-12-061-10/+12
| | | | | | | | | | | | | | | 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
* Try https proxy for websocket connection.ukai@chromium.org2009-11-162-1/+18
| | | | | | | | | | | | | | | Safari always uses "https" to get proxies for websocket connection, so chrome also tries it as well. Fix url replacement failure. We should use std::string instead of char[]. BUG=none TEST=net_unittests passes Review URL: http://codereview.chromium.org/397008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32050 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 32045.ukai@chromium.org2009-11-162-17/+1
| | | | | | Review URL: http://codereview.chromium.org/396009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32049 0039d316-1c4b-4281-b951-d872f2087c98
* Try https proxy for websocket connection.ukai@chromium.org2009-11-162-1/+17
| | | | | | | | | | | | Safari always uses "https" to get proxies for websocket connection, so chrome also tries it as well. BUG=none TEST=none Review URL: http://codereview.chromium.org/398004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32045 0039d316-1c4b-4281-b951-d872f2087c98
* Close immediately if no context is setukai@chromium.org2009-11-131-1/+6
| | | | | | | | | | | | | | Profile::GetDefaultRequestContext() is initialized lazily, on the UI thread. So, if SocketStreamHost runs before it has gotten lazily initialized yet, SocketStream won't have context. In this case, SocketStream will die. Rather than that, just close immediately. BUG=none TEST=none Review URL: http://codereview.chromium.org/384077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31886 0039d316-1c4b-4281-b951-d872f2087c98
* Style nit -- bind asterisks to the left rather than right.eroman@chromium.org2009-11-131-1/+1
| | | | | | Review URL: http://codereview.chromium.org/384112 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31884 0039d316-1c4b-4281-b951-d872f2087c98
* Plumb LoadLog into SocketStreamukai@chromium.org2009-11-133-14/+72
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/385003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31881 0039d316-1c4b-4281-b951-d872f2087c98
* Metrics of SocketStreamukai@chromium.org2009-11-114-1/+184
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/380004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31650 0039d316-1c4b-4281-b951-d872f2087c98
* There was confusion in the mock socket classes due tombelshe@google.com2009-11-111-4/+4
| | | | | | | | | | | | | | | | | | | overlapping names. The MockSocket is not actually a socket. It is an interface for fetching data for reads and writes on a socket. The MockClientSocket and MockTCPClientSocket are the actual sockets. Rename MockSocket to SocketDataProvider. Rename SSLMockSocket to SSLSocketDataProvider. Update all tests to reflect name change. BUG=none TEST=none Review URL: http://codereview.chromium.org/384024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31640 0039d316-1c4b-4281-b951-d872f2087c98
* Use URLRequestContext's host_resolver instead of SystemHostResolver.ukai@chromium.org2009-11-101-1/+2
| | | | | | | | | | | For unittests, we can inject mock host_resolver via SetHostResolver(). BUG=none TEST=none Review URL: http://codereview.chromium.org/384001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31545 0039d316-1c4b-4281-b951-d872f2087c98
* Add error reporting in net/websocketsukai@chromium.org2009-11-061-1/+1
| | | | | | | | | | | Fix response code for websocket authentication. BUG=none TEST=none Review URL: http://codereview.chromium.org/368003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31211 0039d316-1c4b-4281-b951-d872f2087c98
* Second patch in making destructors of refcounted objects private.jam@chromium.org2009-11-051-2/+6
| | | | | | | | 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
* Implement websocket throttling.ukai@chromium.org2009-11-044-25/+210
| | | | | | | | | | | | | | | | Implement the client-side requirements in the spec. 4.1 Handshake 1. If the user agent already has a Web Socket connection to the remote host (IP address) identified by /host/, even if known by another name, wait until that connection has been established or for that connection to have failed. BUG=none TEST=net_unittests passes Review URL: http://codereview.chromium.org/342052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30949 0039d316-1c4b-4281-b951-d872f2087c98
* Minor fixes in SocketStream.ukai@chromium.org2009-11-041-2/+8
| | | | | | | | | | | Commented on http://codereview.chromium.org/345025 BUG=none TEST=none Review URL: http://codereview.chromium.org/355022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30937 0039d316-1c4b-4281-b951-d872f2087c98
* Add LoadLog to ClientSocket::Connect().willchan@chromium.org2009-11-021-3/+6
| | | | | | | | TODO: Use LoadLog in FLIP code. Review URL: http://codereview.chromium.org/344026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30765 0039d316-1c4b-4281-b951-d872f2087c98
* Set STATE_CLOSE when error occured.ukai@chromium.org2009-10-301-6/+23
| | | | | | | | | | | Finish() when entered bad state. BUG=none TEST=none Review URL: http://codereview.chromium.org/345025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30569 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor SocketStream to report error to the delegate.ukai@chromium.org2009-10-302-40/+57
| | | | | | | | | | | | error status will be reported to the delegate (e.g. websocket experiment task) Finish() should be called at most once when STATE_CLOSE to STATE_NONE. BUG=none TEST=net_unittests didn't crash. Review URL: http://codereview.chromium.org/347026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30560 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 30551.ukai@chromium.org2009-10-302-48/+35
| | | | | | Review URL: http://codereview.chromium.org/342050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30552 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor SocketStream to report error to the delegate.ukai@chromium.org2009-10-302-35/+48
| | | | | | | | | | | error status will be reported to the delegate (e.g. websocket experiment task) BUG=none TEST=none Review URL: http://codereview.chromium.org/346010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30551 0039d316-1c4b-4281-b951-d872f2087c98
* Add proxy basic auth support in net/socket_stream.ukai@chromium.org2009-10-273-5/+395
| | | | | | | | | BUG=none TEST=net_unittests passes Review URL: http://codereview.chromium.org/330016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30176 0039d316-1c4b-4281-b951-d872f2087c98
* Fix DoReadWrite loop in SocketStream.ukai@chromium.org2009-10-261-6/+14
| | | | | | | | | | | | | | If Read in DoReadWrite succeeded synchronously, it failed to call next Read. Changed to call Read repeatedly after a Read finished both in synchronous return and asynchronous return. Also fixes Write case as well. BUG=none TEST=none Review URL: http://codereview.chromium.org/326009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30034 0039d316-1c4b-4281-b951-d872f2087c98
* Fix Check failure in SocketStream::DidRecevieData().ukai@chromium.org2009-10-231-2/+15
| | | | | | | | | | | | Socket::Read() may return 0, that indicates end-of-file. So, if we get 0 as result of Read(), finish the Socket Stream. BUG=none TEST=none Review URL: http://codereview.chromium.org/329006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29886 0039d316-1c4b-4281-b951-d872f2087c98
* A couple new io buffers that encapsulate more data and are therefore easier ↵vandebo@chromium.org2009-10-142-3/+3
| | | | | | | | | | | 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
* Add net/socket_stream.ukai@chromium.org2009-10-092-0/+877
This is used for WebSocket protocol. BUG=12497 TEST=none Review URL: http://codereview.chromium.org/243077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28526 0039d316-1c4b-4281-b951-d872f2087c98