Index: chrome/browser/net/http_pipelining_compatibility_client.h |
diff --git a/chrome/browser/net/http_pipelining_compatibility_client.h b/chrome/browser/net/http_pipelining_compatibility_client.h |
deleted file mode 100644 |
index f249af6ccb505af80eacf86168bcb41f12c32b50..0000000000000000000000000000000000000000 |
--- a/chrome/browser/net/http_pipelining_compatibility_client.h |
+++ /dev/null |
@@ -1,158 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_BROWSER_NET_HTTP_PIPELINING_COMPATIBILITY_CLIENT_H_ |
-#define CHROME_BROWSER_NET_HTTP_PIPELINING_COMPATIBILITY_CLIENT_H_ |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/memory/scoped_vector.h" |
-#include "net/base/completion_callback.h" |
-#include "net/base/io_buffer.h" |
-#include "net/url_request/url_request.h" |
-#include "net/url_request/url_request_context.h" |
- |
-class IOThread; |
- |
-namespace chrome_browser_net { |
- |
-struct RequestInfo { |
- std::string filename; // The path relative to the test server's base_url. |
- std::string expected_response; // The expected body of the response. |
-}; |
- |
-namespace internal { |
- |
-class PipelineTestRequest { |
- public: |
- enum Status { |
- STATUS_SUCCESS, |
- STATUS_REDIRECTED, // Response was redirected. We won't follow. |
- STATUS_CERT_ERROR, // Any certificate problem. |
- STATUS_BAD_RESPONSE_CODE, // Any non-200 response. |
- STATUS_NETWORK_ERROR, // Any socket error reported by the network |
- // layer. |
- STATUS_TOO_LARGE, // The response matched, but had extra data on |
- // the end. |
- STATUS_TOO_SMALL, // The response was shorter than expected, but |
- // what we got matched. |
- STATUS_CONTENT_MISMATCH, // The response didn't match the expected value. |
- STATUS_BAD_HTTP_VERSION, // Any version older than HTTP/1.1. |
- STATUS_CORRUPT_STATS, // The stats.txt response was corrupt. |
- STATUS_MAX, |
- }; |
- |
- enum Type { |
- TYPE_PIPELINED, // Pipelined test requests. |
- TYPE_CANARY, // A non-pipelined request to verify basic HTTP |
- // connectivity. |
- TYPE_STATS, // Collects stats from the test server. |
- }; |
- |
- class Delegate { |
- public: |
- virtual ~Delegate() {} |
- |
- // Called when the canary request completes. |
- virtual void OnCanaryFinished(Status status) = 0; |
- |
- // Called when a Request determines its result. Reports to UMA. |
- virtual void OnRequestFinished(int request_id, Status status) = 0; |
- |
- // Called when a Request encounters a network error. Reports to UMA. |
- virtual void ReportNetworkError(int request_id, int error_code) = 0; |
- |
- // Called when a Request determines its HTTP response code. Reports to UMA. |
- virtual void ReportResponseCode(int request_id, int response_code) = 0; |
- }; |
- |
- class Factory { |
- public: |
- virtual ~Factory() {} |
- |
- virtual PipelineTestRequest* NewRequest( |
- int request_id, |
- const std::string& base_url, |
- const RequestInfo& info, |
- Delegate* delegate, |
- net::URLRequestContext* url_request_context, |
- Type type) = 0; |
- }; |
- |
- virtual ~PipelineTestRequest() {} |
- |
- virtual void Start() = 0; |
-}; |
- |
-PipelineTestRequest::Status ProcessStatsResponse( |
- const std::string& response); |
- |
-} // namespace internal |
- |
-// Class for performing a background test of users' Internet connections. |
-// Fetches a collection of resources on a test server and verifies all were |
-// received correctly. This will be used to determine whether or not proxies are |
-// interfering with a user's ability to use HTTP pipelining. Results are |
-// recorded with UMA. |
-class HttpPipeliningCompatibilityClient |
- : public internal::PipelineTestRequest::Delegate { |
- public: |
- enum Options { |
- PIPE_TEST_DEFAULTS, // Only run the |requests| passed to Start. |
- PIPE_TEST_RUN_CANARY_REQUEST, // Also perform a canary request before |
- // testing pipelining. |
- PIPE_TEST_COLLECT_SERVER_STATS, // Also request stats from the server after |
- // the pipeline test completes. |
- PIPE_TEST_CANARY_AND_STATS, // Both of the above. |
- }; |
- |
- HttpPipeliningCompatibilityClient( |
- internal::PipelineTestRequest::Factory* factory); |
- virtual ~HttpPipeliningCompatibilityClient(); |
- |
- // Launches the asynchronous URLRequests to fetch the URLs specified by |
- // |requests| combined with |base_url|. |base_url| should match the pattern |
- // "http://host/". |callback| is invoked once all the requests have completed. |
- // URLRequests are initiated in |url_request_context|. Results are recorded to |
- // UMA as they are received. If |collect_server_stats| is true, also collects |
- // pipelining information recorded by the server. |
- void Start(const std::string& base_url, |
- std::vector<RequestInfo>& requests, |
- Options options, |
- const net::CompletionCallback& callback, |
- net::URLRequestContext* url_request_context); |
- |
- private: |
- // Sends the pipelining test requests. |
- void StartTestRequests(); |
- |
- // Returns the full UMA metric name based on |request_id| and |description|. |
- std::string GetMetricName(int request_id, const char* description); |
- |
- // PipelineTestRequest::Delegate interface. |
- virtual void OnCanaryFinished( |
- internal::PipelineTestRequest::Status status) OVERRIDE; |
- virtual void OnRequestFinished( |
- int request_id, |
- internal::PipelineTestRequest::Status status) OVERRIDE; |
- virtual void ReportNetworkError(int request_id, int error_code) OVERRIDE; |
- virtual void ReportResponseCode(int request_id, int response_code) OVERRIDE; |
- |
- scoped_ptr<net::HttpTransactionFactory> http_transaction_factory_; |
- scoped_ptr<net::URLRequestContext> url_request_context_; |
- scoped_ptr<internal::PipelineTestRequest::Factory> factory_; |
- ScopedVector<internal::PipelineTestRequest> requests_; |
- scoped_ptr<internal::PipelineTestRequest> canary_request_; |
- net::CompletionCallback finished_callback_; |
- size_t num_finished_; |
- size_t num_succeeded_; |
-}; |
- |
-void CollectPipeliningCapabilityStatsOnUIThread( |
- const std::string& pipeline_test_server, IOThread* io_thread); |
- |
-} // namespace chrome_browser_net |
- |
-#endif // CHROME_BROWSER_NET_HTTP_PIPELINING_COMPATIBILITY_CLIENT_H_ |