Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: chrome/browser/invalidation/invalidation_controller_android.cc

Issue 54923003: Support for shared invalidator client IDs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile issue Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/invalidation/invalidation_controller_android.h" 5 #include "chrome/browser/invalidation/invalidation_controller_android.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 27 matching lines...) Expand all
38 names.push_back(id->name()); 38 names.push_back(id->name());
39 } 39 }
40 40
41 Java_InvalidationController_setRegisteredObjectIds( 41 Java_InvalidationController_setRegisteredObjectIds(
42 env, 42 env,
43 invalidation_controller_.obj(), 43 invalidation_controller_.obj(),
44 base::android::ToJavaIntArray(env, sources).obj(), 44 base::android::ToJavaIntArray(env, sources).obj(),
45 base::android::ToJavaArrayOfStrings(env, names).obj()); 45 base::android::ToJavaArrayOfStrings(env, names).obj());
46 } 46 }
47 47
48 std::string InvalidationControllerAndroid::GetInvalidatorClientId() {
49 JNIEnv* env = base::android::AttachCurrentThread();
50 DCHECK(env);
51 if (invalidation_controller_.is_null()) {
52 invalidation_controller_.Reset(Java_InvalidationController_get(
53 env,
54 base::android::GetApplicationContext()));
55 }
56
57 // Ask the Java code to for the invalidator ID it's currently using.
58 base::android::ScopedJavaLocalRef<_jbyteArray*> id_bytes_java =
59 Java_InvalidationController_getInvalidatorClientId(
60 env,
61 invalidation_controller_.obj());
62
63 // Convert it into a more convenient format for C++.
64 std::vector<uint8_t> id_bytes;
65 base::android::JavaByteArrayToByteVector(env, id_bytes_java.obj(), &id_bytes);
66 std::string id(id_bytes.begin(), id_bytes.end());
67
68 return id;
69 }
70
48 bool RegisterInvalidationController(JNIEnv* env) { 71 bool RegisterInvalidationController(JNIEnv* env) {
49 return RegisterNativesImpl(env); 72 return RegisterNativesImpl(env);
50 } 73 }
51 74
52 } // namespace invalidation 75 } // namespace invalidation
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698