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

Side by Side Diff: components/gcm_driver/instance_id/instance_id_android.cc

Issue 1923953002: Integrate InstanceID with GCM crypto provider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@iid5default
Patch Set: RunUntilIdle after deleting GCMDriver Created 4 years, 6 months 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/gcm_driver/instance_id/instance_id_android.h" 5 #include "components/gcm_driver/instance_id/instance_id_android.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 28 matching lines...) Expand all
39 Java_InstanceIDBridge_setBlockOnAsyncTasksForTesting(env, previous_value_); 39 Java_InstanceIDBridge_setBlockOnAsyncTasksForTesting(env, previous_value_);
40 } 40 }
41 41
42 // static 42 // static
43 bool InstanceIDAndroid::RegisterJni(JNIEnv* env) { 43 bool InstanceIDAndroid::RegisterJni(JNIEnv* env) {
44 return RegisterNativesImpl(env); 44 return RegisterNativesImpl(env);
45 } 45 }
46 46
47 // static 47 // static
48 std::unique_ptr<InstanceID> InstanceID::Create(const std::string& app_id, 48 std::unique_ptr<InstanceID> InstanceID::Create(const std::string& app_id,
49 gcm::InstanceIDHandler* unused) { 49 gcm::GCMDriver* gcm_driver) {
50 return base::WrapUnique(new InstanceIDAndroid(app_id)); 50 return base::WrapUnique(new InstanceIDAndroid(app_id, gcm_driver));
51 } 51 }
52 52
53 InstanceIDAndroid::InstanceIDAndroid(const std::string& app_id) 53 InstanceIDAndroid::InstanceIDAndroid(const std::string& app_id,
54 : InstanceID(app_id) { 54 gcm::GCMDriver* gcm_driver)
55 : InstanceID(app_id, gcm_driver) {
55 DCHECK(thread_checker_.CalledOnValidThread()); 56 DCHECK(thread_checker_.CalledOnValidThread());
56 57
57 DCHECK(!app_id.empty()) << "Empty app_id is not supported"; 58 DCHECK(!app_id.empty()) << "Empty app_id is not supported";
58 // The |app_id| is stored in GCM's category field by the desktop InstanceID 59 // The |app_id| is stored in GCM's category field by the desktop InstanceID
59 // implementation, but because the category is reserved for the app's package 60 // implementation, but because the category is reserved for the app's package
60 // name on Android the subtype field is used instead. 61 // name on Android the subtype field is used instead.
61 std::string subtype = app_id; 62 std::string subtype = app_id;
62 63
63 JNIEnv* env = AttachCurrentThread(); 64 JNIEnv* env = AttachCurrentThread();
64 java_ref_.Reset(Java_InstanceIDBridge_create( 65 java_ref_.Reset(Java_InstanceIDBridge_create(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 } 111 }
111 112
112 JNIEnv* env = AttachCurrentThread(); 113 JNIEnv* env = AttachCurrentThread();
113 Java_InstanceIDBridge_getToken( 114 Java_InstanceIDBridge_getToken(
114 env, java_ref_.obj(), request_id, 115 env, java_ref_.obj(), request_id,
115 ConvertUTF8ToJavaString(env, authorized_entity).obj(), 116 ConvertUTF8ToJavaString(env, authorized_entity).obj(),
116 ConvertUTF8ToJavaString(env, scope).obj(), 117 ConvertUTF8ToJavaString(env, scope).obj(),
117 base::android::ToJavaArrayOfStrings(env, options_strings).obj()); 118 base::android::ToJavaArrayOfStrings(env, options_strings).obj());
118 } 119 }
119 120
120 void InstanceIDAndroid::DeleteToken(const std::string& authorized_entity, 121 void InstanceIDAndroid::DeleteTokenImpl(const std::string& authorized_entity,
121 const std::string& scope, 122 const std::string& scope,
122 const DeleteTokenCallback& callback) { 123 const DeleteTokenCallback& callback) {
123 DCHECK(thread_checker_.CalledOnValidThread()); 124 DCHECK(thread_checker_.CalledOnValidThread());
124 125
125 int32_t request_id = 126 int32_t request_id =
126 delete_token_callbacks_.Add(new DeleteTokenCallback(callback)); 127 delete_token_callbacks_.Add(new DeleteTokenCallback(callback));
127 128
128 JNIEnv* env = AttachCurrentThread(); 129 JNIEnv* env = AttachCurrentThread();
129 Java_InstanceIDBridge_deleteToken( 130 Java_InstanceIDBridge_deleteToken(
130 env, java_ref_.obj(), request_id, 131 env, java_ref_.obj(), request_id,
131 ConvertUTF8ToJavaString(env, authorized_entity).obj(), 132 ConvertUTF8ToJavaString(env, authorized_entity).obj(),
132 ConvertUTF8ToJavaString(env, scope).obj()); 133 ConvertUTF8ToJavaString(env, scope).obj());
133 } 134 }
134 135
135 void InstanceIDAndroid::DeleteID(const DeleteIDCallback& callback) { 136 void InstanceIDAndroid::DeleteIDImpl(const DeleteIDCallback& callback) {
136 DCHECK(thread_checker_.CalledOnValidThread()); 137 DCHECK(thread_checker_.CalledOnValidThread());
137 138
138 int32_t request_id = delete_id_callbacks_.Add(new DeleteIDCallback(callback)); 139 int32_t request_id = delete_id_callbacks_.Add(new DeleteIDCallback(callback));
139 140
140 JNIEnv* env = AttachCurrentThread(); 141 JNIEnv* env = AttachCurrentThread();
141 Java_InstanceIDBridge_deleteInstanceID(env, java_ref_.obj(), request_id); 142 Java_InstanceIDBridge_deleteInstanceID(env, java_ref_.obj(), request_id);
142 } 143 }
143 144
144 void InstanceIDAndroid::DidGetID( 145 void InstanceIDAndroid::DidGetID(
145 JNIEnv* env, 146 JNIEnv* env,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 jboolean success) { 212 jboolean success) {
212 DCHECK(thread_checker_.CalledOnValidThread()); 213 DCHECK(thread_checker_.CalledOnValidThread());
213 214
214 DeleteIDCallback* callback = delete_id_callbacks_.Lookup(request_id); 215 DeleteIDCallback* callback = delete_id_callbacks_.Lookup(request_id);
215 DCHECK(callback); 216 DCHECK(callback);
216 callback->Run(success ? InstanceID::SUCCESS : InstanceID::UNKNOWN_ERROR); 217 callback->Run(success ? InstanceID::SUCCESS : InstanceID::UNKNOWN_ERROR);
217 delete_id_callbacks_.Remove(request_id); 218 delete_id_callbacks_.Remove(request_id);
218 } 219 }
219 220
220 } // namespace instance_id 221 } // namespace instance_id
OLDNEW
« no previous file with comments | « components/gcm_driver/instance_id/instance_id_android.h ('k') | components/gcm_driver/instance_id/instance_id_driver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698