| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/android/data_usage/data_use_tab_ui_manager_android.h" | 5 #include "chrome/browser/android/data_usage/data_use_tab_ui_manager_android.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 }; | 56 }; |
| 57 | 57 |
| 58 } // namespace | 58 } // namespace |
| 59 | 59 |
| 60 // static | 60 // static |
| 61 jboolean CheckAndResetDataUseTrackingStarted( | 61 jboolean CheckAndResetDataUseTrackingStarted( |
| 62 JNIEnv* env, | 62 JNIEnv* env, |
| 63 const JavaParamRef<jclass>& clazz, | 63 const JavaParamRef<jclass>& clazz, |
| 64 jint tab_id, | 64 jint tab_id, |
| 65 const JavaParamRef<jobject>& jprofile) { | 65 const JavaParamRef<jobject>& jprofile) { |
| 66 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
| 67 |
| 66 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 68 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
| 67 chrome::android::DataUseUITabModel* data_use_ui_tab_model = | 69 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
| 68 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); | 70 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
| 69 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); | 71 if (!data_use_ui_tab_model) |
| 70 if (data_use_ui_tab_model) { | 72 return false; |
| 71 return data_use_ui_tab_model->CheckAndResetDataUseTrackingStarted( | 73 |
| 72 static_cast<SessionID::id_type>(tab_id)); | 74 return data_use_ui_tab_model->CheckAndResetDataUseTrackingStarted( |
| 73 } | 75 static_cast<SessionID::id_type>(tab_id)); |
| 74 return false; | |
| 75 } | 76 } |
| 76 | 77 |
| 77 // static | 78 // static |
| 78 jboolean CheckAndResetDataUseTrackingEnded( | 79 jboolean CheckAndResetDataUseTrackingEnded( |
| 79 JNIEnv* env, | 80 JNIEnv* env, |
| 80 const JavaParamRef<jclass>& clazz, | 81 const JavaParamRef<jclass>& clazz, |
| 81 jint tab_id, | 82 jint tab_id, |
| 82 const JavaParamRef<jobject>& jprofile) { | 83 const JavaParamRef<jobject>& jprofile) { |
| 84 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
| 85 |
| 83 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 86 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
| 84 chrome::android::DataUseUITabModel* data_use_ui_tab_model = | 87 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
| 85 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); | 88 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
| 86 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); | 89 if (!data_use_ui_tab_model) |
| 87 if (data_use_ui_tab_model) { | 90 return false; |
| 88 return data_use_ui_tab_model->CheckAndResetDataUseTrackingEnded( | 91 |
| 89 static_cast<SessionID::id_type>(tab_id)); | 92 return data_use_ui_tab_model->CheckAndResetDataUseTrackingEnded( |
| 90 } | 93 static_cast<SessionID::id_type>(tab_id)); |
| 91 return false; | |
| 92 } | 94 } |
| 93 | 95 |
| 94 // static | 96 // static |
| 95 void UserClickedContinueOnDialogBox(JNIEnv* env, | 97 void UserClickedContinueOnDialogBox(JNIEnv* env, |
| 96 const JavaParamRef<jclass>& clazz, | 98 const JavaParamRef<jclass>& clazz, |
| 97 jint tab_id, | 99 jint tab_id, |
| 98 const JavaParamRef<jobject>& jprofile) { | 100 const JavaParamRef<jobject>& jprofile) { |
| 101 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
| 102 |
| 99 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 103 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
| 100 chrome::android::DataUseUITabModel* data_use_ui_tab_model = | 104 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
| 101 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); | 105 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
| 102 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); | 106 if (!data_use_ui_tab_model) |
| 103 if (data_use_ui_tab_model) { | 107 return; |
| 104 data_use_ui_tab_model->UserClickedContinueOnDialogBox( | 108 |
| 105 static_cast<SessionID::id_type>(tab_id)); | 109 data_use_ui_tab_model->UserClickedContinueOnDialogBox( |
| 106 } | 110 static_cast<SessionID::id_type>(tab_id)); |
| 107 } | 111 } |
| 108 | 112 |
| 109 // static | 113 // static |
| 110 jboolean WouldDataUseTrackingEnd(JNIEnv* env, | 114 jboolean WouldDataUseTrackingEnd(JNIEnv* env, |
| 111 const JavaParamRef<jclass>& clazz, | 115 const JavaParamRef<jclass>& clazz, |
| 112 jint tab_id, | 116 jint tab_id, |
| 113 const JavaParamRef<jstring>& url, | 117 const JavaParamRef<jstring>& url, |
| 114 jint transition_type, | 118 jint transition_type, |
| 115 const JavaParamRef<jobject>& jprofile) { | 119 const JavaParamRef<jobject>& jprofile) { |
| 120 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
| 121 |
| 116 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 122 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
| 117 chrome::android::DataUseUITabModel* data_use_ui_tab_model = | 123 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
| 118 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); | 124 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
| 119 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); | 125 if (!data_use_ui_tab_model) |
| 120 if (data_use_ui_tab_model) { | 126 return false; |
| 121 return data_use_ui_tab_model->WouldDataUseTrackingEnd( | 127 |
| 122 ConvertJavaStringToUTF8(env, url), transition_type, | 128 return data_use_ui_tab_model->WouldDataUseTrackingEnd( |
| 123 static_cast<SessionID::id_type>(tab_id)); | 129 ConvertJavaStringToUTF8(env, url), transition_type, |
| 124 } | 130 static_cast<SessionID::id_type>(tab_id)); |
| 125 return false; | |
| 126 } | 131 } |
| 127 | 132 |
| 128 // static | 133 // static |
| 129 void OnCustomTabInitialNavigation(JNIEnv* env, | 134 void OnCustomTabInitialNavigation(JNIEnv* env, |
| 130 const JavaParamRef<jclass>& clazz, | 135 const JavaParamRef<jclass>& clazz, |
| 131 jint tab_id, | 136 jint tab_id, |
| 132 const JavaParamRef<jstring>& package_name, | 137 const JavaParamRef<jstring>& jpackage_name, |
| 133 const JavaParamRef<jstring>& url, | 138 const JavaParamRef<jstring>& jurl, |
| 134 const JavaParamRef<jobject>& jprofile) { | 139 const JavaParamRef<jobject>& jprofile) { |
| 140 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
| 141 |
| 135 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 142 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
| 136 chrome::android::DataUseUITabModel* data_use_ui_tab_model = | 143 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
| 137 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); | 144 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
| 138 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); | 145 if (!data_use_ui_tab_model) |
| 139 if (data_use_ui_tab_model) { | 146 return; |
| 140 data_use_ui_tab_model->ReportCustomTabInitialNavigation( | 147 |
| 141 static_cast<SessionID::id_type>(tab_id), | 148 std::string url; |
| 142 ConvertJavaStringToUTF8(env, package_name), | 149 if (!jurl.is_null()) |
| 143 ConvertJavaStringToUTF8(env, url)); | 150 ConvertJavaStringToUTF8(env, jurl, &url); |
| 144 } | 151 |
| 152 std::string package_name; |
| 153 if (!jpackage_name.is_null()) |
| 154 ConvertJavaStringToUTF8(env, jpackage_name, &package_name); |
| 155 |
| 156 data_use_ui_tab_model->ReportCustomTabInitialNavigation( |
| 157 static_cast<SessionID::id_type>(tab_id), package_name, url); |
| 145 } | 158 } |
| 146 | 159 |
| 147 // static | 160 // static |
| 148 ScopedJavaLocalRef<jstring> GetDataUseUIString( | 161 ScopedJavaLocalRef<jstring> GetDataUseUIString( |
| 149 JNIEnv* env, | 162 JNIEnv* env, |
| 150 const JavaParamRef<jclass>& clazz, | 163 const JavaParamRef<jclass>& clazz, |
| 151 int message_id) { | 164 int message_id) { |
| 152 DCHECK(message_id >= 0 && message_id < DATA_USE_UI_MESSAGE_MAX); | 165 DCHECK_GE(message_id, 0); |
| 166 DCHECK_LT(message_id, DATA_USE_UI_MESSAGE_MAX); |
| 153 return base::android::ConvertUTF8ToJavaString( | 167 return base::android::ConvertUTF8ToJavaString( |
| 154 env, l10n_util::GetStringUTF8(data_use_ui_message_id_map[message_id])); | 168 env, l10n_util::GetStringUTF8(data_use_ui_message_id_map[message_id])); |
| 155 } | 169 } |
| 156 | 170 |
| 157 bool RegisterDataUseTabUIManager(JNIEnv* env) { | 171 bool RegisterDataUseTabUIManager(JNIEnv* env) { |
| 158 return RegisterNativesImpl(env); | 172 return RegisterNativesImpl(env); |
| 159 } | 173 } |
| OLD | NEW |