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

Side by Side Diff: content/browser/mojo/service_registry_android.cc

Issue 1489453003: jni: Pass method parameters as JavaParamRef in content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/mojo/service_registry_android.h" 5 #include "content/browser/mojo/service_registry_android.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 obj_.Reset( 50 obj_.Reset(
51 env, 51 env,
52 Java_ServiceRegistry_create(env, reinterpret_cast<intptr_t>(this)).obj()); 52 Java_ServiceRegistry_create(env, reinterpret_cast<intptr_t>(this)).obj());
53 } 53 }
54 54
55 ServiceRegistryAndroid::~ServiceRegistryAndroid() { 55 ServiceRegistryAndroid::~ServiceRegistryAndroid() {
56 Java_ServiceRegistry_destroy(AttachCurrentThread(), obj_.obj()); 56 Java_ServiceRegistry_destroy(AttachCurrentThread(), obj_.obj());
57 } 57 }
58 58
59 // Methods called from Java. 59 // Methods called from Java.
60 void ServiceRegistryAndroid::AddService(JNIEnv* env, 60 void ServiceRegistryAndroid::AddService(
61 jobject j_service_registry, 61 JNIEnv* env,
62 jobject j_manager, 62 const JavaParamRef<jobject>& j_service_registry,
63 jobject j_factory, 63 const JavaParamRef<jobject>& j_manager,
64 jstring j_name) { 64 const JavaParamRef<jobject>& j_factory,
65 const JavaParamRef<jstring>& j_name) {
65 std::string name(ConvertJavaStringToUTF8(env, j_name)); 66 std::string name(ConvertJavaStringToUTF8(env, j_name));
66 67
67 ScopedJavaGlobalRef<jobject> j_scoped_service_registry; 68 ScopedJavaGlobalRef<jobject> j_scoped_service_registry;
68 j_scoped_service_registry.Reset(env, j_service_registry); 69 j_scoped_service_registry.Reset(env, j_service_registry);
69 70
70 ScopedJavaGlobalRef<jobject> j_scoped_manager; 71 ScopedJavaGlobalRef<jobject> j_scoped_manager;
71 j_scoped_manager.Reset(env, j_manager); 72 j_scoped_manager.Reset(env, j_manager);
72 73
73 ScopedJavaGlobalRef<jobject> j_scoped_factory; 74 ScopedJavaGlobalRef<jobject> j_scoped_factory;
74 j_scoped_factory.Reset(env, j_factory); 75 j_scoped_factory.Reset(env, j_factory);
75 76
76 service_registry_->Add(name, 77 service_registry_->Add(name,
77 base::Bind(&CreateImplAndAttach, 78 base::Bind(&CreateImplAndAttach,
78 j_scoped_service_registry, 79 j_scoped_service_registry,
79 j_scoped_manager, j_scoped_factory)); 80 j_scoped_manager, j_scoped_factory));
80 } 81 }
81 82
82 void ServiceRegistryAndroid::RemoveService(JNIEnv* env, 83 void ServiceRegistryAndroid::RemoveService(
83 jobject j_service_registry, 84 JNIEnv* env,
84 jstring j_name) { 85 const JavaParamRef<jobject>& j_service_registry,
86 const JavaParamRef<jstring>& j_name) {
85 std::string name(ConvertJavaStringToUTF8(env, j_name)); 87 std::string name(ConvertJavaStringToUTF8(env, j_name));
86 service_registry_->Remove(name); 88 service_registry_->Remove(name);
87 } 89 }
88 90
89 void ServiceRegistryAndroid::ConnectToRemoteService(JNIEnv* env, 91 void ServiceRegistryAndroid::ConnectToRemoteService(
90 jobject j_service_registry, 92 JNIEnv* env,
91 jstring j_name, 93 const JavaParamRef<jobject>& j_service_registry,
92 jint j_handle) { 94 const JavaParamRef<jstring>& j_name,
95 jint j_handle) {
93 std::string name(ConvertJavaStringToUTF8(env, j_name)); 96 std::string name(ConvertJavaStringToUTF8(env, j_name));
94 mojo::ScopedMessagePipeHandle handle((mojo::MessagePipeHandle(j_handle))); 97 mojo::ScopedMessagePipeHandle handle((mojo::MessagePipeHandle(j_handle)));
95 service_registry_->Connect(name, std::move(handle)); 98 service_registry_->Connect(name, std::move(handle));
96 } 99 }
97 100
98 } // namespace content 101 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698