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

Unified Diff: chrome/browser/android/physical_web/physical_web_data_source_android.h

Issue 2403423005: Expose Physical Web metadata to native clients over JNI (Closed)
Patch Set: remove unit test Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/physical_web/physical_web_data_source_android.h
diff --git a/chrome/browser/android/physical_web/physical_web_data_source_android.h b/chrome/browser/android/physical_web/physical_web_data_source_android.h
index 8454c857cf6793ca638e0aeb1b4b01a81207e498..ca65116bd7b53a073fad889c606450baec45d1f8 100644
--- a/chrome/browser/android/physical_web/physical_web_data_source_android.h
+++ b/chrome/browser/android/physical_web/physical_web_data_source_android.h
@@ -15,6 +15,36 @@ namespace base {
class ListValue;
}
+// A container for Physical Web metadata. This is primarily a wrapper for a
+// ListValue so we can append to it over JNI.
+class PhysicalWebCollection {
+ public:
+ PhysicalWebCollection();
+ ~PhysicalWebCollection();
+
+ void AppendMetadataItem(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj,
+ const base::android::JavaParamRef<jstring>& j_request_url,
+ jdouble distance_estimate,
+ jint scan_timestamp,
+ const base::android::JavaParamRef<jstring>& j_site_url,
+ const base::android::JavaParamRef<jstring>& j_icon_url,
+ const base::android::JavaParamRef<jstring>& j_title,
+ const base::android::JavaParamRef<jstring>& j_description,
+ const base::android::JavaParamRef<jstring>& j_group_id);
+
+ // Returns the metadata list and transfers ownership of the list to the
+ // caller. Call only once.
+ std::unique_ptr<base::ListValue> GetMetadataList();
+
+ private:
+ std::unique_ptr<base::ListValue> metadata_list_;
+ bool accessed_once_;
+
+ DISALLOW_COPY_AND_ASSIGN(PhysicalWebCollection);
+};
+
class PhysicalWebDataSourceAndroid : public PhysicalWebDataSourceImpl {
public:
PhysicalWebDataSourceAndroid();

Powered by Google App Engine
This is Rietveld 408576698