// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module payments.mojom; import "components/digital_goods/mojom/digital_goods.mojom"; // https://github.com/WICG/digital-goods/blob/main/explainer.md // Allow the renderer to talk to an associated digital goods backend. interface DigitalGoods { // Queries the associated backend for information about one or more items. GetDetails(array item_ids) => (BillingResponseCode code, array item_details_list); // Queries the associated backend for information on all items that are // currently owned by the user. May include unconfirmed purchases. ListPurchases() => (BillingResponseCode code, array purchase_reference_list); // Queries the associated backend for information on the latest purchase for // each item type ever purchased by the user. May include expired or consumed // purchases. ListPurchaseHistory() => (BillingResponseCode code, array purchase_reference_list); // Informs the associated backend that the purchase identified by // |purchase_token| was used up. Consume(string purchase_token) => (BillingResponseCode code); }; // Allow the renderer to request a |DigitalGoods| instance. DigitalGoods // instances must be created via this factory to allow the backend to validate // the current context. interface DigitalGoodsFactory { // Creates a DigitalGoods instance. The |digital_goods| is non-null iff // |code| == kOk. CreateDigitalGoods(string payment_method) => (CreateDigitalGoodsResponseCode code, pending_remote? digital_goods); };