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

Side by Side Diff: chrome/browser/android/net/network_quality_provider.cc

Issue 1235373006: Upstream changes for NetworkQualityProvider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed bengr comments Created 5 years, 5 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/android/net/network_quality_provider.h"
6
7 #include <stdint.h>
8
9 #include "jni/NetworkQualityProviderHelper_jni.h"
10 #include "net/base/network_quality.h"
11
12 NetworkQualityProvider::NetworkQualityProvider() {
13 JNIEnv* env = base::android::AttachCurrentThread();
14 j_network_quality_provider_.Reset(Java_NetworkQualityProviderHelper_create(
15 env, base::android::GetApplicationContext()));
16 no_value_ = Java_NetworkQualityProviderHelper_getNoValue(env);
17 }
18
19 NetworkQualityProvider::~NetworkQualityProvider() {
20 DCHECK(thread_checker_.CalledOnValidThread());
21 }
22
23 bool NetworkQualityProvider::IsEstimateAvailable() {
24 DCHECK(thread_checker_.CalledOnValidThread());
25 JNIEnv* env = base::android::AttachCurrentThread();
26 return Java_NetworkQualityProviderHelper_isEstimateAvailable(env);
27 }
28
29 bool NetworkQualityProvider::GetRTT(base::TimeDelta* rtt) {
30 DCHECK(thread_checker_.CalledOnValidThread());
31 JNIEnv* env = base::android::AttachCurrentThread();
32 int32_t milliseconds =
33 Java_NetworkQualityProviderHelper_getRTTMilliseconds(env);
34 DCHECK(milliseconds >= no_value_);
35 if (milliseconds == no_value_) {
36 *rtt = net::NetworkQuality::InvalidRTT();
37 return false;
38 }
39 *rtt = base::TimeDelta::FromMilliseconds(milliseconds);
40 return true;
41 }
42
43 bool NetworkQualityProvider::GetDownstreamThroughputKbps(
44 int32_t* downstream_throughput_kbps) {
45 DCHECK(thread_checker_.CalledOnValidThread());
46 JNIEnv* env = base::android::AttachCurrentThread();
47 int32_t kbps =
48 Java_NetworkQualityProviderHelper_getDownstreamThroughputKbps(env);
49 DCHECK(kbps >= no_value_);
50 if (kbps == no_value_) {
51 *downstream_throughput_kbps = net::NetworkQuality::kInvalidThroughput;
52 return false;
53 }
54 *downstream_throughput_kbps = kbps;
55 return true;
56 }
57
58 bool NetworkQualityProvider::GetUpstreamThroughputKbps(
59 int32_t* upstream_throughput_kbps) {
60 DCHECK(thread_checker_.CalledOnValidThread());
61 JNIEnv* env = base::android::AttachCurrentThread();
62 int32_t kbps =
63 Java_NetworkQualityProviderHelper_getUpstreamThroughputKbps(env);
64 DCHECK(kbps >= no_value_);
65 if (kbps == no_value_) {
66 *upstream_throughput_kbps = net::NetworkQuality::kInvalidThroughput;
67 return false;
68 }
69 *upstream_throughput_kbps = kbps;
70 return true;
71 }
72
73 bool NetworkQualityProvider::GetTimeSinceLastUpdate(
74 base::TimeDelta* time_since_last_update) {
75 DCHECK(thread_checker_.CalledOnValidThread());
76 JNIEnv* env = base::android::AttachCurrentThread();
77 int32_t seconds =
78 Java_NetworkQualityProviderHelper_getTimeSinceLastUpdateSeconds(env);
79 DCHECK(seconds >= no_value_);
80 if (seconds == no_value_) {
81 *time_since_last_update = base::TimeDelta::Max();
82 return false;
83 }
84 *time_since_last_update = base::TimeDelta::FromMilliseconds(seconds);
85 return true;
86 }
87
88 bool RegisterNetworkQualityProvider(JNIEnv* env) {
89 return RegisterNativesImpl(env);
90 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698