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

Side by Side Diff: chrome/browser/android/data_usage/data_use_tab_ui_manager_android.cc

Issue 1828193002: DCHECK that jstring to C++ string conversions don't pass in null. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: braces Created 4 years, 8 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
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
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 }
OLDNEW
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java ('k') | chrome/browser/android/tab_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698