| 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/supervised_user/supervised_user_content_provider_androi
d.h" | 5 #include "chrome/browser/supervised_user/supervised_user_content_provider_androi
d.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/browser/profiles/profile_manager.h" | 10 #include "chrome/browser/profiles/profile_manager.h" |
| 11 #include "chrome/browser/supervised_user/supervised_user_interstitial.h" | 11 #include "chrome/browser/supervised_user/supervised_user_interstitial.h" |
| 12 #include "chrome/browser/supervised_user/supervised_user_service.h" | 12 #include "chrome/browser/supervised_user/supervised_user_service.h" |
| 13 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" | 13 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" |
| 14 #include "chrome/common/pref_names.h" |
| 15 #include "components/prefs/pref_service.h" |
| 14 #include "jni/SupervisedUserContentProvider_jni.h" | 16 #include "jni/SupervisedUserContentProvider_jni.h" |
| 15 | 17 |
| 16 using base::android::JavaRef; | 18 using base::android::JavaRef; |
| 17 using base::android::JavaParamRef; | 19 using base::android::JavaParamRef; |
| 18 using base::android::ScopedJavaGlobalRef; | 20 using base::android::ScopedJavaGlobalRef; |
| 19 using base::android::AttachCurrentThread; | 21 using base::android::AttachCurrentThread; |
| 20 | 22 |
| 21 namespace { | 23 namespace { |
| 22 | 24 |
| 23 class UrlFilterObserver : public SupervisedUserURLFilter::Observer { | 25 class UrlFilterObserver : public SupervisedUserURLFilter::Observer { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 | 64 |
| 63 SupervisedUserContentProvider::~SupervisedUserContentProvider() {} | 65 SupervisedUserContentProvider::~SupervisedUserContentProvider() {} |
| 64 | 66 |
| 65 void SupervisedUserContentProvider::ShouldProceed( | 67 void SupervisedUserContentProvider::ShouldProceed( |
| 66 JNIEnv* env, | 68 JNIEnv* env, |
| 67 const JavaParamRef<jobject>& caller, | 69 const JavaParamRef<jobject>& caller, |
| 68 const JavaParamRef<jobject>& query_result_jobj, | 70 const JavaParamRef<jobject>& query_result_jobj, |
| 69 const JavaParamRef<jstring>& url) { | 71 const JavaParamRef<jstring>& url) { |
| 70 if (!profile_->IsSupervised()) { | 72 if (!profile_->IsSupervised()) { |
| 71 // User isn't supervised | 73 // User isn't supervised |
| 72 Java_SupervisedUserQueryReply_onQueryComplete(env, query_result_jobj.obj(), | 74 Java_SupervisedUserQueryReply_onQueryComplete(env, query_result_jobj.obj()); |
| 73 true, nullptr); | |
| 74 return; | 75 return; |
| 75 } | 76 } |
| 76 SupervisedUserService* supervised_user_service = | 77 SupervisedUserService* supervised_user_service = |
| 77 SupervisedUserServiceFactory::GetForProfile(profile_); | 78 SupervisedUserServiceFactory::GetForProfile(profile_); |
| 78 SupervisedUserURLFilter* url_filter = | 79 SupervisedUserURLFilter* url_filter = |
| 79 supervised_user_service->GetURLFilterForUIThread(); | 80 supervised_user_service->GetURLFilterForUIThread(); |
| 80 url_filter->GetFilteringBehaviorForURLWithAsyncChecks( | 81 url_filter->GetFilteringBehaviorForURLWithAsyncChecks( |
| 81 GURL(base::android::ConvertJavaStringToUTF16(env, url)), | 82 GURL(base::android::ConvertJavaStringToUTF16(env, url)), |
| 82 base::Bind(&SupervisedUserContentProvider::OnQueryComplete, | 83 base::Bind(&SupervisedUserContentProvider::OnQueryComplete, |
| 83 weak_factory_.GetWeakPtr(), | 84 weak_factory_.GetWeakPtr(), |
| (...skipping 15 matching lines...) Expand all Loading... |
| 99 weak_factory_.GetWeakPtr(), | 100 weak_factory_.GetWeakPtr(), |
| 100 ScopedJavaGlobalRef<jobject>(env, insert_result_jobj.obj()))); | 101 ScopedJavaGlobalRef<jobject>(env, insert_result_jobj.obj()))); |
| 101 } | 102 } |
| 102 | 103 |
| 103 void SupervisedUserContentProvider::OnQueryComplete( | 104 void SupervisedUserContentProvider::OnQueryComplete( |
| 104 ScopedJavaGlobalRef<jobject> query_reply_jobj, | 105 ScopedJavaGlobalRef<jobject> query_reply_jobj, |
| 105 SupervisedUserURLFilter::FilteringBehavior behavior, | 106 SupervisedUserURLFilter::FilteringBehavior behavior, |
| 106 supervised_user_error_page::FilteringBehaviorReason reason, | 107 supervised_user_error_page::FilteringBehaviorReason reason, |
| 107 bool /* uncertain */) { | 108 bool /* uncertain */) { |
| 108 if (behavior != SupervisedUserURLFilter::BLOCK) { | 109 if (behavior != SupervisedUserURLFilter::BLOCK) { |
| 109 Java_SupervisedUserQueryReply_onQueryComplete( | 110 Java_SupervisedUserQueryReply_onQueryComplete(AttachCurrentThread(), |
| 110 AttachCurrentThread(), query_reply_jobj.obj(), true, nullptr); | 111 query_reply_jobj.obj()); |
| 111 } else { | 112 } else { |
| 112 JNIEnv* env = AttachCurrentThread(); | 113 JNIEnv* env = AttachCurrentThread(); |
| 113 Java_SupervisedUserQueryReply_onQueryComplete( | 114 SupervisedUserService* service = |
| 114 env, query_reply_jobj.obj(), false, | 115 SupervisedUserServiceFactory::GetForProfile(profile_); |
| 116 Java_SupervisedUserQueryReply_onQueryFailed( |
| 117 env, query_reply_jobj.obj(), reason, service->AccessRequestsEnabled(), |
| 118 profile_->IsChild(), |
| 115 base::android::ConvertUTF8ToJavaString( | 119 base::android::ConvertUTF8ToJavaString( |
| 116 env, SupervisedUserInterstitial::GetHTMLContents(profile_, reason)) | 120 env, profile_->GetPrefs()->GetString( |
| 121 prefs::kSupervisedUserCustodianProfileImageURL)) |
| 122 .obj(), |
| 123 base::android::ConvertUTF8ToJavaString( |
| 124 env, profile_->GetPrefs()->GetString( |
| 125 prefs::kSupervisedUserSecondCustodianProfileImageURL)) |
| 126 .obj(), |
| 127 base::android::ConvertUTF8ToJavaString(env, service->GetCustodianName()) |
| 128 .obj(), |
| 129 base::android::ConvertUTF8ToJavaString( |
| 130 env, service->GetCustodianEmailAddress()) |
| 131 .obj(), |
| 132 base::android::ConvertUTF8ToJavaString( |
| 133 env, service->GetSecondCustodianName()) |
| 134 .obj(), |
| 135 base::android::ConvertUTF8ToJavaString( |
| 136 env, service->GetSecondCustodianEmailAddress()) |
| 117 .obj()); | 137 .obj()); |
| 118 } | 138 } |
| 119 } | 139 } |
| 120 | 140 |
| 121 void SupervisedUserContentProvider::SetFilterForTesting(JNIEnv* env, | 141 void SupervisedUserContentProvider::SetFilterForTesting(JNIEnv* env, |
| 122 jobject caller) { | 142 jobject caller) { |
| 123 if (!profile_->IsSupervised()) | 143 if (!profile_->IsSupervised()) |
| 124 return; | 144 return; |
| 125 SupervisedUserService* supervised_user_service = | 145 SupervisedUserService* supervised_user_service = |
| 126 SupervisedUserServiceFactory::GetForProfile(profile_); | 146 SupervisedUserServiceFactory::GetForProfile(profile_); |
| 127 SupervisedUserURLFilter* url_filter = | 147 SupervisedUserURLFilter* url_filter = |
| 128 supervised_user_service->GetURLFilterForUIThread(); | 148 supervised_user_service->GetURLFilterForUIThread(); |
| 129 url_filter->SetDefaultFilteringBehavior(SupervisedUserURLFilter::BLOCK); | 149 url_filter->SetDefaultFilteringBehavior(SupervisedUserURLFilter::BLOCK); |
| 130 } | 150 } |
| 131 | 151 |
| 132 void SupervisedUserContentProvider::OnInsertRequestSendComplete( | 152 void SupervisedUserContentProvider::OnInsertRequestSendComplete( |
| 133 ScopedJavaGlobalRef<jobject> insert_reply_jobj, | 153 ScopedJavaGlobalRef<jobject> insert_reply_jobj, |
| 134 bool sent_ok) { | 154 bool sent_ok) { |
| 135 Java_SupervisedUserInsertReply_onInsertRequestSendComplete( | 155 Java_SupervisedUserInsertReply_onInsertRequestSendComplete( |
| 136 AttachCurrentThread(), insert_reply_jobj.obj(), sent_ok); | 156 AttachCurrentThread(), insert_reply_jobj.obj(), sent_ok); |
| 137 } | 157 } |
| 138 | 158 |
| 139 bool SupervisedUserContentProvider::Register(JNIEnv* env) { | 159 bool SupervisedUserContentProvider::Register(JNIEnv* env) { |
| 140 return RegisterNativesImpl(env); | 160 return RegisterNativesImpl(env); |
| 141 } | 161 } |
| OLD | NEW |