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/component_export.h" 12 #include "base/containers/span.h" 13 #include "url/gurl.h" 14 15 namespace url { 16 COMPONENT_EXPORT(URL)17class COMPONENT_EXPORT(URL) GURLAndroid { 18 public: 19 static std::unique_ptr<GURL> ToNativeGURL( 20 JNIEnv* env, 21 const base::android::JavaRef<jobject>& j_gurl); 22 static base::android::ScopedJavaLocalRef<jobject> FromNativeGURL( 23 JNIEnv* env, 24 const GURL& gurl); 25 static base::android::ScopedJavaLocalRef<jobject> EmptyGURL(JNIEnv* env); 26 static base::android::ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfGURLs( 27 JNIEnv* env, 28 base::span<base::android::ScopedJavaLocalRef<jobject>> v); 29 static void JavaGURLArrayToGURLVector( 30 JNIEnv* env, 31 const base::android::JavaRef<jobjectArray>& gurl_array, 32 std::vector<GURL>* out); 33 }; 34 35 } // namespace url 36 37 #endif // URL_ANDROID_GURL_ANDROID_H_ 38