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 <string> | 7 #include <string> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
11 #include "chrome/browser/android/data_usage/data_use_ui_tab_model.h" | 11 #include "chrome/browser/android/data_usage/data_use_ui_tab_model.h" |
12 #include "chrome/browser/android/data_usage/data_use_ui_tab_model_factory.h" | 12 #include "chrome/browser/android/data_usage/data_use_ui_tab_model_factory.h" |
13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
14 #include "chrome/browser/profiles/profile_android.h" | 14 #include "chrome/browser/profiles/profile_android.h" |
15 #include "components/sessions/core/session_id.h" | 15 #include "components/sessions/core/session_id.h" |
16 #include "jni/DataUseTabUIManager_jni.h" | 16 #include "jni/DataUseTabUIManager_jni.h" |
17 | 17 |
18 // static | 18 // static |
19 jboolean CheckDataUseTrackingStarted(JNIEnv* env, | 19 jboolean CheckAndResetDataUseTrackingStarted( |
20 const JavaParamRef<jclass>& clazz, | 20 JNIEnv* env, |
21 jint tab_id, | 21 const JavaParamRef<jclass>& clazz, |
22 const JavaParamRef<jobject>& jprofile) { | 22 jint tab_id, |
| 23 const JavaParamRef<jobject>& jprofile) { |
23 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 24 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
24 chrome::android::DataUseUITabModel* data_use_ui_tab_model = | 25 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
25 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); | 26 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
26 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); | 27 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
27 if (data_use_ui_tab_model) { | 28 if (data_use_ui_tab_model) { |
28 return data_use_ui_tab_model->HasDataUseTrackingStarted( | 29 return data_use_ui_tab_model->CheckAndResetDataUseTrackingStarted( |
29 static_cast<SessionID::id_type>(tab_id)); | 30 static_cast<SessionID::id_type>(tab_id)); |
30 } | 31 } |
31 return false; | 32 return false; |
32 } | 33 } |
33 | 34 |
34 // static | 35 // static |
35 jboolean CheckDataUseTrackingEnded(JNIEnv* env, | 36 jboolean CheckAndResetDataUseTrackingEnded( |
36 const JavaParamRef<jclass>& clazz, | 37 JNIEnv* env, |
37 jint tab_id, | 38 const JavaParamRef<jclass>& clazz, |
38 const JavaParamRef<jobject>& jprofile) { | 39 jint tab_id, |
| 40 const JavaParamRef<jobject>& jprofile) { |
39 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 41 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
40 chrome::android::DataUseUITabModel* data_use_ui_tab_model = | 42 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
41 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); | 43 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
42 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); | 44 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
43 if (data_use_ui_tab_model) { | 45 if (data_use_ui_tab_model) { |
44 return data_use_ui_tab_model->HasDataUseTrackingEnded( | 46 return data_use_ui_tab_model->CheckAndResetDataUseTrackingEnded( |
45 static_cast<SessionID::id_type>(tab_id)); | 47 static_cast<SessionID::id_type>(tab_id)); |
46 } | 48 } |
47 return false; | 49 return false; |
| 50 } |
| 51 |
| 52 // static |
| 53 void UserClickedContinueOnDialogBox(JNIEnv* env, |
| 54 const JavaParamRef<jclass>& clazz, |
| 55 jint tab_id, |
| 56 const JavaParamRef<jobject>& jprofile) { |
| 57 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
| 58 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
| 59 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
| 60 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
| 61 if (data_use_ui_tab_model) { |
| 62 data_use_ui_tab_model->UserClickedContinueOnDialogBox( |
| 63 static_cast<SessionID::id_type>(tab_id)); |
| 64 } |
| 65 } |
| 66 |
| 67 // static |
| 68 jboolean WouldDataUseTrackingEnd(JNIEnv* env, |
| 69 const JavaParamRef<jclass>& clazz, |
| 70 jint tab_id, |
| 71 const JavaParamRef<jstring>& url, |
| 72 jint transition_type, |
| 73 const JavaParamRef<jobject>& jprofile) { |
| 74 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
| 75 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
| 76 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
| 77 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
| 78 if (data_use_ui_tab_model) { |
| 79 return data_use_ui_tab_model->WouldDataUseTrackingEnd( |
| 80 ConvertJavaStringToUTF8(env, url), transition_type, |
| 81 static_cast<SessionID::id_type>(tab_id)); |
| 82 } |
| 83 return false; |
48 } | 84 } |
49 | 85 |
50 // static | 86 // static |
51 void OnCustomTabInitialNavigation(JNIEnv* env, | 87 void OnCustomTabInitialNavigation(JNIEnv* env, |
52 const JavaParamRef<jclass>& clazz, | 88 const JavaParamRef<jclass>& clazz, |
53 jint tab_id, | 89 jint tab_id, |
| 90 const JavaParamRef<jstring>& package_name, |
54 const JavaParamRef<jstring>& url, | 91 const JavaParamRef<jstring>& url, |
55 const JavaParamRef<jstring>& package_name, | |
56 const JavaParamRef<jobject>& jprofile) { | 92 const JavaParamRef<jobject>& jprofile) { |
57 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 93 Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); |
58 chrome::android::DataUseUITabModel* data_use_ui_tab_model = | 94 chrome::android::DataUseUITabModel* data_use_ui_tab_model = |
59 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); | 95 chrome::android::DataUseUITabModelFactory::GetForBrowserContext(profile); |
60 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); | 96 DCHECK_LE(0, static_cast<SessionID::id_type>(tab_id)); |
61 if (data_use_ui_tab_model) { | 97 if (data_use_ui_tab_model) { |
62 data_use_ui_tab_model->ReportCustomTabInitialNavigation( | 98 data_use_ui_tab_model->ReportCustomTabInitialNavigation( |
63 static_cast<SessionID::id_type>(tab_id), | 99 static_cast<SessionID::id_type>(tab_id), |
64 ConvertJavaStringToUTF8(env, url), | 100 ConvertJavaStringToUTF8(env, package_name), |
65 ConvertJavaStringToUTF8(env, package_name)); | 101 ConvertJavaStringToUTF8(env, url)); |
66 } | 102 } |
67 } | 103 } |
68 | 104 |
69 bool RegisterDataUseTabUIManager(JNIEnv* env) { | 105 bool RegisterDataUseTabUIManager(JNIEnv* env) { |
70 return RegisterNativesImpl(env); | 106 return RegisterNativesImpl(env); |
71 } | 107 } |
OLD | NEW |