Index: content/browser/net/network_quality_observer_impl.h |
diff --git a/content/browser/net/network_quality_observer_impl.h b/content/browser/net/network_quality_observer_impl.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a9b292fa8a156289ab3a963b52675524a976406a |
--- /dev/null |
+++ b/content/browser/net/network_quality_observer_impl.h |
@@ -0,0 +1,54 @@ |
+// Copyright (c) 2017 The Chromium Authors. All rights reserved. |
nasko
2017/05/08 18:27:45
No "(c)".
tbansal1
2017/05/08 19:50:19
Done. I am not sure where I copied this from.
|
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CONTENT_BROWSER_NET_NETWORK_QUALITY_OBSERVER_IMPL_H_ |
+#define CONTENT_BROWSER_NET_NETWORK_QUALITY_OBSERVER_IMPL_H_ |
+ |
+#include "base/macros.h" |
+#include "base/threading/thread_checker.h" |
+#include "content/common/content_export.h" |
+#include "content/public/browser/network_quality_observer_factory.h" |
+#include "net/nqe/network_quality.h" |
+#include "net/nqe/network_quality_estimator.h" |
+ |
+namespace content { |
+ |
+// Listens for changes to the network quality and manages sending updates to |
+// each RenderProcess via mojo. |
+class CONTENT_EXPORT NetworkQualityObserverImpl |
+ : public net::NetworkQualityEstimator::RTTAndThroughputEstimatesObserver { |
+ public: |
+ explicit NetworkQualityObserverImpl( |
+ net::NetworkQualityEstimator* network_quality_estimator); |
+ |
+ ~NetworkQualityObserverImpl() override; |
+ |
+ private: |
+ class UIObserver; |
nasko
2017/05/08 18:27:45
UIObserver implies that it is observing some user
tbansal1
2017/05/08 19:50:19
Done.
|
+ |
+ // net::NetworkQualityEstimator::RTTAndThroughputEstimatesObserver |
+ // implementation: |
+ void OnRTTOrThroughputEstimatesComputed( |
+ base::TimeDelta http_rtt, |
+ base::TimeDelta transport_rtt, |
+ int32_t downstream_throughput_kbps) override; |
RyanSturm
2017/05/08 17:37:20
#include <stdint.h>
Not sure if you have to becaus
tbansal1
2017/05/08 19:50:19
Done.
|
+ |
+ // |ui_oberver_| is owned by |this|, and interacts with |
+ // the render processes. It is created on the IO thread but afterwards, should |
+ // only be accessed on the UI thread. |
+ std::unique_ptr<UIObserver> ui_oberver_; |
RyanSturm
2017/05/08 17:37:20
#include <memory>
tbansal1
2017/05/08 19:50:19
Done.
|
+ |
+ net::NetworkQualityEstimator* network_quality_estimator_; |
nasko
2017/05/08 18:27:45
Can you include a comment on how the lifetime of t
tbansal1
2017/05/08 19:50:19
Done.
|
+ |
+ // The network quality when the |ui_oberver_| was last notified. |
+ net::nqe::internal::NetworkQuality last_notified_network_quality_; |
+ |
+ base::ThreadChecker thread_checker_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(NetworkQualityObserverImpl); |
+}; |
+ |
+} // namespace content |
+ |
+#endif // CONTENT_BROWSER_NET_NETWORK_QUALITY_OBSERVER_IMPL_H_ |