Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Unified Diff: components/data_use_measurement/core/data_use_network_delegate.h

Issue 2354323002: Propagate network delegate events to ChromeDataUseAscriber. (Closed)
Patch Set: new lines Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/data_use_measurement/core/data_use_network_delegate.h
diff --git a/components/data_use_measurement/core/data_use_network_delegate.h b/components/data_use_measurement/core/data_use_network_delegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..f4aab981b1b7b66d6ed0eb9749617b72dbb6e738
--- /dev/null
+++ b/components/data_use_measurement/core/data_use_network_delegate.h
@@ -0,0 +1,58 @@
+// Copyright 2016 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 COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_NETWORK_DELEGATE_H_
+#define COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_NETWORK_DELEGATE_H_
+
+#include <stdint.h>
+
+#include <memory>
+
+#include "base/macros.h"
+#include "net/base/completion_callback.h"
+#include "net/base/layered_network_delegate.h"
+
+namespace net {
+class NetworkDelegate;
+class URLRequest;
+}
+
+namespace data_use_measurement {
+
+class DataUseAscriber;
+
+// Propagates network data use events to the |ascriber_|. This class must be
+// set up as a network delegate for the URLRequestContexts whose data use is to
+// be tracked.
+class DataUseNetworkDelegate : public net::LayeredNetworkDelegate {
+ public:
+ DataUseNetworkDelegate(
+ std::unique_ptr<net::NetworkDelegate> nested_network_delegate,
+ DataUseAscriber* ascriber);
+
+ ~DataUseNetworkDelegate() override;
+
+ // LayeredNetworkDelegate:
+ void OnBeforeURLRequestInternal(net::URLRequest* request,
+ const net::CompletionCallback& callback,
+ GURL* new_url) override;
+
+ void OnBeforeRedirectInternal(net::URLRequest* request,
+ const GURL& new_location) override;
+
+ void OnNetworkBytesReceivedInternal(net::URLRequest* request,
+ int64_t bytes_received) override;
+
+ void OnNetworkBytesSentInternal(net::URLRequest* request,
+ int64_t bytes_sent) override;
+
+ void OnCompletedInternal(net::URLRequest* request, bool started) override;
+
+ private:
+ DataUseAscriber* ascriber_;
+};
+
+} // namespace data_use_measurement
+
+#endif // COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_NETWORK_DELEGATE_H_

Powered by Google App Engine
This is Rietveld 408576698