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 |