| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module crosapi.mojom; |
| |
| import "components/digital_goods/mojom/digital_goods.mojom"; |
| import "url/mojom/url.mojom"; |
| |
| // Implemented in ash-chrome. Allows lacros-chrome to perform Digital Goods |
| // operations (forwarded to ARC). |
| [Stable, Uuid="6f2fbc9e-2ff1-47bd-a15d-08e12c226f61"] |
| interface DigitalGoods { |
| // Queries the associated backend for information about one or more items. |
| GetDetails@0(string web_app_id, url.mojom.Url scope, array<string> item_ids) |
| => (payments.mojom.BillingResponseCode code, |
| array<payments.mojom.ItemDetails> item_details_list); |
| |
| // Queries the associated backend for information on all items that are |
| // currently owned by the user. May include unconfirmed purchases. |
| ListPurchases@1(string web_app_id, url.mojom.Url scope) |
| => (payments.mojom.BillingResponseCode code, |
| array<payments.mojom.PurchaseReference> 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@2(string web_app_id, url.mojom.Url scope) |
| => (payments.mojom.BillingResponseCode code, |
| array<payments.mojom.PurchaseReference> purchase_reference_list); |
| |
| // Informs the associated backend that the purchase identified by |
| // |purchase_token| was used up. |
| Consume@3(string web_app_id, url.mojom.Url scope, string purchase_token) |
| => (payments.mojom.BillingResponseCode code); |
| }; |
| |
| // Implemented in ash-chrome. Allows lacros-chrome to create a |DigitalGoods| |
| // instance. |
| [Stable, Uuid="1197d2ad-0f33-49e4-b6d6-370e255a9896"] |
| interface DigitalGoodsFactory { |
| // Creates a DigitalGoods instance. The |digital_goods| is non-null iff |
| // |code| == kOk. |
| CreateDigitalGoods@0(string payment_method, string web_app_id) |
| => (payments.mojom.CreateDigitalGoodsResponseCode code, |
| pending_remote<DigitalGoods>? digital_goods); |
| }; |