| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <jni.h> |
| |
| #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "components/policy/core/common/policy_pref_names.h" |
| #include "components/prefs/pref_service.h" |
| |
| // Must come after all headers that specialize FromJniType() / ToJniType(). |
| #include "chrome/browser/incognito/jni_headers/IncognitoUtils_jni.h" |
| |
| static jboolean JNI_IncognitoUtils_GetIncognitoModeEnabled(JNIEnv* env, |
| Profile* profile) { |
| PrefService* prefs = profile->GetPrefs(); |
| policy::IncognitoModeAvailability incognito_pref = |
| IncognitoModePrefs::GetAvailability(prefs); |
| DCHECK(incognito_pref == policy::IncognitoModeAvailability::kEnabled || |
| incognito_pref == policy::IncognitoModeAvailability::kDisabled) |
| << "Unsupported incognito mode preference: " |
| << static_cast<int>(incognito_pref); |
| return incognito_pref != policy::IncognitoModeAvailability::kDisabled; |
| } |
| |
| static jboolean JNI_IncognitoUtils_GetIncognitoModeManaged(JNIEnv* env, |
| Profile* profile) { |
| PrefService* prefs = profile->GetPrefs(); |
| return prefs->IsManagedPreference( |
| policy::policy_prefs::kIncognitoModeAvailability); |
| } |