| // 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 "chrome/browser/android/profile_key_util.h" |
| |
| #include "base/android/scoped_java_ref.h" |
| #include "chrome/browser/android/profile_key_startup_accessor.h" |
| #include "chrome/browser/profiles/profile_key.h" |
| #include "chrome/browser/profiles/profile_key_android.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| |
| // Must come after all headers that specialize FromJniType() / ToJniType(). |
| #include "chrome/browser/profiles/android/jni_headers/ProfileKeyUtil_jni.h" |
| |
| using base::android::ScopedJavaLocalRef; |
| |
| namespace android { |
| namespace { |
| |
| Profile* GetProfile() { |
| Profile* profile = ProfileManager::GetLastUsedProfile(); |
| DCHECK(profile); |
| return profile; |
| } |
| |
| } // namespace |
| |
| ProfileKey* GetLastUsedRegularProfileKey() { |
| ProfileKey* key = ProfileKeyStartupAccessor::GetInstance()->profile_key(); |
| if (!key) |
| key = GetProfile()->GetProfileKey(); |
| DCHECK(key && !key->IsOffTheRecord()); |
| return key; |
| } |
| |
| } // namespace android |
| |
| // static |
| ScopedJavaLocalRef<jobject> JNI_ProfileKeyUtil_GetLastUsedRegularProfileKey( |
| JNIEnv* env) { |
| ProfileKey* key = ::android::GetLastUsedRegularProfileKey(); |
| if (!key) { |
| NOTREACHED() << "ProfileKey not found."; |
| } |
| |
| ProfileKeyAndroid* profile_key_android = key->GetProfileKeyAndroid(); |
| if (!profile_key_android) { |
| NOTREACHED() << "ProfileKeyAndroid not found."; |
| } |
| |
| return profile_key_android->GetJavaObject(); |
| } |