Commit bfa4f099 authored by mariakhomenko's avatar mariakhomenko Committed by Commit bot

Add hooks to get incognito profile.

BUG=404836

Review URL: https://codereview.chromium.org/556083004

Cr-Commit-Position: refs/heads/master@{#294312}
parent 36e00d9f
......@@ -21,6 +21,22 @@ public class Profile {
return (Profile) nativeGetLastUsedProfile();
}
public Profile getOriginalProfile() {
return (Profile) nativeGetOriginalProfile(mNativeProfileAndroid);
}
public Profile getOffTheRecordProfile() {
return (Profile) nativeGetOffTheRecordProfile(mNativeProfileAndroid);
}
public boolean hasOffTheRecordProfile() {
return nativeHasOffTheRecordProfile(mNativeProfileAndroid);
}
public boolean isOffTheRecord() {
return nativeIsOffTheRecord(mNativeProfileAndroid);
}
@CalledByNative
private static Profile create(long nativeProfileAndroid) {
return new Profile(nativeProfileAndroid);
......@@ -37,4 +53,12 @@ public class Profile {
}
private static native Object nativeGetLastUsedProfile();
private native Object nativeGetOriginalProfile(
long nativeProfileAndroid);
private native Object nativeGetOffTheRecordProfile(
long nativeProfileAndroid);
private native boolean nativeHasOffTheRecordProfile(
long nativeProfileAndroid);
private native boolean nativeIsOffTheRecord(
long nativeProfileAndroid);
}
......@@ -63,6 +63,30 @@ jobject ProfileAndroid::GetLastUsedProfile(JNIEnv* env, jclass clazz) {
return profile_android->obj_.obj();
}
base::android::ScopedJavaLocalRef<jobject> ProfileAndroid::GetOriginalProfile(
JNIEnv* env, jobject obj) {
ProfileAndroid* original_profile = ProfileAndroid::FromProfile(
profile_->GetOriginalProfile());
DCHECK(original_profile);
return original_profile->GetJavaObject();
}
base::android::ScopedJavaLocalRef<jobject>
ProfileAndroid::GetOffTheRecordProfile(JNIEnv* env, jobject obj) {
ProfileAndroid* otr_profile = ProfileAndroid::FromProfile(
profile_->GetOffTheRecordProfile());
DCHECK(otr_profile);
return otr_profile->GetJavaObject();
}
jboolean ProfileAndroid::HasOffTheRecordProfile(JNIEnv* env, jobject obj) {
return profile_->HasOffTheRecordProfile();
}
jboolean ProfileAndroid::IsOffTheRecord(JNIEnv* env, jobject obj) {
return profile_->IsOffTheRecord();
}
// static
jobject GetLastUsedProfile(JNIEnv* env, jclass clazz) {
return ProfileAndroid::GetLastUsedProfile(env, clazz);
......@@ -74,7 +98,6 @@ ProfileAndroid::ProfileAndroid(Profile* profile)
base::android::ScopedJavaLocalRef<jobject> jprofile =
Java_Profile_create(env, reinterpret_cast<intptr_t>(this));
obj_.Reset(env, jprofile.obj());
}
ProfileAndroid::~ProfileAndroid() {
......
......@@ -23,6 +23,24 @@ class ProfileAndroid : public base::SupportsUserData::Data {
static jobject GetLastUsedProfile(JNIEnv* env, jclass clazz);
// Return the original profile.
base::android::ScopedJavaLocalRef<jobject> GetOriginalProfile(
JNIEnv* env, jobject obj);
// Return the incognito profile.
//
// WARNING: This will create the OffTheRecord profile if it doesn't already
// exist. If this isn't what you want, you need to check
// HasOffTheRecordProfile() first.
base::android::ScopedJavaLocalRef<jobject> GetOffTheRecordProfile(
JNIEnv* env, jobject obj);
// Return whether an off the record profile exists.
jboolean HasOffTheRecordProfile(JNIEnv* env, jobject obj);
// Whether this profile is off the record.
jboolean IsOffTheRecord(JNIEnv* env, jobject obj);
explicit ProfileAndroid(Profile* profile);
virtual ~ProfileAndroid();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment