Index: components/payments/android/web_app_manifest_section_table.h |
diff --git a/components/payments/android/web_app_manifest_section_table.h b/components/payments/android/web_app_manifest_section_table.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..44a5c046a750e1f521200dc4e7e8f06308bfb46d |
--- /dev/null |
+++ b/components/payments/android/web_app_manifest_section_table.h |
@@ -0,0 +1,57 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef COMPONENTS_PAYMENTS_ANDROID_WEB_APP_MANIFEST_SECTION_TABLE_H_ |
+#define COMPONENTS_PAYMENTS_ANDROID_WEB_APP_MANIFEST_SECTION_TABLE_H_ |
+ |
+#include <string> |
+#include <vector> |
+ |
+#include "components/payments/content/payment_manifest_parser.mojom.h" |
+#include "components/webdata/common/web_database.h" |
+#include "components/webdata/common/web_database_table.h" |
+ |
+namespace payments { |
+ |
+// This class manages web_app_manifest_section table in SQLite database. It |
+// expects the following schema. |
+// The interfaces should only be accessed on DB thread. |
+// |
+// web_app_manifest_section The table stores the contents in |
+// WebAppManifestSection. |
+// |
+// id The package name of the app. |
+// min_version Minimum version number of the app. |
+// fingerprints The result of SHA256(signing certificate bytes) for |
+// each certificate in the app. |
+// |
+class WebAppManifestSectionTable : public WebDatabaseTable { |
+ public: |
+ WebAppManifestSectionTable(); |
+ ~WebAppManifestSectionTable() override; |
+ |
+ // Retrieves the WebAppManifestSectionTable* owned by |db|. |
+ static WebAppManifestSectionTable* FromWebDatabase(WebDatabase* db); |
+ |
+ // WebDatabaseTable: |
+ WebDatabaseTable::TypeKey GetTypeKey() const override; |
+ bool CreateTablesIfNecessary() override; |
+ bool IsSyncable() override; |
+ bool MigrateToVersion(int version, bool* update_compatible_version) override; |
+ |
+ // Adds the web app |*manifest|. Note that the previous web app manifest will |
+ // be deleted. |
+ bool AddWebAppManifest(mojom::WebAppManifestSection* manifest); |
+ |
+ // Gets manifest of the |web_app|. Returns nullptr if no manifest exists for |
+ // the |web_app|. |
+ mojom::WebAppManifestSectionPtr GetWebAppManifest(const std::string& web_app); |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(WebAppManifestSectionTable); |
+}; |
+ |
+} // namespace payments |
+ |
+#endif // COMPONENTS_PAYMENTS_ANDROID_WEB_APP_MANIFEST_SECTION_TABLE_H_ |