summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraruslan@chromium.org <aruslan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-23 22:02:21 +0000
committeraruslan@chromium.org <aruslan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-23 22:02:21 +0000
commitbad74669cd0485f8b7503cabdb5001ede7f113dd (patch)
tree920ff61ab6ca5e8ac949a830ccad544492fac0f9
parentac0620bf7cdb1c396680bb98b40b78437ae885bd (diff)
downloadchromium_src-bad74669cd0485f8b7503cabdb5001ede7f113dd.zip
chromium_src-bad74669cd0485f8b7503cabdb5001ede7f113dd.tar.gz
chromium_src-bad74669cd0485f8b7503cabdb5001ede7f113dd.tar.bz2
[Android] Use correct profile for the account management screen.
We don't need to use GetLastUsedProfile() here as we have the web contents. BUG=316637 Review URL: https://codereview.chromium.org/131103014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246696 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementScreenHelper.java8
-rw-r--r--chrome/browser/android/signin/account_management_screen_helper.cc11
-rw-r--r--chrome/browser/android/signin/account_management_screen_helper.h4
-rw-r--r--chrome/browser/signin/signin_header_helper.cc5
4 files changed, 20 insertions, 8 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementScreenHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementScreenHelper.java
index 659eb78..044cc22 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementScreenHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementScreenHelper.java
@@ -8,6 +8,7 @@ import android.content.Context;
import org.chromium.base.CalledByNative;
import org.chromium.base.ThreadUtils;
+import org.chromium.chrome.browser.profiles.Profile;
/**
* Stub entry points and implementation interface for the account management screen.
@@ -22,8 +23,9 @@ public class AccountManagementScreenHelper {
/**
* Opens the account management UI screen.
* @param applicationContext The application context.
+ * @param profile The user profile.
*/
- void openAccountManagementScreen(Context applicationContext);
+ void openAccountManagementScreen(Context applicationContext, Profile profile);
}
/**
@@ -36,10 +38,10 @@ public class AccountManagementScreenHelper {
}
@CalledByNative
- private static void openAccountManagementScreen(Context applicationContext) {
+ private static void openAccountManagementScreen(Context applicationContext, Profile profile) {
ThreadUtils.assertOnUiThread();
if (sManager == null) return;
- sManager.openAccountManagementScreen(applicationContext);
+ sManager.openAccountManagementScreen(applicationContext, profile);
}
}
diff --git a/chrome/browser/android/signin/account_management_screen_helper.cc b/chrome/browser/android/signin/account_management_screen_helper.cc
index 6f15a36..5d62a6a 100644
--- a/chrome/browser/android/signin/account_management_screen_helper.cc
+++ b/chrome/browser/android/signin/account_management_screen_helper.cc
@@ -6,13 +6,20 @@
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_android.h"
#include "jni/AccountManagementScreenHelper_jni.h"
// static
-void AccountManagementScreenHelper::OpenAccountManagementScreen() {
+void AccountManagementScreenHelper::OpenAccountManagementScreen(
+ Profile* profile) {
+ DCHECK(profile);
+ DCHECK(ProfileAndroid::FromProfile(profile));
+
Java_AccountManagementScreenHelper_openAccountManagementScreen(
base::android::AttachCurrentThread(),
- base::android::GetApplicationContext());
+ base::android::GetApplicationContext(),
+ ProfileAndroid::FromProfile(profile)->GetJavaObject().obj());
}
// static
diff --git a/chrome/browser/android/signin/account_management_screen_helper.h b/chrome/browser/android/signin/account_management_screen_helper.h
index 4312181..8640308 100644
--- a/chrome/browser/android/signin/account_management_screen_helper.h
+++ b/chrome/browser/android/signin/account_management_screen_helper.h
@@ -9,6 +9,8 @@
#include "base/basictypes.h"
+class Profile;
+
// The glue for Java-side implementation of AccountManagementScreenHelper.
class AccountManagementScreenHelper {
public:
@@ -16,7 +18,7 @@ class AccountManagementScreenHelper {
static bool Register(JNIEnv* env);
// Opens the account management screen.
- static void OpenAccountManagementScreen();
+ static void OpenAccountManagementScreen(Profile* profile);
private:
DISALLOW_COPY_AND_ASSIGN(AccountManagementScreenHelper);
diff --git a/chrome/browser/signin/signin_header_helper.cc b/chrome/browser/signin/signin_header_helper.cc
index 5469699..ca7ef18 100644
--- a/chrome/browser/signin/signin_header_helper.cc
+++ b/chrome/browser/signin/signin_header_helper.cc
@@ -30,18 +30,19 @@ const char kGaiaAuthExtensionID[] = "mfffpogegjflfpflabcdkioaeobkgjik";
void ShowAvatarBubbleUIThread(int child_id, int route_id) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
-#if !defined(OS_ANDROID)
content::WebContents* web_contents =
tab_util::GetWebContentsByID(child_id, route_id);
if (!web_contents)
return;
+#if !defined(OS_ANDROID)
Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
if (browser)
browser->window()->ShowAvatarBubbleFromAvatarButton();
// TODO(guohui): need to handle the case when avatar button is not available.
#else // defined(OS_ANDROID)
- AccountManagementScreenHelper::OpenAccountManagementScreen();
+ AccountManagementScreenHelper::OpenAccountManagementScreen(
+ Profile::FromBrowserContext(web_contents->GetBrowserContext()));
#endif // OS_ANDROID
}