Move Webstore URL concepts to //extensions and out
[chromium-blink-merge.git] / chrome / browser / net / spdyproxy / data_reduction_proxy_settings_android.cc
blob9fa686dc5f57d4c8349a034fa63cc3a4ed464abb
1 // Copyright 2013 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.
5 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.h"
7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h"
9 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.h"
10 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h"
11 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_factory.h"
12 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/profiles/profile_manager.h"
14 #include "chrome/common/pref_names.h"
15 #include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h"
16 #include "components/data_reduction_proxy/browser/data_reduction_proxy_settings.h"
17 #include "components/data_reduction_proxy/browser/data_reduction_proxy_usage_stats.h"
18 #include "jni/DataReductionProxySettings_jni.h"
21 using base::android::ConvertUTF8ToJavaString;
22 using base::android::ScopedJavaLocalRef;
23 using data_reduction_proxy::DataReductionProxyParams;
24 using data_reduction_proxy::DataReductionProxySettings;
26 DataReductionProxySettingsAndroid::DataReductionProxySettingsAndroid() {
29 DataReductionProxySettingsAndroid::~DataReductionProxySettingsAndroid() {
32 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyAllowed(
33 JNIEnv* env, jobject obj) {
34 return Settings()->params()->allowed();
37 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyPromoAllowed(
38 JNIEnv* env, jobject obj) {
39 return Settings()->params()->promo_allowed();
42 jboolean DataReductionProxySettingsAndroid::IsIncludedInAltFieldTrial(
43 JNIEnv* env, jobject obj) {
44 return DataReductionProxyParams::IsIncludedInAlternativeFieldTrial();
47 ScopedJavaLocalRef<jstring>
48 DataReductionProxySettingsAndroid::GetDataReductionProxyOrigin(
49 JNIEnv* env, jobject obj) {
50 return ConvertUTF8ToJavaString(env, Settings()->params()->origin().spec());
53 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyEnabled(
54 JNIEnv* env, jobject obj) {
55 return Settings()->IsDataReductionProxyEnabled();
58 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyManaged(
59 JNIEnv* env, jobject obj) {
60 return Settings()->IsDataReductionProxyManaged();
63 void DataReductionProxySettingsAndroid::SetDataReductionProxyEnabled(
64 JNIEnv* env,
65 jobject obj,
66 jboolean enabled) {
67 Settings()->SetDataReductionProxyEnabled(enabled);
70 jlong DataReductionProxySettingsAndroid::GetDataReductionLastUpdateTime(
71 JNIEnv* env, jobject obj) {
72 return Settings()->GetDataReductionLastUpdateTime();
75 base::android::ScopedJavaLocalRef<jobject>
76 DataReductionProxySettingsAndroid::GetContentLengths(JNIEnv* env,
77 jobject obj) {
78 int64 original_content_length;
79 int64 received_content_length;
80 int64 last_update_internal;
81 Settings()->GetContentLengths(
82 data_reduction_proxy::kNumDaysInHistorySummary,
83 &original_content_length,
84 &received_content_length,
85 &last_update_internal);
87 return Java_ContentLengths_create(env,
88 original_content_length,
89 received_content_length);
92 ScopedJavaLocalRef<jlongArray>
93 DataReductionProxySettingsAndroid::GetDailyOriginalContentLengths(
94 JNIEnv* env, jobject obj) {
95 return GetDailyContentLengths(
96 env, data_reduction_proxy::prefs::kDailyHttpOriginalContentLength);
99 ScopedJavaLocalRef<jlongArray>
100 DataReductionProxySettingsAndroid::GetDailyReceivedContentLengths(
101 JNIEnv* env, jobject obj) {
102 return GetDailyContentLengths(
103 env, data_reduction_proxy::prefs::kDailyHttpReceivedContentLength);
106 jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyUnreachable(
107 JNIEnv* env, jobject obj) {
108 return Settings()->IsDataReductionProxyUnreachable();
111 // static
112 bool DataReductionProxySettingsAndroid::Register(JNIEnv* env) {
113 bool register_natives_impl_result = RegisterNativesImpl(env);
114 return register_natives_impl_result;
117 ScopedJavaLocalRef<jlongArray>
118 DataReductionProxySettingsAndroid::GetDailyContentLengths(
119 JNIEnv* env, const char* pref_name) {
120 jlongArray result = env->NewLongArray(
121 data_reduction_proxy::kNumDaysInHistory);
123 DataReductionProxySettings::ContentLengthList lengths =
124 Settings()->GetDailyContentLengths(pref_name);
126 if (!lengths.empty()) {
127 DCHECK_EQ(lengths.size(), data_reduction_proxy::kNumDaysInHistory);
128 env->SetLongArrayRegion(result, 0, lengths.size(), &lengths[0]);
129 return ScopedJavaLocalRef<jlongArray>(env, result);
132 return ScopedJavaLocalRef<jlongArray>(env, result);
135 DataReductionProxySettings* DataReductionProxySettingsAndroid::Settings() {
136 DataReductionProxySettings* settings =
137 DataReductionProxyChromeSettingsFactory::GetForBrowserContext(
138 ProfileManager::GetActiveUserProfile());
139 DCHECK(settings);
140 return settings;
144 // Used by generated jni code.
145 static jlong Init(JNIEnv* env, jobject obj) {
146 return reinterpret_cast<intptr_t>(new DataReductionProxySettingsAndroid());