summaryrefslogtreecommitdiffstats
path: root/net
Commit message (Collapse)AuthorAgeFilesLines
* Improved library loading to bypass libraries that don't contain all the ↵ahendrickson@google.com2010-06-143-57/+129
| | | | | | | | | | | | | | | function symbols we need. Warnings on GSSAPI load failure. Fixed potential memory leak. BUG=33033. TEST=None. Review URL: http://codereview.chromium.org/2706003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49678 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor SpdyStream.ukai@chromium.org2010-06-1413-348/+510
| | | | | | | | | | | | | | | Split SpdyStream into two parts: base SpdyStream and SpdyHttpStream. SpdyStream is an interface to SpdySession and provides base implementation as spdy stream. SpdyHttpStream is derived class of SpdyStream and used for [Spdy|Http]NetworkTransaction. BUG=42320 TEST=none Review URL: http://codereview.chromium.org/2564001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49667 0039d316-1c4b-4281-b951-d872f2087c98
* Add metrics for measuring spdy transaction latency.mbelshe@chromium.org2010-06-132-8/+30
| | | | | | | | | | BUG=none TEST=none TBR=lzheng Review URL: http://codereview.chromium.org/2811001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49656 0039d316-1c4b-4281-b951-d872f2087c98
* Add dependency on libevent where required.phajdan.jr@chromium.org2010-06-121-0/+6
| | | | | | | | | | | | | Otherwise some portions of the code try to use bundled libevent headers instead of the system-provided ones if -Duse_system_libevent=1 is used. TEST=none BUG=none Review URL: http://codereview.chromium.org/2729012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49634 0039d316-1c4b-4281-b951-d872f2087c98
* Use KDEHOME variable instead of KDE_HOME for locating KDE directorydavidben@chromium.org2010-06-122-21/+21
| | | | | | | | | | | | KDE uses the former, not the latter. R=mdm,wtc BUG=none TEST=unit tests updated, change KDE proxy settings with custom KDEHOME and verify Chrome picks it up Review URL: http://codereview.chromium.org/2779015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49620 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49600 - Http cache: Remove deprecated code.rvargas@google.com2010-06-113-16/+84
| | | | | | | | | | | | BUG=26729 TEST=current tests Review URL: http://codereview.chromium.org/2776007 TBR=rvargas@google.com Review URL: http://codereview.chromium.org/2779020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49613 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Remove deprecated code.rvargas@google.com2010-06-113-84/+16
| | | | | | | | | BUG=26729 TEST=current tests Review URL: http://codereview.chromium.org/2776007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49600 0039d316-1c4b-4281-b951-d872f2087c98
* SPDY: Minor code cleanup.willchan@chromium.org2010-06-111-1/+3
| | | | | | Review URL: http://codereview.chromium.org/2776008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49590 0039d316-1c4b-4281-b951-d872f2087c98
* Http Cache: Remove blocking calls to GetAvailableRange.rvargas@google.com2010-06-1113-64/+293
| | | | | | | | | | | | | This seems to be the last piece of the http cache code that should be upgraded to non-blocking APIs. BUG=26729 TEST=unittests Review URL: http://codereview.chromium.org/2663003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49542 0039d316-1c4b-4281-b951-d872f2087c98
* Second attempt to land r49489. wtc@chromium.org2010-06-115-11/+88
| | | | | | | | | | | | | | | | | | | | Use NSS for SSL by default on Mac OS X. To use Mac OS X Secure Transport in Chromium, specify the --use-system-ssl command-line switch, which also replaced the --use-schannel command-line switch for Windows. All other programs are hardcoded to use NSS for SSL. If SSL client authentication is requested, fall back on Mac OS X Secure Transport for now. Original review URL: http://codereview.chromium.org/2747002/show R=mark,mbelshe BUG=30689 TEST=none Review URL: http://codereview.chromium.org/2769012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49540 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49489 - Use NSS for SSL by default on Mac OS X.hayato@chromium.org2010-06-115-88/+11
| | | | | | | | | | | | | | | | | | | To use Mac OS X Secure Transport in Chromium, specify the --use-system-ssl command-line switch, which also replaced the --use-schannel command-line switch for Windows. All other programs are hardcoded to use NSS for SSL. If SSL client authentication is requested, fall back on Mac OS X Secure Transport for now. R=mark,mbelshe BUG=30689 TEST=none Review URL: http://codereview.chromium.org/2747002 TBR=wtc@chromium.org Review URL: http://codereview.chromium.org/2775005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49496 0039d316-1c4b-4281-b951-d872f2087c98
* Use NSS for SSL by default on Mac OS X.wtc@chromium.org2010-06-115-11/+88
| | | | | | | | | | | | | | | | To use Mac OS X Secure Transport in Chromium, specify the --use-system-ssl command-line switch, which also replaced the --use-schannel command-line switch for Windows. All other programs are hardcoded to use NSS for SSL. If SSL client authentication is requested, fall back on Mac OS X Secure Transport for now. R=mark,mbelshe BUG=30689 TEST=none Review URL: http://codereview.chromium.org/2747002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49489 0039d316-1c4b-4281-b951-d872f2087c98
* A couple of style mods in proxy_config_service_linux.ccziadh@chromium.org2010-06-111-11/+11
| | | | | | | | | | | Relates to argument passing and iterating over an STL container. r=eroman Review URL: http://codereview.chromium.org/2735012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49478 0039d316-1c4b-4281-b951-d872f2087c98
* Download filename encoding fix [try2]:estade@chromium.org2010-06-112-4/+37
| | | | | | | | | | | | | Fall back on other charsets when using the URL to suggest a filename. The URL should be escaped UTF-8, but may use another encoding instead. Check for empty string in DecodeWord (avoids crash). BUG=44301 TEST=see bug. Also, net_unittests. Review URL: http://codereview.chromium.org/2733005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49475 0039d316-1c4b-4281-b951-d872f2087c98
* Track whether a page was loaded via a proxy so that we canmbelshe@chromium.org2010-06-101-0/+5
| | | | | | | | | | | evaluate performance. BUG=none TEST=none Review URL: http://codereview.chromium.org/2764004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49468 0039d316-1c4b-4281-b951-d872f2087c98
* Return NULL instead of false when appropriate.evan@chromium.org2010-06-101-1/+1
| | | | | | | | (Found by clang.) Review URL: http://codereview.chromium.org/2725010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49466 0039d316-1c4b-4281-b951-d872f2087c98
* Adding flushing of files on chromeos, so that when something is downloaded, ↵dhg@chromium.org2010-06-103-0/+41
| | | | | | | | | | its written out ot disk shortly after finish downloading. BUG=chromium-os:2661 TEST=none Review URL: http://codereview.chromium.org/2770002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49461 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: check the timestamps of .kde and .kde4 to figure out which to use for ↵mdm@chromium.org2010-06-102-6/+38
| | | | | | | | | | proxy configuration in KDE. BUG=none TEST=under KDE4, if you have both .kde and .kde4, the one with a newer config directory within will be used Review URL: http://codereview.chromium.org/2729014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49459 0039d316-1c4b-4281-b951-d872f2087c98
* Reland my close on idle socket change (r43882+r44150).willchan@chromium.org2010-06-104-44/+169
| | | | | | | | | | I reverted it the first time because it was suspected of causing a hang on the IO thread. A different CL caused that. When I relanded it previously, the fix for the hang on the IO thread broke this (changed an assertion). I've now deleted that assertion. BUG=32817 Review URL: http://codereview.chromium.org/2716004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49444 0039d316-1c4b-4281-b951-d872f2087c98
* Removed gssapi namespace.ahendrickson@google.com2010-06-104-184/+177
| | | | | | | | | BUG=33033. TEST=None. Review URL: http://codereview.chromium.org/2682006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49414 0039d316-1c4b-4281-b951-d872f2087c98
* Async support for HttpAuthHandler::GenerateAuthToken.cbentzel@chromium.org2010-06-1021-230/+168
| | | | | | | | | | | | | | This CL changes the signature of GenerateAuthToken to support an async completion of GenerateAuthToken. At this point, all of the implementations complete synchronously, but a future version will change Negotiate to complete asynchronously. TEST=net_unittests BUG=42222 Review URL: http://codereview.chromium.org/2671001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49398 0039d316-1c4b-4281-b951-d872f2087c98
* More robust handling of GSSAPI error stringscbentzel@chromium.org2010-06-091-6/+20
| | | | | | | | | | | | | | | RFC 2744 does not require string types to be NULL terminated, because their length is explicitly passed as part of the gss_buffer_desc (see Section 3.2.). As such, when printing error strings, the length should be explicitly stated. This is shown in the example code of gss_display_status in Section 5.11. While in practice this is the case (at least from checking MIT and Heimdal's error handling code), it doesn't hurt to be defensive. In addition, there are some conditions where value may be NULL or length may be 0, so make sure to check for these prior to calling StringPrintf, so as not to crash. Finally, for the extreme defensive case, make sure that the length (which is a size_t) is capped at INT_MAX prior to printing. Contributed by ryan.sleevi@gmail.com BUG=33033 TEST=None Review URL: http://codereview.chromium.org/2646004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49299 0039d316-1c4b-4281-b951-d872f2087c98
* Mark HostCache as NonThreadSafe.cbentzel@chromium.org2010-06-092-25/+48
| | | | | | | | | BUG=None TEST=net_unittests, and ran chrome with net_internals DNS. Review URL: http://codereview.chromium.org/2721005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49285 0039d316-1c4b-4281-b951-d872f2087c98
* revert r49217, which caused unit test failures on win:estade@chromium.org2010-06-091-10/+3
| | | | | | | | | | | | | Download filename encoding fix: Fall back on other charsets when using the URL to suggest a filename. The URL should be escaped UTF-8, but may use another encoding instead. BUG=44301 TEST=see bug. Review URL: http://codereview.chromium.org/2775002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49219 0039d316-1c4b-4281-b951-d872f2087c98
* Download filename encoding fix:estade@chromium.org2010-06-081-3/+10
| | | | | | | | | | | Fall back on other charsets when using the URL to suggest a filename. The URL should be escaped UTF-8, but may use another encoding instead. BUG=44301 TEST=see bug. Review URL: http://codereview.chromium.org/2635006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49217 0039d316-1c4b-4281-b951-d872f2087c98
* Allow bypassing a block of IP addresses using CIDR notation in the proxy ↵eroman@chromium.org2010-06-0810-88/+453
| | | | | | | | | | | | | | | | | bypass list. For example: 10.3.1.3/16 2020:ffff::/96 Note that similar to firefox, this is only applied to IP literals in URLs, and NOT to the resolved addresses of URLs. BUG=9835 Review URL: http://codereview.chromium.org/2663001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49211 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert an idle sockets change to trigger reliability bot. Will ↵willchan@chromium.org2010-06-084-172/+45
| | | | | | | | revert again soon." Review URL: http://codereview.chromium.org/2761001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49146 0039d316-1c4b-4281-b951-d872f2087c98
* Revert an idle sockets change to trigger reliability bot. Will revert again ↵willchan@chromium.org2010-06-084-45/+172
| | | | | | | | soon. Review URL: http://codereview.chromium.org/2760001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49145 0039d316-1c4b-4281-b951-d872f2087c98
* Implement WebSocketHandshake*Handler to support Http{Request,Response}Info.ukai@chromium.org2010-06-083-36/+161
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/2579002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49137 0039d316-1c4b-4281-b951-d872f2087c98
* Reapply 49081: AppCache: Use a MockHttpServer instead of starting a seperate ↵michaeln@chromium.org2010-06-072-0/+7
| | | | | | | | | | | http server for update job unittests. This should reduce flakiness and timing variance and the total time it takes to conduct these tests. BUG=45664 TEST=yes Review URL: http://codereview.chromium.org/2662006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49088 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49081 - AppCache: Use a MockHttpServer instead of starting a seperate ↵michaeln@google.com2010-06-072-7/+0
| | | | | | | | | | | | | | | http server for update job unittests. This should reduce flakiness and timing variance and the total time it takes to conduct these tests. BUG=45664 TEST=yes Review URL: http://codereview.chromium.org/2624003 TBR=michaeln@chromium.org Review URL: http://codereview.chromium.org/2669003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49084 0039d316-1c4b-4281-b951-d872f2087c98
* AppCache: Use a MockHttpServer instead of starting a seperate http server ↵michaeln@chromium.org2010-06-072-0/+7
| | | | | | | | | | | | for update job unittests. This should reduce flakiness and timing variance and the total time it takes to conduct these tests. BUG=45664 TEST=yes Review URL: http://codereview.chromium.org/2624003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49081 0039d316-1c4b-4281-b951-d872f2087c98
* Do not attempt to reuse active sockets after a socket pool flush (usually a ↵willchan@chromium.org2010-06-0714-39/+104
| | | | | | | | | | | network change). Implements this functionality by adding an |id_| field to ClientSocketPoolBaseHelper that is incremented on each Flush(). BUG=45872 Review URL: http://codereview.chromium.org/2647003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49076 0039d316-1c4b-4281-b951-d872f2087c98
* Make SpdySessionPool observe network changes.willchan@chromium.org2010-06-077-12/+37
| | | | | | | | BUG=40457 Review URL: http://codereview.chromium.org/2627003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49075 0039d316-1c4b-4281-b951-d872f2087c98
* SPDY: Fix stream cancellation during ReadResponseBody() callback.willchan@chromium.org2010-06-072-3/+127
| | | | | | | | BUG=44800 Review URL: http://codereview.chromium.org/2565005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49061 0039d316-1c4b-4281-b951-d872f2087c98
* Experiment for number of persistent connections to serverziadh@chromium.org2010-06-071-0/+12
| | | | | | | | | | | | | | | Currently Chrome, Firefox, and IE8 have the number of outgoing connections to each host(server) set at 6. Safari uses 4, and Fasterfox (a plugin for Firefox that supposedly configures it to run faster) uses 8. We would like to see how much of an effect this value has on browsing. Too large a value might cause us to run into SYN flood detection mechanisms. This experiment assigns a value of (4, 6, 8, 16) at random at program launch, and uses it throughout the run. r=jar Review URL: http://codereview.chromium.org/2685005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49057 0039d316-1c4b-4281-b951-d872f2087c98
* Import the server-side code for URL encoding & unittest.mbelshe@chromium.org2010-06-077-58/+786
| | | | | | | | | | BUG=none TEST=UrlToFilenameEncoderTest Review URL: http://codereview.chromium.org/2511001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49056 0039d316-1c4b-4281-b951-d872f2087c98
* HttpAuthHandler's are no longer refcounted.cbentzel@chromium.org2010-06-0726-136/+152
| | | | | | | | | | | | Since HttpAuthHandler objects are no longer contained inside of the HttpAuthCache, the lifetime of the handlers is more clearly defined. TEST=net_unittests (including some changes) BUG=42222 Review URL: http://codereview.chromium.org/2635004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49052 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of DISALLOW_EVIL_CONSTRUCTORS macro usage in our code base.tfarina@chromium.org2010-06-0724-47/+47
| | | | | | | | | | | TODO: Fix the remaining usages in third_party libraries and get rid of the macro in question. BUG=None TEST=trybots Review URL: http://codereview.chromium.org/2657005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49032 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r45027: "Disable HttpNetworkSessionTest.FlushOnNetworkChange under ↵willchan@chromium.org2010-06-041-3/+0
| | | | | | | | | | | ThreadSanitizer." The test no longer exists. BUG=41958 Review URL: http://codereview.chromium.org/2662004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48971 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a regression on Windows introduced by r48650.wtc@chromium.org2010-06-042-9/+34
| | | | | | | | | | | | | | | | | | | For some reason, passing NULL as the hCertStore argument to CertAddEncodedCertificateToStore causes CertGetCertificateChain to fail to build the certificate chain for some servers, even though the hCertStore member of the server certificate context should contain its CA certificates. So I reverted to passing our in-memory certificate store as the hCertStore argument to CertAddEncodedCertificateToStore. R=agl,mark BUG=45706 TEST=Visit https://moversguide.usps.com/ on Windows. Should not get the "certificate is not trusted" SSL error page. Review URL: http://codereview.chromium.org/2605007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48953 0039d316-1c4b-4281-b951-d872f2087c98
* Preliminary support for GSSAPI (Linux and Mac OS X).ahendrickson@google.com2010-06-044-0/+681
| | | | | | | | | | | Second CL. BUG=33033. TEST=None. Review URL: http://codereview.chromium.org/1736009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48945 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes an invalid read bug in ClientSocketPoolBaseHelper and cancels ↵willchan@chromium.org2010-06-032-0/+38
| | | | | | | | | | | | | ConnectJobs on network changes. The bug seems to be running callbacks that delete the ClientSocketPoolBaseHelper object. We need to hold onto a self-reference in the stack frame. The new test does not crash, but will trigger invalid reads in valgrind without the fix. The fixes are overly conservative. At every entry point that can lead to releasing the last reference, we hold onto a self-reference. Not all of them can currently lead to crashes since the last operation is running the callback. But this conservative measure will help future-proof the code in case anyone adds code without thinking about it. The references are cheap anyway. BUG=44724 Review URL: http://codereview.chromium.org/2250001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48895 0039d316-1c4b-4281-b951-d872f2087c98
* Convert some DCHECKs() for redirect into CHECKs() to make sure they aren't ↵eroman@chromium.org2010-06-031-2/+2
| | | | | | | | | | getting hit. BUG=20470 Review URL: http://codereview.chromium.org/2508001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48870 0039d316-1c4b-4281-b951-d872f2087c98
* Make HostResolver NonThreadSafe and not thread safe refcounted.willchan@chromium.org2010-06-036-121/+183
| | | | | | | | | | Required making SyncHostResolverBridge not use RefCountedThreadSafe. I refactored the innards to have a thread safe refcounted Core implementation. BUG=45298 Review URL: http://codereview.chromium.org/2122015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48867 0039d316-1c4b-4281-b951-d872f2087c98
* Fix leaky spdy sessions and remove suppression.vandebo@chromium.org2010-06-033-4/+10
| | | | | | | | | BUG=44738 TEST=heap checker no longer complains and tests still pass Review URL: http://codereview.chromium.org/2477004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48837 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor WebSocket handshake.ukai@chromium.org2010-06-036-194/+598
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/2452001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48816 0039d316-1c4b-4281-b951-d872f2087c98
* Rework the logging for sockets/connectjobs.eroman@chromium.org2010-06-0333-187/+315
| | | | | | | | | | | | | | | | | | In particular, make it work better when using backup jobs / late binding (the display was very confused before because of how these asynchronous events would nest). Also changed the paradigm for how PassiveLogCollector preserves these async associations -- this fixes how it replays the events to net-internals. (Before we would collapse the event streams into the SOURCE_URL_REQUEST which lost some hiearchy.. now I keep the separate streams). Some of the particular changes to the event streams: * ConnectJobs now create their own source stream internally. * Sockets are now bounded by +SOCKET_ALIVE / -SOCKET_ALIVE events (removed the one-off SOCKET_DONE event). * The socket log streams contains +SOCKET_IN_USE / -SOCKET_IN_USE event blocks to show which URLRequest was controlling it at various points in time (this makes it much easier to understand which read/writes belonged to a particular network transaction when a socket gets re-used). * ConnectJobs are bounded by +SOCKET_POOL_CONNECT_JOB / - SOCKET_POOL_CONNECT_JOB events. * ConnectJobs log the net error they failed with. * Removed the SOCKET_BACKUP_TIMER_EXTENDED event. Review URL: http://codereview.chromium.org/2363003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48797 0039d316-1c4b-4281-b951-d872f2087c98
* Refactored Histogram::FactoryGet() to be style-compliantziadh@chromium.org2010-06-022-5/+5
| | | | | | | | | | Currently, two (2) overloaded versions of Histogram::FactoryGet() exist. Google's C++ style guide discourages such implementations. I refactored the methods into Histogram::FactoryGet() (no name change), which takes 'Sample' types as arguments, and Histogram::FactoryTimeGet(), which takes base::TimeDelta types as arguments. r = jar Review URL: http://codereview.chromium.org/2423004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48766 0039d316-1c4b-4281-b951-d872f2087c98
* Restricting lifetime of python sync server on Windows via a JobObject.rsimha@chromium.org2010-06-022-4/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a sync integration test runs for 30 seconds or more, OutOfProcTestRunner forcibly kills the test case executable. This leaves an orphaned python server instance in memory. When a subsequent test case is run, it attempts to kick off a new python server and immediately checks for the existence of a running server, following which it pumps messages to the server instance. If the server detected by the test case happens to be the old orphaned instance (that goes on to die when a new server instance is started), test cases can fail. This change list restricts the lifetime of the python.exe process started by a test case such that if the test case is killed by OutOfProcTestRunner, the python server instance it created dies with it. In order to restrict the lifetime of a test server, it needs to be started as a job. When a test server is spawned as a child process by a test case that is running under a debugger, the child process needs to be created using the CREATE_BREAKAWAY_FROM_JOB flag to first disassociate it from the JobObject created by the debugger. TestServerLauncher::Start() used to invoke base::LaunchApp() in order to create the child process. This changelist implements a new method in class TestServerLauncher called LaunchTestServerAsJob(). The call to base::LaunchApp() in TestServerLauncher::Start() is replaced with a call to TestServerLauncher::LaunchTestServerAsJob(). BUG=43777 TEST=sync_integration_tests Review URL: http://codereview.chromium.org/2344001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48762 0039d316-1c4b-4281-b951-d872f2087c98