1 // Copyright 2019 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef URL_ANDROID_GURL_ANDROID_H_ 6 #define URL_ANDROID_GURL_ANDROID_H_ 7 8 #include <memory> 9 10 #include "base/android/scoped_java_ref.h" 11 #include "base/containers/span.h" 12 #include "url/gurl.h" 13 14 namespace url { 15 16 class GURLAndroid { 17 public: 18 static std::unique_ptr<GURL> ToNativeGURL( 19 JNIEnv* env, 20 const base::android::JavaRef<jobject>& j_gurl); 21 static base::android::ScopedJavaLocalRef<jobject> FromNativeGURL( 22 JNIEnv* env, 23 const GURL& gurl); 24 static base::android::ScopedJavaLocalRef<jobject> EmptyGURL(JNIEnv* env); 25 static base::android::ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfGURLs( 26 JNIEnv* env, 27 base::span<base::android::ScopedJavaLocalRef<jobject>> v); 28 static void JavaGURLArrayToGURLVector( 29 JNIEnv* env, 30 const base::android::JavaRef<jobjectArray>& gurl_array, 31 std::vector<GURL>* out); 32 }; 33 34 } // namespace url 35 36 #endif // URL_ANDROID_GURL_ANDROID_H_ 37