| Index: chrome/browser/invalidation/invalidation_controller_android.cc
|
| diff --git a/chrome/browser/invalidation/invalidation_controller_android.cc b/chrome/browser/invalidation/invalidation_controller_android.cc
|
| index c153df192466483cd55f740c127f861785c8c340..021027c4d0c0bf6fdfdad7d285ecc76e1ea0c320 100644
|
| --- a/chrome/browser/invalidation/invalidation_controller_android.cc
|
| +++ b/chrome/browser/invalidation/invalidation_controller_android.cc
|
| @@ -45,6 +45,29 @@ void InvalidationControllerAndroid::SetRegisteredObjectIds(
|
| base::android::ToJavaArrayOfStrings(env, names).obj());
|
| }
|
|
|
| +std::string InvalidationControllerAndroid::GetInvalidatorClientId() {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + DCHECK(env);
|
| + if (invalidation_controller_.is_null()) {
|
| + invalidation_controller_.Reset(Java_InvalidationController_get(
|
| + env,
|
| + base::android::GetApplicationContext()));
|
| + }
|
| +
|
| + // Ask the Java code to for the invalidator ID it's currently using.
|
| + base::android::ScopedJavaLocalRef<_jbyteArray*> id_bytes_java =
|
| + Java_InvalidationController_getInvalidatorClientId(
|
| + env,
|
| + invalidation_controller_.obj());
|
| +
|
| + // Convert it into a more convenient format for C++.
|
| + std::vector<uint8_t> id_bytes;
|
| + base::android::JavaByteArrayToByteVector(env, id_bytes_java.obj(), &id_bytes);
|
| + std::string id(id_bytes.begin(), id_bytes.end());
|
| +
|
| + return id;
|
| +}
|
| +
|
| bool RegisterInvalidationController(JNIEnv* env) {
|
| return RegisterNativesImpl(env);
|
| }
|
|
|