summaryrefslogtreecommitdiffstats
path: root/net/http
Commit message (Collapse)AuthorAgeFilesLines
* Add one-time randomization support for FieldTrial, and the ability tojoi@chromium.org2011-05-102-7/+5
| | | | | | | | | | | | | | | | | | | | | | | disable field trials. I am going to have a need for both soon. Update some documentation about empty trial names, add TrialExists() method and update many call-sites to use this (it simplifies the previous logic which checked for existence and then for non-empty name, which can no longer happen). Refactor a bit in browser_main. While I'm in there and needing base/OWNERS approval, add an OWNERS file for base/metrics that adds jar@chromium.org as an owner for that directory. Initially committed as r84197. Rolled back due to DCHECK in official builds, r84373. Will re-submit with fix. BUG=81750 TEST=base_unittests Review URL: http://codereview.chromium.org/6883102 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84801 0039d316-1c4b-4281-b951-d872f2087c98
* iwyu: Include stringprintf.h where appropriate, part 1.jhawkins@chromium.org2011-05-104-1/+4
| | | | | | | | | | | BUG=82098 TEST=none R=thakis@chromium.org Review URL: http://codereview.chromium.org/6997006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84754 0039d316-1c4b-4281-b951-d872f2087c98
* Add requested documentation.abarth@chromium.org2011-05-061-0/+7
| | | | | | Review URL: http://codereview.chromium.org/6927074 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84493 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 84197 - Add one-time randomization support for FieldTrial, and the ↵joi@chromium.org2011-05-062-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | ability to disable field trials. I am going to have a need for both soon. Cleaning up some comments about empty trial names, adding static method TrialExists() and simplifying many call sites by using this method. While I'm in there and needing base/OWNERS approval, add an OWNERS file for base/metrics that adds jar@chromium.org as an owner for that directory. BUG=none TEST=base_unittests TBR=jam@chromium.org R=jar@chromium.org,phajdan.jr@chromium.org,mark@chromium.org,wtc@chromium.org Reason for revert: See http://crbug.com/81750 BUG=81750 TBR=joi@chromium.org Review URL: http://codereview.chromium.org/6931048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84373 0039d316-1c4b-4281-b951-d872f2087c98
* Http Cache: make sure that if we cancel a request after all datarvargas@google.com2011-05-053-1/+55
| | | | | | | | | | has been read, we don't consider it a truncated resource. BUG=68298 TEST=net_unittests Review URL: http://codereview.chromium.org/6927004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84315 0039d316-1c4b-4281-b951-d872f2087c98
* Re-connect if Keep-Alive connection has been closed by the time we get ↵asanka@chromium.org2011-05-058-41/+90
| | | | | | | | | | | around to reusing it. BUG=none TEST=net_unittests --gtest_filter=HttpNetworkTransactionTest.BasicAuthKeepAliveImpatientServer:*.BasicAuthKeepAliveNoBody:*.BasicAuthKeepAliveLargeBody && unit_tests --gtest_filter=*TransportClientSocketTest.IsConnected* Review URL: http://codereview.chromium.org/6902165 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84257 0039d316-1c4b-4281-b951-d872f2087c98
* Add one-time randomization support for FieldTrial, and the ability tojoi@chromium.org2011-05-052-7/+5
| | | | | | | | | | | | | | | | | | disable field trials. I am going to have a need for both soon. Cleaning up some comments about empty trial names, adding static method TrialExists() and simplifying many call sites by using this method. While I'm in there and needing base/OWNERS approval, add an OWNERS file for base/metrics that adds jar@chromium.org as an owner for that directory. BUG=none TEST=base_unittests TBR=jam@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84197 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ClientSocket to StreamSocket.sergeyu@chromium.org2011-05-056-7/+7
| | | | | | | | | BUG=80895 TEST=Compiles Review URL: http://codereview.chromium.org/6930014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84167 0039d316-1c4b-4281-b951-d872f2087c98
* Add a method to HMAC to indicate how large a digest it produces.abarth@chromium.org2011-04-301-20/+12
| | | | | | Review URL: http://codereview.chromium.org/6904148 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83681 0039d316-1c4b-4281-b951-d872f2087c98
* MAC Cookies (patch 2 of N)abarth@chromium.org2011-04-303-0/+345
| | | | | | | | | | This CL contains the algorithmic guts of MAC cookies, including generating the canonical represntation of the request and signing it using HMAC. This CL does not include support for body_hash, which requires some more thought. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=83600 Review URL: http://codereview.chromium.org/6901121 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83651 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r83600abarth@chromium.org2011-04-293-345/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83602 0039d316-1c4b-4281-b951-d872f2087c98
* MAC Cookies (2 of N)abarth@chromium.org2011-04-293-0/+345
| | | | | | | | | This CL contains the algorithmic guts of MAC cookies, including generating the canonical represntation of the request and signing it using HMAC. This CL does not include support for body_hash, which requires some more thought. Review URL: http://codereview.chromium.org/6901121 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83600 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 83524 - Re-connect if Keep-Alive connection has been closed by the ↵asanka@chromium.org2011-04-298-90/+41
| | | | | | | | | time we get around to reusing it. BUG=none TEST=net_unittests --gtest_filter=HttpNetworkTransactionTest.BasicAuthKeepAliveImpatientServer:*.BasicAuthKeepAliveNoBody:*.BasicAuthKeepAliveLargeBody && unit_tests --gtest_filter=*TransportClientSocketTest.IsConnected*Review URL: http://codereview.chromium.org/6878055 TBR=asanka@chromium.org Review URL: http://codereview.chromium.org/6880318 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83530 0039d316-1c4b-4281-b951-d872f2087c98
* Re-connect if Keep-Alive connection has been closed by the time we get ↵asanka@chromium.org2011-04-298-41/+90
| | | | | | | | | | | | | around to reusing it. BUG=none TEST=net_unittests --gtest_filter=HttpNetworkTransactionTest.BasicAuthKeepAliveImpatientServer:*.BasicAuthKeepAliveNoBody:*.BasicAuthKeepAliveLargeBody && unit_tests --gtest_filter=*TransportClientSocketTest.IsConnected* Review URL: http://codereview.chromium.org/6878055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83524 0039d316-1c4b-4281-b951-d872f2087c98
* Flesh out the onBeforeSendHeaders event a bit more. We now send thempcomplete@chromium.org2011-04-275-18/+23
| | | | | | | | | | | | | requestHeaders and allow the extension to modify them. I also changed the network delegate callbacks, so that they accept arguments beyond just a status code, and they do not outlive the object they are bound to. BUG=60101 TEST=automated Review URL: http://codereview.chromium.org/6899001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83246 0039d316-1c4b-4281-b951-d872f2087c98
* Stop refcounting ProxyService.willchan@chromium.org2011-04-276-17/+17
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/6873096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83222 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r83048 "Removed wchar_t from Time::FromString."maruel@chromium.org2011-04-262-6/+7
| | | | | | | | | | | | This causes regression on KeywordProviderTest.Edit on clang produced executable. TBR=shinyak BUG= TEST= Review URL: http://codereview.chromium.org/6893031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83055 0039d316-1c4b-4281-b951-d872f2087c98
* Removed wchar_t from Time::FromString.shinyak@google.com2011-04-262-7/+6
| | | | | | | | | | | | | Also, some of the test case are moved from pr_time_unittests to time_unittests. BUG=77962 TEST=base_unittests:TimeTest.* Review URL: http://codereview.chromium.org/6903022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83048 0039d316-1c4b-4281-b951-d872f2087c98
* InitFromPickle should return false on any deserializationwtc@chromium.org2011-04-221-4/+9
| | | | | | | | | | | | | | | error. Require socket_address when deserializing version 2 or later. R=rsleevi@chromium.org,rvargas@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/6880130 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82700 0039d316-1c4b-4281-b951-d872f2087c98
* Address post-review feedback for r82214. In addition, no longer attempt to ↵rsleevi@chromium.org2011-04-221-2/+2
| | | | | | | | | | | | gracefully recover from read errors when deserializing a X509Certificate from a Pickle. R=wtc BUG=7065 TEST=none Review URL: http://codereview.chromium.org/6880094 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82618 0039d316-1c4b-4281-b951-d872f2087c98
* Implementation of chrome.experimental.webRequest.onRequestSentbattre@chromium.org2011-04-201-0/+5
| | | | | | | | | BUG=60101 TEST=browser_tests --gtest_filter='ExtensionWebRequestApiTest.WebRequestEvents' Review URL: http://codereview.chromium.org/6853014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82308 0039d316-1c4b-4281-b951-d872f2087c98
* Added raw headers support to DevTools.vsevik@chromium.org2011-04-202-0/+18
| | | | | | | | | BUG=79084 TEST=Open DevTools->Network panel, look for raw HTTP headers for resources. Review URL: http://codereview.chromium.org/6825048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82275 0039d316-1c4b-4281-b951-d872f2087c98
* Change the HTTP cache to cache the entire certificate chain for SSL sitesrsleevi@chromium.org2011-04-201-5/+13
| | | | | | | | | | | | When persisting an X509Certificate to a pickle, such as when storing to the HTTP cache, persist any intermediate certificates in addition to the end-entity certificate. This will allow the complete certificate chain to be displayed to the end user when viewing a cached entry, independent of whether a network request has been made to that site during the browsing session. R=agl BUG=7065 TEST=X509CertificateTest.Persist Review URL: http://codereview.chromium.org/4645001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82214 0039d316-1c4b-4281-b951-d872f2087c98
* Added GetLocalAddress() in net::ClientSocket.sergeyu@chromium.org2011-04-192-0/+5
| | | | | | | | | BUG=None TEST=Unittests Review URL: http://codereview.chromium.org/6840033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82190 0039d316-1c4b-4281-b951-d872f2087c98
* linux: don't always print dlopen errors from LoadNativeLibraryevan@chromium.org2011-04-181-2/+2
| | | | | | | | | | | Instead, return them to the caller and let the caller decide whether the error is worth notifying the user about. BUG=79068 Review URL: http://codereview.chromium.org/6864020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82008 0039d316-1c4b-4281-b951-d872f2087c98
* Allow extensions to redirect requests in onBeforeRequest.mpcomplete@chromium.org2011-04-152-2/+2
| | | | | | | | | | | BUG=60101 TEST=no Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=81479 Review URL: http://codereview.chromium.org/6677148 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81782 0039d316-1c4b-4281-b951-d872f2087c98
* Move crypto files out of base, to a top level directory.rvargas@google.com2011-04-141-8/+8
| | | | | | | | | | | | | src/crypto is now an independent project that contains our cryptographic primitives (except md5 and sha1). This removes the base dependency from nss, openssl and sqlite. BUG=76996 TEST=none Review URL: http://codereview.chromium.org/6805019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81611 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Allow extensions to redirect requests in onBeforeRequest."mpcomplete@chromium.org2011-04-132-2/+2
| | | | | | | The change introduced a regression in the WebRequestEvents api test. TBR=mpcomplete git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81503 0039d316-1c4b-4281-b951-d872f2087c98
* Allow extensions to redirect requests in onBeforeRequest.mpcomplete@chromium.org2011-04-132-2/+2
| | | | | | | | | BUG=60101 TEST=no Review URL: http://codereview.chromium.org/6677148 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81479 0039d316-1c4b-4281-b951-d872f2087c98
* Http Cache: Only cache range requests when the server providesrvargas@google.com2011-04-134-23/+131
| | | | | | | | | | strong validators. BUG=77085 TEST=net_unittests Review URL: http://codereview.chromium.org/6824048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81444 0039d316-1c4b-4281-b951-d872f2087c98
* Include base/win/scoped_comptr.h instead of base/scoped_comptr_win.h.tfarina@chromium.org2011-04-121-3/+3
| | | | | | | | | | | | | | | | | Fix up all the callers to use the new location and namespace. Also, delete the stub file since it isn't included by anyone more. (Note: This was a TODO for brettw). BUG=None TEST=None R=brettw@chromium.org Review URL: http://codereview.chromium.org/6825055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81303 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r61181.agl@chromium.org2011-04-122-60/+0
| | | | | | | | | | This reverts r61181 although, due to the age of that revision, the revert was mostly done manually. This is the start of ripping out Snap Start support. BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81288 0039d316-1c4b-4281-b951-d872f2087c98
* Turn off backup sockets for most tests in net_unittests.willchan@chromium.org2011-04-081-20/+0
| | | | | | | | | | BUG=78303 TEST=net_unittests Review URL: http://codereview.chromium.org/6814017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80972 0039d316-1c4b-4281-b951-d872f2087c98
* Remove svn:mergeinfo props from many files.pkasting@chromium.org2011-04-083-3/+3
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/6814027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80878 0039d316-1c4b-4281-b951-d872f2087c98
* Rename a number of classes previously labeled "TCP" to "Transport" inmbelshe@chromium.org2011-04-0711-124/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | preparation for non-TCP transports. This helps because the alternative is to either use non-TCP protocols (like SCTP) in classes which are called "TCPClientSocketPool", or to clone the code as "SCTPClientSocketPool", both of which are less than ideal. For now, we're just testing transports, so the TransportSocketPool classes will determine a single type of transport and just use them. In the future we'll likely need to figure out how to deal with runtime selection of transports, and probably support use of multiple transports either within the same pools or within subpools. But that is for the future. Note that the histograms have some "tcp" references to them. I didn't change these to "transport" yet, because it will effect existing histograms. Renames include: classes: TCPClientSocketPool -> TransportClientSocketPool MockTCPClientSocketPool -> MockTransportClientSocketPool TCPSocketParams -> TransportSocketParams methods (not the exhaustive list): CreateTCPClientSocket() -> CreateTransportClientSocket() DoTCPConnect() -> DoTransportConnect() BUG=none TEST=none Review URL: http://codereview.chromium.org/6804028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80781 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: recognize Heimdal on Gentoo Linux for Kerberos HTTP authentication.phajdan.jr@chromium.org2011-04-061-0/+1
| | | | | | | | | This is upstreaming a Gentoo Linux patch. BUG=none Review URL: http://codereview.chromium.org/6794048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80585 0039d316-1c4b-4281-b951-d872f2087c98
* Move BuildRequestHeaders back to http_network_transaction.cc now that it's ↵abarth@chromium.org2011-04-064-119/+73
| | | | | | | | not needed by SPDY. This reduces the dependencies of http_util.cc and is a partial revert of r63213. Review URL: http://codereview.chromium.org/6794038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80557 0039d316-1c4b-4281-b951-d872f2087c98
* net: remove forced renegotiation checksagl@chromium.org2011-04-052-7/+1
| | | | | | | | | | | | | | | We lost this battle. We had to step back from requirement the renegotiation extension, even on sites which we know support it, because of the number of MITM proxies. Since there doesn't seem to be any way forward, this change removes the code. BUG=55410 TEST=compiles Review URL: http://codereview.chromium.org/6792032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80513 0039d316-1c4b-4281-b951-d872f2087c98
* Fix line endingsabarth@chromium.org2011-04-041-3/+3
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80392 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Make sure that the we only transition torvargas@chromium.org2011-04-042-1/+24
| | | | | | | | | | | STATE_NOTIFY_BEFORE_SEND_HEADERS when we have a response. BUG=78105 TEST=net_unittests Review URL: http://codereview.chromium.org/6691016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80290 0039d316-1c4b-4281-b951-d872f2087c98
* Fix crash in layout tests due to my previous network delegate change (r79905).mpcomplete@chromium.org2011-04-011-1/+1
| | | | | | | | | | | AddRef the delegate_callback before any early returns, since it will be Released in DoBuildRequestComplete. BUG=webkit/57539 TEST=no TBR=willchan git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80114 0039d316-1c4b-4281-b951-d872f2087c98
* Add request_id to HttpRequestInfo and pass it to the NetworkDelegate for events.mpcomplete@chromium.org2011-03-306-44/+128
| | | | | | | | | | | | | | This lets us look up the request associated with an http transaction and send event details for the webRequest.onBeforeRequest extension event. I also hooked up the onBeforeRequest event for HTTP network and cache transactions so that they are separate from other requests. This lets us have the request header information. BUG=60101 TEST=no Review URL: http://codereview.chromium.org/6698009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79905 0039d316-1c4b-4281-b951-d872f2087c98
* Disable HTTP auth schemes on permanent errors.asanka@chromium.org2011-03-303-13/+158
| | | | | | | | | | | | | | | | | The underlying implementation for the Negotiate authentication scheme might return error codes that indicate error conditions that we are unlikely to recover from. If we see those, then treat these as permanent errors and disable the auth scheme for the rest of the transaction. We were already doing this partly for cases where there are no default credentials. This patch extends the behavior to additional error codes. BUG=49950 TEST=net_unittests --gtest_filter=HttpAuthControllerTest.PermanentErrors Review URL: http://codereview.chromium.org/6745018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79848 0039d316-1c4b-4281-b951-d872f2087c98
* Add ignore limits flag and use for sync requestkristianm@google.com2011-03-304-5/+11
| | | | | | | | | | | | | Letting sync request ignore the socket and group limits when loading to prevent the WebCore thread from locking up. BUG=45986,58703 TEST=No new tests Review URL: http://codereview.chromium.org/6756004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79817 0039d316-1c4b-4281-b951-d872f2087c98
* Moved the logic to initialize a ClientSocketHandle with the relevant socket ↵sanjeevr@chromium.org2011-03-292-168/+46
| | | | | | | | | | | | pool based on the proxy information to static helpers in ClientSocketPoolManager from HttpStreamFactoryImpl::Job::DoInitConnection. This will allow us to reuse this logic for raw socket connections that need to tunnel through the proxies (for example the XMPP connection made by jingle). BUG=None TEST=net_unittests, Test with proxy servers. R=willchan@chromium.org Review URL: http://codereview.chromium.org/6733042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79641 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-2835-76/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw_scoped_refptr_mismatch_checker.h ref_counted.cc ref_counted.h ref_counted_memory.cc ref_counted_memory.h ref_counted_unittest.cc scoped_callback_factory.h scoped_comptr_win.h scoped_handle.h scoped_native_library.cc scoped_native_library.h scoped_native_library_unittest.cc scoped_nsobject.h scoped_open_process.h scoped_ptr.h scoped_ptr_unittest.cc scoped_temp_dir.cc scoped_temp_dir.h scoped_temp_dir_unittest.cc scoped_vector.h singleton.h singleton_objc.h singleton_unittest.cc linked_ptr.h linked_ptr_unittest.cc weak_ptr.cc weak_ptr.h weak_ptr_unittest.cc BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6714032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
* Enable IP pooling for SPDY.mbelshe@chromium.org2011-03-252-7/+13
| | | | | | | | | | Added a command-line switch: --enable-ip-pooling BUG=42669 TEST=SpdySessionTest.IPPool* Review URL: http://codereview.chromium.org/6594116 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79372 0039d316-1c4b-4281-b951-d872f2087c98
* Fix flakiness in Alternate-Protocol tests.willchan@chromium.org2011-03-181-55/+21
| | | | | | | | | | | | | They would hit the backup socket timer. This fixes that. I've also removed the test exclusions added to work around the flakiness. BUG=76592 TEST=net_unittests isn't flaky Review URL: http://codereview.chromium.org/6714013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78720 0039d316-1c4b-4281-b951-d872f2087c98
* The SPDY Exclusions were broken; the intent of the exclusion is so that ourmbelshe@chromium.org2011-03-164-19/+20
| | | | | | | | | | | | | benchmark harness can force SPDY, but still report to the benchmark harness itself in non-spdy mode. BUG=none TEST=none Review URL: http://codereview.chromium.org/6674031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78400 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 78061 - Revert 78034 - Removing a TODO and cleaning up code.kristianm@google.com2011-03-151-2/+2
| | | | | | | | | | | | | | | | | | | This is done in preparation of a patch to let some request ignore the max sockets and max sockets to group limits. BUG=none TEST=none Review URL: http://codereview.chromium.org/6679001 TBR=kristianm@google.com Review URL: http://codereview.chromium.org/6685057 TBR=kristianm@google.com Review URL: http://codereview.chromium.org/6696017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78189 0039d316-1c4b-4281-b951-d872f2087c98